elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


  Mostrar Temas
Páginas: [1]
1  Sistemas Operativos / GNU/Linux / Fedora - Duda instalación compilador en: 19 Septiembre 2010, 03:29 am
La pregunta es simple : ¿Cómo instalar o dónde consigo g++?

DATO: Fedora 13
2  Programación / .NET (C#, VB.NET, ASP) / Tutorial Sketchflow - expression Studio en: 29 Agosto 2010, 22:01 pm

Una aproximación al "prototipado" y sketchflow

Por qué bosquejar?

El cerebro humano constantemente se guía a través de imágenes en el espacio. Tenemos como ejemplo una fotografía; en ella se pueden apreciar colores, objetos, dimensiones, profundidades, superposiciones,etc. Llevando el concepto a un diseño, generalmente uno comienza diseñando un dibujo a "mano alsada", el cual se compone de líneas, curvas, rectas y figuras geométricas básicas.
Si miramos el siguiente dibujo, podremos enfocarnos en la idea del prototipo real, estableciendo mediante nuestro cerebro una relación entre las líneas, colores, dimensiones, figuras, etc.



PROTOTIPO



REALIDAD

Algunas ideas sobre prototipos:

*Sirven para representar ideas.
*Pueden probar y demostrar la viabilidad de una idea, siendo esta una estructura, producto, web, aplicación, etc.
*Son útiles para la colección de feedbacks y demostración de acciones o pasos basados en el fb recibido.
*Debe ser algo que podamos fácilmente poner de pie y luego comenzar con otro.

Los prototipos son de gran utilidad en el diseño para determinar qué construir frente a la manera de construirlo. A veces el acto de la creación de un prototipo en sí mismo puede conducir a avances o ideas que son más difíciles de encontrar.

Por qué sketchflow?

Porque es una herramienta reciente y muy potente desarrollada por microsoft. Se localiza en expression Blend, uno de los programas de expression Studio.
Utilizando el concepto anterior, en SketchFlow podemos mostrar un prototipo abstracto de como sería la realidad del proyecto a través de flujos de la aplicación,  diseñando los componentes ideales para llevar a cabo tal fin.
Sketchflow, es una herramienta utilizada por los clientes y/o usuarios, por lo cual
es importante mencionar la característica: Feedback. Dentro de SketchFlow cuando terminemos el primer prototipo y sea presentado ante otra persona(cliente), ésta podrá remarcar algunos aspectos que no se encuentran presentes en la idea del diseñador.

La interfaz de sketchflow
-Workspace
Siempre que inicias expression Blend, siempre verás un splash screen.
Para crear un projecto bajo sketchflow debes ir a Nuevo Proyecto->Aplicación sketchflow WPF/Silverlight.
Puedes optar por un lenguaje Visual Basic o C#. Optaremos por el default C# ya que es el más utilizado en los últimos momentos de desarrollo de aplicaciones a nivel web y escritorio.
Tendremos la siguiente pantalla:
En esencia, cuando se mira a esta interfaz, hay tres modos de controlar lo que sucede en SketchFlow. El primer modo incluye todas las opciones que tienes disponibles en una serie de menúes que aparecen en la parte superior de la pantalla. El segundo modo son todas las opciones e items que puedes seleccionar en los paneles que rodean el Artboard. Finalmente, en el panel de herramientas a la izquierda de la pantalla, podrás ver herramientas de la paleta para manipular las opciones del Artboard.
-Panel de herramientas
Este panel generalmente aparece a la izquierda de la pantalla en expression Blend. Este puede ser llevado a cualquier otro lado del espacio de trabajo.
Herramientas:
*Selección: Es para selecciones básicas de objetos. Dependiendo del objeto que selecciones deberías estar habilitado a mover y manipular objetos en el ArtBoard, incluidas las opciones de escalar y rotar.
*Selección directa: Manipula partes de un objeto o una colección de puntos.
*Mano: Con ella nos movemos a través del Artboard.
*Zoom: Nos permite agrandar o disminuir la vista en el Artboard.
*Cuenta gotas: Copia la apariencia de otro objeto hacia el objeto seleccionado actual.
*Tarro de pintura: Para usarlo, primero debes seleccionar el objeto del que deseas copiar los atributos y luego seleccionar el tarro de pinturas.
*Degradado: Te permite editar objetos que tienen degradado aplicado. Si mantienes apretado en la herramienta verás la opción de "Brush Transform", también. El degradado permite alterar las opciones de dirección del gradiente que debes setear en las propiedades del panel en la categoría de Brushes.
*Lápiz o pluma: Con el puedes crear objetos directamente en el ArtBoard. Si mantienes apretado, verás otras opciones más.
*Rectángulo: Podrás crear figuras geométricas.
*Grid: Contiene una variedad de contenedores. Estos son llamados Elementos u Objetos en expression Blend, y añaden funcionalidad y capacidades a las aplicaciones y prototipos que tu creas. Dependiendo de si creas un proyecto de Silverlight o WPF, verás distintos objetos.
*Edición de textos: Con el podemos crear labels, textboxes, etc.
*Botones: Están presentes los botones, checkboxes, listboxes, etc.
-Panel de projecto
Contiene todos los archivos que puedes usar en tus proyectos. Sketchflow es una colección de programas, archivos, librerías y referencias que se diseñan al compilar el proyecto. Generalmente estos tipos de proyectos poseen, "art vectors", fuentes, imágenes, etc.
-Assets Panel("Panel de activos")
Contiene todos los elementos, aunque no todos sean relevantes o cosas que uses tipicamente en SketchFlow.
-Panel de trabajo
Es el lugar donde las hojas de aplicaciones aparecen, y es donde puedes manipular directamente los items del proyecto. Por encima de todo, podrás ver una interfaz tabulada sobre cuantas pantallas tienes en tu proyecto. Justo por debajo podrás ver un indicador de algunos objetos dispuestos en este lugar. A la derecha verás algunos íconos, entre los cuales tienes la vista de diseño. XAML y Split views te permiten ver el código generado al crear el proyecto de SketchFlow.
En la parte de abajo verás:
• The Zoom icon: Te permite ajustar el tamaño de la pantalla.
• The Effects icon: Permite desplegar los efectos en tiempo real que tu puede añadir.
• The Grid icon: Muestra u oculta el grid visual de tu proyecto.
• The Grid Snapping icon: Permite el auto-align en tu grid.
• The Snapping to Snaplines icon : Permite ajustar las líneas de ajustes que existen en el documento.
• The Annotation icon: Muetra las anotaciones que haces en el proyecto.
-Panel del mapa de sketchflow:
Es donde tu creas y editas el mapa de flujo para tu aplicación de SketchFlow.
3  Seguridad Informática / Seguridad / Análisis de log hijackthis en: 30 Julio 2010, 02:15 am
Hola, ustedes ven algo raro aqui?:


Código:
Logfile of Trend Micro HijackThis v2.0.4
Scan saved at 21:04:36, on 29/07/2010
Platform: Windows XP SP3 (WinNT 5.01.2600)
MSIE: Internet Explorer v6.00 SP3 (6.00.2900.5512)
Boot mode: Normal

Running processes:
:\WINDOWS\System32\smss.exe
:\WINDOWS\system32\winlogon.exe
:\WINDOWS\system32\services.exe
:\WINDOWS\system32\lsass.exe
:\WINDOWS\system32\svchost.exe
:\WINDOWS\System32\svchost.exe
:\WINDOWS\system32\ZoneLabs\vsmon.exe
:\WINDOWS\Explorer.EXE
:\WINDOWS\system32\spoolsv.exe
:\WINDOWS\system32\acs.exe
:\Archivos de programa\Avira\AntiVir Desktop\sched.exe
:\Archivos de programa\Avira\AntiVir Desktop\avguard.exe
:\Archivos de programa\EeePC\ACPI\AsTray.exe
:\Archivos de programa\EeePC\ACPI\AsAcpiSvr.exe
:\Archivos de programa\EeePC\ACPI\AsEPCMon.exe
:\WINDOWS\RTHDCPL.EXE
:\Archivos de programa\Microsoft SQL Server\90\Shared\sqlwriter.exe
:\WINDOWS\system32\igfxext.exe
:\WINDOWS\system32\svchost.exe
:\WINDOWS\system32\igfxsrvc.exe
:\Archivos de programa\WIDCOMM\Bluetooth Software\bin\btwdins.exe
:\Archivos de programa\Elantech\ETDCtrl.exe
:\WINDOWS\system32\igfxtray.exe
:\WINDOWS\system32\hkcmd.exe
:\Archivos de programa\Atheros\ACU.exe
:\Archivos de programa\ASUS\AiGuru U1\AiGuru_U1usb.exe
:\Archivos de programa\Avira\AntiVir Desktop\avgnt.exe
:\Archivos de programa\Zone Labs\ZoneAlarm\zlclient.exe
:\Archivos de programa\PowerISO\PWRISOVM.EXE
:\WINDOWS\system32\ctfmon.exe
:\Archivos de programa\WIDCOMM\Bluetooth Software\BTTray.exe
:\WINDOWS\system32\cmd.exe
:\WINDOWS\system32\wscntfy.exe
:\Documents and Settings\cbug\Mis documentos\Downloads\HijackThis.exe

R0 - HKCU\Software\Microsoft\Internet Explorer\Toolbar,LinksFolderName = Vínculos
O2 - BHO: Aplicación auxiliar de vínculos de Adobe PDF Reader - {06849E9F-C8D7-4D59-B87D-784B7D6BE0B3} - D:\Archivos de programa\Archivos comunes\Adobe\Acrobat\ActiveX\AcroIEHelper.dll
O2 - BHO: Skype add-on (mastermind) - {22BF413B-C6D2-4d91-82A9-A0F997BA588C} - D:\Archivos de programa\Skype\Toolbars\Internet Explorer\SkypeIEPlugin.dll
O2 - BHO: (no name) - {5C255C8A-E604-49b4-9D64-90988571CECB} - (no file)
O2 - BHO: Windows Live Aplicación auxiliar de inicio de sesión - {9030D464-4C02-4ABF-8ECC-5164760863C6} - D:\Archivos de programa\Archivos comunes\Microsoft Shared\Windows Live\WindowsLiveLogin.dll
O4 - HKLM\..\Run: [AsusTray] D:\Archivos de programa\EeePC\ACPI\AsTray.exe
O4 - HKLM\..\Run: [AsusACPIServer] D:\Archivos de programa\EeePC\ACPI\AsAcpiSvr.exe
O4 - HKLM\..\Run: [AsusEPCMonitor] D:\Archivos de programa\EeePC\ACPI\AsEPCMon.exe
O4 - HKLM\..\Run: [RTHDCPL] RTHDCPL.EXE
O4 - HKLM\..\Run: [Alcmtr] ALCMTR.EXE
O4 - HKLM\..\Run: [ETDWare] D:\Archivos de programa\Elantech\ETDCtrl.exe
O4 - HKLM\..\Run: [IgfxTray] D:\WINDOWS\system32\igfxtray.exe
O4 - HKLM\..\Run: [HotKeysCmds] D:\WINDOWS\system32\hkcmd.exe
O4 - HKLM\..\Run: [Persistence] D:\WINDOWS\system32\igfxpers.exe
O4 - HKLM\..\Run: [ACU] "D:\Archivos de programa\Atheros\ACU.exe" -nogui
O4 - HKLM\..\Run: [Adobe Reader Speed Launcher] "D:\Archivos de programa\Adobe\Reader 8.0\Reader\Reader_sl.exe"
O4 - HKLM\..\Run: [NIS] "D:\Documents and Settings\cbug\Escritorio\Software\NIS2009\Setup.exe" /RELAUNCH /RUNONCE
O4 - HKLM\..\Run: [U1_USB] D:\Archivos de programa\ASUS\AiGuru U1\AiGuru_U1usb.exe
O4 - HKLM\..\Run: [avgnt] "D:\Archivos de programa\Avira\AntiVir Desktop\avgnt.exe" /min
O4 - HKLM\..\Run: [ZoneAlarm Client] "D:\Archivos de programa\Zone Labs\ZoneAlarm\zlclient.exe"
O4 - HKLM\..\Run: [PWRISOVM.EXE] D:\Archivos de programa\PowerISO\PWRISOVM.EXE
O4 - HKCU\..\Run: [CTFMON.EXE] D:\WINDOWS\system32\ctfmon.exe
O4 - HKCU\..\Run: [Skype] "D:\Archivos de programa\Skype\Phone\Skype.exe" /nosplash /minimized
O4 - HKCU\..\Run: [Google Update] "D:\Documents and Settings\cbug\Configuración local\Datos de programa\Google\Update\GoogleUpdate.exe" /c
O4 - HKCU\..\Run: [msnmsgr] "D:\Archivos de programa\Windows Live\Messenger\msnmsgr.exe" /background
O4 - HKUS\S-1-5-19\..\Run: [CTFMON.EXE] D:\WINDOWS\system32\CTFMON.EXE (User 'SERVICIO LOCAL')
O4 - HKUS\S-1-5-20\..\Run: [CTFMON.EXE] D:\WINDOWS\system32\CTFMON.EXE (User 'Servicio de red')
O4 - HKUS\S-1-5-18\..\Run: [CTFMON.EXE] D:\WINDOWS\system32\CTFMON.EXE (User 'SYSTEM')
O4 - HKUS\.DEFAULT\..\Run: [CTFMON.EXE] D:\WINDOWS\system32\CTFMON.EXE (User 'Default user')
O4 - Global Startup: BTTray.lnk = ?
O8 - Extra context menu item: Enviar a &Bluetooth - D:\Archivos de programa\WIDCOMM\Bluetooth Software\btsendto_ie_ctx.htm
O8 - Extra context menu item: Enviar a Bluetooth - D:\Archivos de programa\WIDCOMM\Bluetooth Software\btsendto_ie.htm
O9 - Extra button: Skype - {77BF5300-1474-4EC7-9980-D32B190E9B07} - D:\Archivos de programa\Skype\Toolbars\Internet Explorer\SkypeIEPlugin.dll
O9 - Extra button: @btrez.dll,-4015 - {CCA281CA-C863-46ef-9331-5C8D4460577F} - D:\Archivos de programa\WIDCOMM\Bluetooth Software\btsendto_ie.htm
O9 - Extra 'Tools' menuitem: @btrez.dll,-12650 - {CCA281CA-C863-46ef-9331-5C8D4460577F} - D:\Archivos de programa\WIDCOMM\Bluetooth Software\btsendto_ie.htm
O9 - Extra button: (no name) - {e2e2dd38-d088-4134-82b7-f2ba38496583} - D:\WINDOWS\Network Diagnostic\xpnetdiag.exe
O9 - Extra 'Tools' menuitem: @xpsp3res.dll,-20001 - {e2e2dd38-d088-4134-82b7-f2ba38496583} - D:\WINDOWS\Network Diagnostic\xpnetdiag.exe
O9 - Extra button: Messenger - {FB5F1910-F110-11d2-BB9E-00C04F795683} - D:\Archivos de programa\Messenger\msmsgs.exe
O9 - Extra 'Tools' menuitem: Windows Messenger - {FB5F1910-F110-11d2-BB9E-00C04F795683} - D:\Archivos de programa\Messenger\msmsgs.exe
O18 - Protocol: skype4com - {FFC8B962-9B40-4DFF-9458-1830C7DD7F5D} - D:\ARCHIV~1\ARCHIV~1\Skype\SKYPE4~1.DLL
O22 - SharedTaskScheduler: Precargador Browseui - {438755C2-A8BA-11D1-B96B-00A0C90312E1} - D:\WINDOWS\system32\browseui.dll
O22 - SharedTaskScheduler: Demonio de caché de las categorías de componente - {8C7461EF-2B13-11d2-BE35-3078302C2030} - D:\WINDOWS\system32\browseui.dll
O23 - Service: Servicio de configuración de Atheros (ACS) - Atheros - D:\WINDOWS\system32\acs.exe
O23 - Service: Avira AntiVir Programador (AntiVirSchedulerService) - Avira GmbH - D:\Archivos de programa\Avira\AntiVir Desktop\sched.exe
O23 - Service: Avira AntiVir Guard (AntiVirService) - Avira GmbH - D:\Archivos de programa\Avira\AntiVir Desktop\avguard.exe
O23 - Service: Bluetooth Service (btwdins) - Broadcom Corporation. - D:\Archivos de programa\WIDCOMM\Bluetooth Software\bin\btwdins.exe
O23 - Service: Servicio del administrador de discos lógicos (dmadmin) - Unknown owner - D:\WINDOWS\System32\dmadmin.exe
O23 - Service: Registro de sucesos (Eventlog) - Unknown owner - D:\WINDOWS\system32\services.exe
O23 - Service: Servicio COM de grabación de CD de IMAPI (ImapiService) - Unknown owner - D:\WINDOWS\system32\imapi.exe
O23 - Service: Escritorio remoto compartido de NetMeeting (mnmsrvc) - Unknown owner - D:\WINDOWS\system32\mnmsrvc.exe
O23 - Service: Plug and Play (PlugPlay) - Unknown owner - D:\WINDOWS\system32\services.exe
O23 - Service: Administrador de sesión de Ayuda de escritorio remoto (RDSessMgr) - Unknown owner - D:\WINDOWS\system32\sessmgr.exe
O23 - Service: Tarjeta inteligente (SCardSvr) - Unknown owner - D:\WINDOWS\System32\SCardSvr.exe
O23 - Service: Registros y alertas de rendimiento (SysmonLog) - Unknown owner - D:\WINDOWS\system32\smlogsvc.exe
O23 - Service: TrueVector Internet Monitor (vsmon) - Zone Labs, LLC - D:\WINDOWS\system32\ZoneLabs\vsmon.exe
O23 - Service: Instantáneas de volumen (VSS) - Unknown owner - D:\WINDOWS\System32\vssvc.exe
O23 - Service: Adaptador de rendimiento de WMI (WmiApSrv) - Unknown owner - D:\WINDOWS\system32\wbem\wmiapsrv.exe

--
End of file - 7754 bytes

Pregunto porque tenía una conexión establecida al puerto 23388  :-\
4  Sistemas Operativos / Windows / ASUS - Netbook - Instalacion Windows en: 26 Julio 2010, 23:15 pm
Hola, resulta que tengo mi netbook ASUS y he desinstalado por completo la partición de recuperación.
Ahora bien,  tengo el cd de recuperación, existe alguna forma para volver a instalar windows original en mi netbook? DATA: No poseo lectora de cd/dvd.
5  Programación / Programación C/C++ / [C] - Manipulación de archivos binarios en: 12 Julio 2010, 23:10 pm
Hola, estaba practicando con archivos binarios, y tal vez a alguien le pueda servir este source, me hace falta la actualización de datos, pero no es algo difícil.

Ahora bien, lo que no sé si es correcto, es la forma en que yo borro al archivo  :-\ ya que tengo que hacer una llamada al sistema.

Código
  1. /** Programa para manipular estructuras
  2. junto con archivos tipo binarios.
  3. El menu contiene un AB para el arc
  4. hivo no indexado.
  5. **/
  6. /* Autor: cbug
  7.         Fecha: 11 de Julio de 2010
  8. */
  9. #include <stdio.h>
  10. #include <stdlib.h>
  11. #include <string.h>
  12. /** DEFINICION DE TIPOS DE DATOS **/
  13. typedef struct Fecha{
  14. int dia;
  15. int mes;
  16. int año;
  17. }stFecha;
  18.  
  19. typedef struct Persona{
  20. char Nombre[25];
  21. stFecha Nacimiento;
  22. }stPersona;
  23.  
  24. /**********************************/
  25.  
  26. /** PROTOTIPOS DE FUNCIONES **/
  27. void Ingreso(stPersona *P);
  28. void Muestra(stPersona);
  29.  
  30. void Archivo_Escribe(stPersona *P);
  31. long Archivo_Busca_Persona(char *nombre);
  32. void Archivo_Elimina(void);
  33. void Archivo_Muestra(void);
  34. void Archivo_Borrar(void);
  35.  
  36. stPersona Persona_Blanco(void);
  37.  
  38. void Menu(void);
  39. void ClrBuffer(void);
  40. /*****************************/
  41.  
  42. int main(void)
  43. {
  44. //Variables Locales
  45. int _opt;
  46. stPersona _persona;
  47. Menu();
  48. printf("Ingrese opcion>");
  49. scanf("%d", &_opt);
  50. ClrBuffer();
  51. while(_opt != 0)
  52. {
  53. switch(_opt)
  54. {
  55. case 1:
  56. Ingreso(&_persona);
  57. break;
  58. case 2:
  59. Muestra(_persona);
  60. break;
  61. case 3:
  62. Archivo_Escribe(&_persona);
  63. break;
  64. case 4:
  65. Archivo_Muestra();
  66. break;
  67. case 5:
  68. Archivo_Elimina();
  69. break;
  70. case 6:
  71. Archivo_Borrar();
  72. break;
  73. default:
  74. break;
  75. }
  76. Menu();
  77. printf("\nIngrese opcion>");
  78. scanf("%d", &_opt);
  79. ClrBuffer();
  80. }
  81. return 0;
  82. }
  83.  
  84. void ClrBuffer(void)
  85. {
  86. while(getchar() != '\n');
  87. }
  88.  
  89. void Menu(void)
  90. {
  91. puts("************MENU************");
  92. puts("1 - Ingreso de datos persona");
  93. puts("2 - Muestra de datos persona");
  94. puts("3 - Escribir en personas.dat");
  95. puts("4 - Mostrar arc personas.dat");
  96. puts("5 - Eliminar en personas.dat");
  97. puts("6 - Borrar a pf personas.dat");
  98. puts("0 - Salir");
  99. puts("****************************");
  100. }
  101.  
  102. void Ingreso(stPersona *P)
  103. {
  104. puts("\n\tIngreso de informacion");
  105. printf("Ingrese nombre>");
  106. fgets(P->Nombre, sizeof(char) * 25, stdin);
  107. puts("\t Ingreso Fecha Nacimiento");
  108. printf("Ingrese dia>");
  109. scanf("%d", &P->Nacimiento.dia);
  110. ClrBuffer();
  111. printf("Ingrese mes>");
  112. scanf("%d", &P->Nacimiento.mes);
  113. ClrBuffer();
  114. printf("Ingrese año>");
  115. scanf("%d", &P->Nacimiento.año);
  116. ClrBuffer();
  117. puts("\n\t FINALIZADO EL INGRESO");
  118. }
  119.  
  120. void Muestra(stPersona P)
  121. {
  122. printf("\nNombre: %s\n", P.Nombre);
  123. printf("\nFecha Nacimiento: %d/%d/%d\n", P.Nacimiento.dia, P.Nacimiento.mes, P.Nacimiento.año);
  124. }
  125.  
  126. stPersona Persona_Blanco(void)
  127. {
  128. stPersona aux;
  129. strcpy(aux.Nombre, " ");
  130. aux.Nacimiento.dia = 0;
  131. aux.Nacimiento.mes = 0;
  132. aux.Nacimiento.año = 0;
  133.        return aux;
  134. }
  135.  
  136. void Archivo_Escribe(stPersona *P)
  137. {
  138. FILE *pf;
  139. pf = fopen("personas.dat", "ab"); // Abre un archivo para agregar personas
  140. if(pf == NULL)
  141. pf = fopen("personas.dat", "wb"); // Si no existe creamos uno nuevo
  142. fwrite(P, sizeof(stPersona), 1, pf);
  143. fclose(pf);
  144. }
  145.  
  146. void Archivo_Muestra(void)
  147. {
  148. FILE *pf;
  149. stPersona *_pbuffer = NULL;
  150. pf = fopen("personas.dat", "rb");
  151. if(pf == NULL)
  152. puts("Error al intentar abrir el archivo personas.dat");
  153. else
  154. {
  155. while(!feof(pf))
  156. {
  157. _pbuffer = (stPersona *)(malloc(sizeof(stPersona)));
  158. fread(_pbuffer, sizeof(stPersona), 1, pf);
  159. if(_pbuffer)
  160. Muestra(*_pbuffer);
  161. }
  162. free(_pbuffer);// Se debe liberar el ultimo bloque leido
  163. fclose(pf);
  164. }
  165. }
  166.  
  167. long Archivo_Busca_Persona(char *nombre)
  168. {
  169. FILE *pf;
  170. stPersona *_pbuffer = NULL;
  171. int counter = 0;
  172. pf = fopen("personas.dat", "rb");
  173. if(pf == NULL)
  174. puts("Error al intentar abrir el archivo personas.dat");
  175. else
  176. {
  177. while(!feof(pf))
  178. {
  179. _pbuffer = (stPersona *)(malloc(sizeof(stPersona)));
  180. fread(_pbuffer, sizeof(stPersona), 1, pf);
  181. if(strcmp(_pbuffer->Nombre, nombre) == 0)
  182. return counter;
  183. counter++;
  184. }
  185. free(_pbuffer);
  186. fclose(pf);
  187. return -1;
  188. }
  189. }
  190.  
  191.  
  192. void Archivo_Elimina(void)
  193. {
  194. char Nombre[25];
  195. long Pos;
  196. stPersona P;
  197. FILE *pf;
  198. printf("\nIngrese Nombre de Persona>");
  199. fgets(Nombre, sizeof(char) * 25, stdin);
  200. Pos = Archivo_Busca_Persona(Nombre);
  201. if(Pos > -1)
  202. {
  203. pf = fopen("personas.dat", "wb");
  204. fseek(pf, Pos * sizeof(stPersona), 0);
  205. P = Persona_Blanco();
  206. fwrite(&P, sizeof(stPersona), 1, pf);
  207. fclose(pf);
  208. }
  209. else
  210. puts("No se encuentra");
  211. }
  212.  
  213. void Archivo_Borrar(void)
  214. {
  215. system("rm personas.dat");
  216. }
6  Programación / Programación C/C++ / [C] - Problemas con archivos - SOLUCIONADO en: 10 Julio 2010, 23:53 pm
Hola, resulta que estaba practicando algo con archivos, y se me ocurrió hacer 2 procedimientos para leer línea a línea y char a char... En fin, este es el code:

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. void Lee_Caracter(char *RUTA);
  6. void Lee_Lineas(char *RUTA);
  7. void Menu(void);
  8. char *itoa(int val, int base);
  9.  
  10. void Limpiar_Buffer(void)
  11. {
  12.  while(getchar() != '\n');
  13. }
  14.  
  15.  
  16. int main()
  17. {
  18.  
  19.  int opt;
  20.  char *ruta_local = "texto.txt";
  21.  Menu();
  22.  scanf("%d", &opt);
  23.  Limpiar_Buffer();
  24.  while(opt != 0)
  25.  {
  26.    switch(opt)
  27.    {
  28.      case 1:
  29.      {
  30. Lee_Caracter(ruta_local);
  31. break;
  32.      }
  33.      case 2:
  34.      {
  35. Lee_Lineas(ruta_local);
  36. break;
  37.      }      
  38.      default:
  39. break;
  40.    }
  41.    Menu();
  42.    scanf("%d", &opt);
  43.    Limpiar_Buffer();
  44.  }
  45.  return 0;
  46. }
  47.  
  48.  
  49. char* itoa(int val, int base){
  50.  static char buf[32] = {0};
  51.  int i = 30;
  52.  for(; val && i ; --i, val /= base)
  53.    buf[i] = "0123456789abcdef"[val % base];
  54.  return &buf[i+1];
  55. }
  56.  
  57. void Menu(void)
  58. {
  59.  puts("\t**** MENU ****\t");
  60.  puts("1- Leer caracter a caracter");
  61.  puts("2- Leer linea a linea");
  62.  puts("0- Salir");
  63.  puts("Ingrese Opcion>");
  64. }
  65.  
  66. void Lee_Caracter(char *RUTA)
  67. {
  68.  FILE *fp;
  69.  char buffer;
  70.  fp = fopen(RUTA, "r");
  71.  if(!fp)
  72.    puts("Error al intentar abrir archivo");
  73.  else
  74.    while((buffer = getc(fp)) != EOF)
  75.      printf("%c", buffer);
  76.  putchar(buffer);
  77.  fclose(fp);
  78. }
  79.  
  80. void Lee_Lineas(char *RUTA)
  81. {
  82.  FILE *fp;
  83.  char *buffer;
  84.  char *mi_eof = NULL;
  85.  mi_eof = atoi(EOF, 10);
  86.  fp = fopen(RUTA, "r");
  87.  if(!fp)
  88.    puts("Error al intentar abrir archivo");
  89.  else
  90.  {
  91.    buffer = (char *)(malloc(sizeof(char) * 100));
  92.    fgets(buffer, sizeof(char) * 100, fp);
  93.  
  94.    while(strstr(buffer, mi_eof) != NULL);
  95.    {
  96.      puts(buffer);
  97.      free(buffer);
  98.      buffer = (char *)(malloc(sizeof(char) * 100));
  99.      fgets(buffer, sizeof(char) * 100, fp);
  100.    }
  101.  }
  102.  free(buffer);
  103.  fclose(fp);
  104. }

El problema está en mi función atoi, al compilar:

Código:
lectura.c: In function 'Lee_Lineas':
lectura.c:89: warning: passing argument 1 of 'atoi' makes pointer from integer without a cast
lectura.c:89: error: too many arguments to function 'atoi'
lectura.c:89: warning: assignment makes pointer from integer without a cast

No puedo resolverlo.

Ahora bien, tengo una duda más, está bien la forma en que busco el EOF del archivo, en la función Lee_Lineas()?


EDITADO: La primera duda resuelta, estaba dormido y cambié itoa por atoi  :-X
Ahora el problema es que la función Lee_Lineas no funciona  :xD

CORREGIDO: while(strstr(buffer, mi_eof) == NULL)

Creo que el problema está en que no incremento el puntero para leer el archivo.
7  Programación / Programación C/C++ / [C] - Recursividad problema en: 4 Julio 2010, 00:36 am
Hola, estoy repasando nuevamente lo que sé hasta el momento y se me cruzó por la cabeza resolver recursivamente un conteo de vocales, quisiera saber si ustedes creen que es la manera correcta de resolverlo, si existen mejores soluciones... etc

Código
  1. #include <stdio.h>
  2.  
  3. #define ptrNULL 0
  4.  
  5. int es_vocal(char c)
  6. {
  7.  /* Aqui se presento la situacion de un switch
  8.       no se precisamente cual solucion es la mejor
  9.  */
  10.  char conjunto[] = {'a','e', 'i', 'o', 'u'};
  11.  int i;
  12.  for(i = 0; i < 5; i++)
  13.    if(c == conjunto[i]) return 1;
  14.  return 0;
  15. }
  16.  
  17. unsigned int contar_vocal(char *palabra)
  18. {
  19.  if(*palabra == ptrNULL)
  20.    return 0;
  21.  else
  22.    if(es_vocal(tolower(*palabra)))
  23.    {
  24.      palabra++;
  25.      return (1 + contar_vocal(palabra));
  26.    }
  27.    else
  28.    {
  29.      palabra++;
  30.      return contar_vocal(palabra);
  31.    }
  32. }
  33.  
  34. int main()
  35. {
  36.  char *s = "MUrCiELagO";
  37.  int cnt;
  38.  cnt = contar_vocal(s);
  39.  printf("\nCantidad > %d\n", cnt);
  40.  return 0;
  41. }
8  Sistemas Operativos / GNU/Linux / Edición de tty's en: 17 Junio 2010, 21:08 pm
Hace poco me surgió una duda... Al usar las tty's de ubuntu 10.04, aparece el título "Ubuntu 10.04 LTS LOCALHOST tty*", en que fichero se almacena esto? Quisiera editar ese título.
9  Sistemas Operativos / GNU/Linux / OpenBox - Configuración en: 17 Junio 2010, 00:46 am
Tal vez ustedes puedan ayudarme, este es mi autostart.sh

Código
  1. # This shell script is run before Openbox launches.
  2. # Environment variables set here are passed to the Openbox session.
  3.  
  4. # Set a background color
  5. BG=""
  6. if which hsetroot >/dev/null; then
  7.    BG=hsetroot
  8. else
  9.    if which esetroot >/dev/null; then
  10. BG=esetroot
  11.    else
  12. if which xsetroot >/dev/null; then
  13.    BG=xsetroot
  14. fi
  15.    fi
  16. fi
  17. test -z $BG || $BG -solid "#303030"
  18.  
  19. ######AQUI EL PROBLEMA#####
  20. #Establecer wallpaper
  21. feh --bg-scale /home/cbug/Imágenes/vladstudio_blackcat_1152x86.jpg
  22. #Ininicar Conky
  23. conky
  24. #Iniciar Xfce-panel
  25. xfce4-panel
  26. ########################
  27.  
  28.  
  29. # D-bus
  30. if which dbus-launch >/dev/null && test -z "$DBUS_SESSION_BUS_ADDRESS"; then
  31.       eval `dbus-launch --sh-syntax --exit-with-session`
  32. fi
  33.  
  34. # Make GTK apps look and behave how they were set up in the gnome config tools
  35. if test -x /usr/libexec/gnome-settings-daemon >/dev/null; then
  36.  /usr/libexec/gnome-settings-daemon &
  37. elif which gnome-settings-daemon >/dev/null; then
  38.  gnome-settings-daemon &
  39. # Make GTK apps look and behave how they were set up in the XFCE config tools
  40. elif which xfce-mcs-manager >/dev/null; then
  41.  xfce-mcs-manager n &
  42. fi
  43.  
  44. # Preload stuff for KDE apps
  45. if which start_kdeinit >/dev/null; then
  46.  LD_BIND_NOW=true start_kdeinit --new-startup +kcminit_startup &
  47. fi
  48.  
  49. # Run XDG autostart things.  By default don't run anything desktop-specific
  50. # See xdg-autostart --help more info
  51. DESKTOP_ENV=""
  52. if which /usr/lib/openbox/xdg-autostart >/dev/null; then
  53.  /usr/lib/openbox/xdg-autostart $DESKTOP_ENV
  54. fi

Cuando inicio openbox session, no funciona mi teclado :S

EDITADO: Solucionado.
10  Programación / Programación C/C++ / [C] Problemas para leer datos en: 16 Junio 2010, 17:59 pm
Tengo el siguiente problema:

Código:
cbug@debian:~$ ./a.out 
Ingrese cantidad de personas>
1   
---INGRESO DE PACIENTES---
Ingrese nombre>
Ingrese fecha visita
|

Resulta que no puedo ingresar el nombre.

Código
  1. #include <stdio.h>
  2.  
  3. /* Programa para manejo de una lista de pacientes */
  4. /* Se mostraran los pacientes con una fecha determinada de visita */
  5.  
  6. #define MAX 30
  7.  
  8. typedef struct Paciente{
  9. char nombre[20];
  10. char direccion[20];
  11. char fechanac[13];
  12. char sexo;
  13. char fechavisita[13];
  14. char problema[100];
  15. }PACIENTE;
  16.  
  17. void Ingreso_Lista(PACIENTE P[], int N);
  18. void Ingreso_Paciente(PACIENTE *P);
  19. void Muestra(PACIENTE P[], int N, char F[]);
  20.  
  21. int main(){
  22. int cantidad;
  23. PACIENTE MiLista[MAX];
  24. char fecha[13];
  25. puts("Ingrese cantidad de personas>");
  26. scanf("%d", &cantidad);
  27. Ingreso_Lista(MiLista, cantidad);
  28. puts("Ingrese fecha a buscar>");
  29. fgets(fecha, sizeof(char)*13, stdin);
  30. Muestra(MiLista, cantidad, fecha);
  31. }
  32.  
  33. void Ingreso_Paciente(PACIENTE *P){
  34. puts("Ingrese nombre>");
  35. fgets(P->nombre,sizeof(char)*20,stdin);
  36. puts("Ingrese fecha visita");
  37. fgets(P->fechavisita,sizeof(char)*13,stdin);
  38. }
  39.  
  40. void Ingreso_Lista(PACIENTE P[], int N){
  41. int i;
  42. puts("---INGRESO DE PACIENTES---");
  43. fflush(stdout);
  44. for(i = 0; i < N; i++)
  45. Ingreso_Paciente(&P[i]);
  46. puts("---FINALIZADO---");
  47. }
  48.  
  49. void Muestra(PACIENTE P[], int N, char F[]){
  50. int i;
  51. for(i = 0; i < N; i++)
  52. if(*P[i].fechavisita == *F)
  53. puts(P[i].nombre);
  54. }
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines