• Domingo 22 de Diciembre de 2024, 10:34

Autor Tema:  leer linea de texto masm32  (Leído 3604 veces)

jojojorge

  • Miembro activo
  • **
  • Mensajes: 50
    • Ver Perfil
leer linea de texto masm32
« en: Miércoles 25 de Junio de 2008, 11:45 »
0
hola a todos

les cuento que me surgió una duda.
en c estándar existe una función para leer de un archivo de texto una sola linea. en c++ es getline() pero quisiera hacer lo mismo pero en masm32 usando winapi la funcion readfile te lee todo el archivo entero pero yo quiero solo una linea y poder escoger cual linea.
no se que opciones tengo
o es que tengo que cargar todo el archivo en memoria y de la memoria sacar las lineas.

salu2:)

y que cambio el del foro no entre en mucho tiempo esta con mas pinta.

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: leer linea de texto masm32
« Respuesta #1 en: Miércoles 25 de Junio de 2008, 11:56 »
0
Si queres imitar la funcion getline entonces depurala y aprende que es lo que hace para poder repetirlo.

ReadFile no lee todo un archivo sino la cantidad de bytes que se le pida, la forma mas simple y menos eficiente de lograr lo que queres es simplemente leer byte a byte hasta encontrar el terminador de linea (en Windows rn). Tambien podes cargar el archivo en memoria, si son archivos de texto normalmente no hay problema pero todo dependera del tamaño del archivo ... 4GB no es muy recomendable cargar en memoria.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

jojojorge

  • Miembro activo
  • **
  • Mensajes: 50
    • Ver Perfil
Re: leer linea de texto masm32
« Respuesta #2 en: Miércoles 25 de Junio de 2008, 12:38 »
0
Hola

pues es lo que me temía.
pues supongo que la función getline lee el archivo caracter por caracter hasta toparse con el fin de cadena al llegar al fin de linea el puntero queda al inicio de la nueva linea.

creo que lo mas conveniente sera cargar el archivo en memoria ya que al ser un txt no pesa casi nada.
lo de leer caracter por caracter seria algo un poco tonto pero también tiene que funcionar.

y una pregunta cual es el caracter de fin de linea y el de fin de archivo el de fin de cadena es un 0 o ''
el de fin de linea es 0D o 0A o los 2 juntos, supongo que puedo usar solo 0A
el caracter de fin de archivo no tengo idea e cual sea pero me puedo guiar por el tamaño del archivo.

salu2

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: leer linea de texto masm32
« Respuesta #3 en: Miércoles 25 de Junio de 2008, 13:29 »
0
No se que hace getline, puede usar un buffer de X tamaño - digamos 4KB - perfectamente, eso dependera de la implementacion.

No hay ningun caracter de fin de archivo, si vas a usar ReadFile lee su documentacion, como te dije antes fin de linea en Windows es rn (0Dh, 0Ah).

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

jojojorge

  • Miembro activo
  • **
  • Mensajes: 50
    • Ver Perfil
Re: leer linea de texto masm32
« Respuesta #4 en: Sábado 28 de Junio de 2008, 06:14 »
0
hola
gracias por las respuestas ya conseguí lo que quería.
incluso cambiando el caracter de fin de linea por otro cualquiera pude leer también párrafos.

salu2:)

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: leer linea de texto masm32
« Respuesta #5 en: Sábado 28 de Junio de 2008, 13:21 »
0
De nadas  B)

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.