C/Visual C - Funcion fgets utilizando _read...

 
Vista:

Funcion fgets utilizando _read...

Publicado por Fede (14 intervenciones) el 09/11/2002 19:22:56
Hola...
necesito de alguna manera leer como lee fgets utilizando la funcion _read (recuerden que la primera lee hasta un final de linea y la segunda hasta el final de archivo...)
¿como deberia hacer? ¿buscando el final de linea? ¿alguien tiene ya una funcion asi hecha?
gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Funcion fgets utilizando _read...

Publicado por Alvaro (122 intervenciones) el 11/11/2002 18:33:33
_read no lee solo hasta fin de archivo, sino que lee la cantidad de caracteres especificados.
Para hace eso debes hacer un ciclo que lea con read un caracter a la vez mientras que no sea fin de archivo y el caracter leido sea distinto de '\0'. a medida que lees debes agregar el caracter a un string.
Ahora, si lo que quieres es leer hasta fin de línea debes comparar con '\n'
SUERTE...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Funcion fgets utilizando _read...

Publicado por Fede (14 intervenciones) el 13/11/2002 02:49:48
no seria mejor hagarrar un buffer de caracteres mas grande... despues en ese strig (buffer) busco el caracter \n... veo en que pocicion esta del string y despues regreso en el archivo el puntero a esa pocicion y el string de buffer lo corto?
seria esto mas eficiente o sigue siendo mas eficiente leer de a un caracter pero no leer de mas?
GRACIAS por tu ayuda...
Fede
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Funcion fgets utilizando _read...

Publicado por Alvaro (122 intervenciones) el 13/11/2002 23:21:10
Si, seria mas eficiente, pero mas complejo.
Si lees un buffer mas grande tienes varias alternativas.
1.- El buffer no es del tamaño necesario y no contiene el caracter de fin de linea, por lo que deberias guardarlo en una variable auxiliar y repetir la operacion concatenandolos y etc...
2.- El buffer tiene el tamaño necesario (se da en n iteraciones de la opcion anterior) por lo que encuentras el fin de linea, pero ahora debes dejar listo el puntero del archivo para que la proxima vez que lea lo haga desde la posicion adecuada.
Puedes implementarlo como te paresca y claro, depende de tu código si será optimo o no.
SUERTE...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar