[C con Clase] consulta de archivos

ed jadul miotromail.ed en gmail.com
Mar Ago 5 17:32:53 CEST 2008


hola como va!

el otro dia en un estube manejando registros en archivos diferentes.

supongamos mas o menos que tenia:

archivo1.txt

xx300xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xx305xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
(etc)

archivo2.txt

xx300xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xx302xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
(etc)

y lo que queria hacer era comparar  las lineas en determinadas posiciones.
Lo que hacia era leer por linea cada uno de los archivos y lo metia en un
arreglo de longitud fija cada linea.
La duda que me quedo fue con las funciones srtncmp() y strncpy() y
strncat(),  por que llamaba a una funcion mas o menos asi:


 int
> comparaReg(int cadena1[], int cadena2[])
>
para comparar posiciones de las cadenas. Yo queria comparar desde la
posicion  cad[2] y 2 caracteres mas.

La cosa es que las llamaba tal cual, pero al compararlas me decia el
compilador que no podia hacer algo asi como castear o convertir un int a
char*, entonces cuando usaba por ejemplo comparaReg() dentro de ella
retornaba el valor de srtncmp()  pero pasandole la direccion de la posicion
que queria comparar  "return (strncmp( &cad1[2], & cad2[2], 2) )" .

al principio no usaba &, pero luego del & no se quejo mas.

Tengo entendido que asi estoy pasando una direccion de memoria, y
seguramente van a ser diferentes posiciones de memoria,  se me habia
ocurrido usar un *for *para recorrer las cadenas pero me parecio mejor las
funciones de biblioteca.

Esta bien usarlas asi?, tal vez no entendi bien si se usaban asi,

yo queria comparar DESDE una determinada posicion en adelante y hasta N
caracteres. Entonces yo decia "bueno pero son direcciones, yo quiero
comparar el contenido de esa direccion". Sin embargo creo que se quejaba si
colocaba * en vez de &.
Si daba '0' entonces las copiaba a otro arreglo dinamico y de ahi iba
concatenando lineas  y metia el resultado en otro archivo. Asi por ejemplo
daria '0' la 1º linea de cada archivo.


No se si fui claro. Pero me quedo esa duda.


Igual no me salio. En ese momento use Visual C++.

Leyendo los mail de la lista recorde ese lio que se me armo en la cabeza.

No pregunto mucho pero los leo siempre, ya que muchas respuestas las he
obtenido con preguntas de otros.

muchas gracias

Edgardo
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20080805/28a2c914/attachment.html>


Más información sobre la lista de distribución Cconclase