|
Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.
Mensajes - sergio_
Páginas: [1]
1
« en: Sábado 29 de Octubre de 2011, 03:43 »
Buen dia gente! Vengo a consultar sobre un problema que tengo con un tp T_T Estoy en "C" Resulta que estoy levantado en un buffer contenido de archivos de texto plano, y la idea es ir obteniendo palabras a partir del buffer Los archivos de texto pueden estar en cualquier idioma Por ejemplo: Buffer = "Hola , cómo andan? todo bien gente?, espero que si!  " Filtrando el buffer debería obtener los siguientes terminos HOLA, COMO, ANDAN, TODO, BIEN, GENTE, ESPERO, QUE, SI El filtrado de los signos de puntuación ya lo tengo, tmb manejo el tema de si el buffer me corta una palabra por la mitad y todo eso. Para el filtrado lo que hago es fijarme que el caracter del buffer (Buffer[Pos]) pertenezca a los intervalos del Ascii [65,90] ^ [97,122] ^ [128,165] (Segun la tabla del ascii) El intervalo [65,90] es para las minusculas El intervalo [97,122] es para las mayusculas El intervalo [128,165] es para las tildes y otras cosas raras el problema que tengo con los tildes es que el codigo en 8 bits no pertenece a ese intervalo, o sea, ni siquiera son 8 bits por lo que veo les dejo un ejemplo del codigo para ver los caracteres //Un Buffer levantado del disco que vale = Cómo estás printf("Entre a obtener terminos con el buffer %s\n",buffer ); while (i != caractleidos){ printf ("Caracter del buffer %c\n",buffer [i ]); printf ("ASCII Caracter del buffer (sin signo) %u\n",buffer [i ]); printf ("ASCII Caracter del buffer (con signo) %u\n",buffer [i ]); i++; } //Salida por consola: Caracter del buffer C ASCII Caracter del buffer (sin signo ) 67ASCII Caracter del buffer (con signo) 67 Caracter del buffer ASCII Caracter del buffer (sin signo ) 4294967235ASCII Caracter del buffer (con signo) -61 Caracter del buffer � ASCII Caracter del buffer (sin signo ) 4294967219ASCII Caracter del buffer (con signo) -77 Caracter del buffer m ASCII Caracter del buffer (sin signo ) 109ASCII Caracter del buffer (con signo) 109 Caracter del buffer o ASCII Caracter del buffer (sin signo ) 111ASCII Caracter del buffer (con signo) 111 Caracter del buffer ASCII Caracter del buffer (sin signo ) 32ASCII Caracter del buffer (con signo) 32 Caracter del buffer e ASCII Caracter del buffer (sin signo ) 101ASCII Caracter del buffer (con signo) 101 Caracter del buffer s ASCII Caracter del buffer (sin signo ) 115ASCII Caracter del buffer (con signo) 115 Caracter del buffer t ASCII Caracter del buffer (sin signo ) 116ASCII Caracter del buffer (con signo) 116 Caracter del buffer ASCII Caracter del buffer (sin signo ) 4294967235ASCII Caracter del buffer (con signo) -61 Caracter del buffer � ASCII Caracter del buffer (sin signo ) 4294967201ASCII Caracter del buffer (con signo) -95 Caracter del buffer s ASCII Caracter del buffer (sin signo ) 115ASCII Caracter del buffer (con signo) 115 Caracter del buffer
Por lo que veo es como que tiene un flag adelante, o algo por el estilo y despues viene un caracter basura o algo asi proba poniendo unsigned char, y me sigue pasando lo mismo pero con distintos numeros si alguien me puede dar una mano estaria agradecido!
2
« en: Sábado 29 de Octubre de 2011, 03:05 »
Buenas, necesitarias instalarte las liberias:
OpenGl , Glut, Glu32, FreeGlut --> Los nombres pueden ser que no sean asi ajja pasa que hace mucho no las uso
Un buen libro para aprender es Graficos por computadora con OpenGl
Es largo, y necesitas una base mas o menos solida de analisis matematico y algebra, pero sirve mucho ^ ^
3
« en: Martes 18 de Octubre de 2011, 14:28 »
Buen dia gente, la verdad que no sabia si postear esto aca o no, porque en realidad no se que es lo que me esta pasando. Les comento mi situación, yo tengo en la pc Windows Xp, con un Ubuntu virtualizado. Siempre apago la pc, no suelo tenerla prendida cuando me voy a acostar, el otro dia yo no estaba y la deje encendida en Ubuntu, y mi hermano me apago la maquina de forma forzosa (no se si la desenfucho, apago la zapatilla, o la apago directamente desde el cpu, hoy mismo averiguo esto). La cosa es que me esta tirando una serie de errores desde ese dia. En ubuntu, cada vez que prendo dice unos errores, dice algo de "disabling IRQ #18", estuve buscando de esto pero no encontré demasiado con respecto a lo mio, y cada un cierto periodo X se tilda, titilan las luces del teclado y se reinicia la maquinal, X no es un tiempo fijo, pueden ser dos horas, 20 min, o 10 horas. No habia entrado a windows desde ese día, hoy entre y me esta pidiendo la reactivacion de windows, busque por internet y me dice que esto puede ser por haber cambiando el disco, o la memoria según este link " http://windows.microsoft.com/es-ES/windows-vista/Activating-Windows-frequently-asked-questions" ¿¿Alguno tiene idea de que puede haber pasado?? Bueno gente, desde ya muchas gracias!
4
« en: Lunes 17 de Octubre de 2011, 11:54 »
Me acabo de dar cuenta de lo que pasaba  yo queria hacer La tabla con un reg entonces la forma correcta de hacerlo hubiera sido: tablaOF * tabla = (tablaOF *)malloc(sizeof(tablaOF )); tabla ->registros = (regOF *)malloc(sizeof(regOF ));
Al hacer esto, estoy declarando un puntero del tipo tablaOF, que apunta a un lugar en memoria donde tiene espacio para el contenido de la tabla lo mismo con tabla->registros, es un puntero que apunta a un lugar de la memoria que puede tener los datos que lleva. Igual corríjanme si estoy mal xD
5
« en: Lunes 17 de Octubre de 2011, 01:14 »
mmm... A ver si sirve algo lo que digo xD Entiendo que la idea es hacer alguna estructura que te permita almacenar bancos e informacion respecto a esto. Por ejemplo Tenes un listado de Bancos Cada banco tiene sucursales y tipos de cuentas con las que trabaja, donde cada sucursal posee varios clientes que tienen "ape y nombre, dni, cuil, etc" Cada banco tiene un gerente ( o u gerente por sucursal no se como es la jerarquia) e ir mirando cosas asi, y despues plantearte como resolver las consultas y demas no se, asi por arriba por ejemplo algo asi Listado de bancos -->Banco A, B, C, ...Etc un Banco{ Gerente Listado de sucursales Tipos de cuenta con los que trabaja Codigo de banco etc } Sucursal { Listado de clientes Algo mas (no se que .P ) } Clientes{ Ap y Nomb Dni Cuit ¿ Listado de sucursales ? --> Por si accedes por nombre de cliente y queres saber en que sucursales esta, ¿Puede estar en varias sucursales un msmo cliente?? (no se  ) } y no se, algo asi, armate primero un diagrama de como seria todo. y en base a las consultas, altas , bajas y demas, ver como ir haciendo para obtener toda esa inf Por ejemplo no se, al agregar un nuevo banco o al agregar cientes a una sucursal, o dar de baja, cosas asi Es todo un tema xD Espero te sirva de algo esto
6
« en: Lunes 17 de Octubre de 2011, 01:00 »
Buenas!, volvi a la red, gracias por la ayuda! Me olvide del "/0" xD y sii, leyendo despues me di cuenta de lo que estaba haciendo mal, pasa que hace mucho no toco C T_T jajaj Ya que estoy comento otra duda que tengo con respecto a la mem dinamica. Yo tengo esto typedef struct regOf{ unsigned int offset; unsigned int frec; }regOF; typedef struct TablaOffFrec{ //En caso que la cantidad inicial de registros no sea suficiente y tenga que reallocar registros en la tabla //Necesito saber cuando las recorra cuantos registros tiene la tabla en definitiva para serializar unsigned int cantRegFinal; char* nombArch; //La tabla es un conjunto de registros regOF* registros; }tablaOF; int main(){ tablaOF * tabla = (tablaOF *)malloc(sizeof(tablaOF *)); tabla ->registros = (regOF *)malloc(sizeof(regOF *)); tabla->registros->offset=0; tabla->registros->frec=10; printf("offset = %u\n",tabla ->registros ->offset ); printf("frec = %u\n",tabla ->registros ->frec ); }
Al mostrar por pantalla los valores se muestran bien. Pero al usar el valgrind para comprobar si pierdo memoria obtengo lo siguiente ==9496== Memcheck, a memory error detector ==9496== Copyright (C) 2002-2010, and GNU GPL'd, by Julian Seward et al. ==9496== Using Valgrind-3.6.1 and LibVEX; rerun with -h for copyright info ==9496== Command: ./prueba ==9496== ==9496== Invalid write of size 4 ==9496== at 0x804845F: main (prueba.c:64) ==9496== Address 0x419e030 is 4 bytes after a block of size 4 alloc'd ==9496== at 0x4026864: malloc (vg_replace_malloc. c:236) ==9496== by 0x8048448: main (prueba.c:63) ==9496== ==9496== Invalid read of size 4 ==9496== at 0x8048466: main (prueba.c:66) ==9496== Address 0x419e030 is 4 bytes after a block of size 4 alloc'd ==9496== at 0x4026864: malloc (vg_replace_malloc.c:236) ==9496== by 0x8048448: main (prueba.c:63) ==9496== ==9496== ==9496== HEAP SUMMARY: ==9496== in use at exit: 0 bytes in 0 blocks ==9496== total heap usage: 2 allocs, 2 frees, 8 bytes allocated ==9496== ==9496== All heap blocks were freed -- no leaks are possible ==9496== ==9496== For counts of detected and suppressed errors, rerun with: -v ==9496== ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 11 from 6)
El error "write" se da al hacer el malloc de tabla->registros, y el "read" al hacer el free de lo mismo. La idea mia es, poner en la tabla varios registros e ir llenandolos, pero detecte esto asiq no avanzo xD Bueno, desde ya muchas gracias!!
7
« en: Sábado 24 de Septiembre de 2011, 02:56 »
Buenas gente, les paso a comentar lo que me ocurre y queria saber si alguien me puede decir porque me pasa esto. char buffer[8] = "hola com"; char* buffer2 = "hola com"; buffer[0]='a'; buffer2[0] = 'a';
Para el caso en que escribo buffer, anda lo mas bien, pero para el caso en que quiero escribir buffer2, me da violacion de segmento. No se si sera algo propio del ambiente unix o que, pero no se porque me ocurre esto. estoy modificando el contenido del puntero nada mas. Tmb me ocurre en este caso: Bueno, si alguien me puede decir cual es el error se agradece.
Páginas: [1]
|
|
|