Ver Mensaje Individual
  #8 (permalink)  
Antiguo 14/05/2009, 11:22
linkgl
 
Fecha de Ingreso: septiembre-2008
Mensajes: 22
Antigüedad: 15 años, 7 meses
Puntos: 1
Respuesta: Lectura de TXT en C o C++

Cita:
Iniciado por Annoying Ver Mensaje
es un TXT, no un .dat (es decir, no es binario) por lo cual, no se mueve por registros, sino por caracteres.

Código:
if(opcion>0) //si opcion es igual a 0 significa que la palabra esta en la
	{			//primera linea del fichero
		do
		{
			caracter=fgetc(pf);
			if(caracter=='\n')  //esto es para ubicarme en una determinada linea
			{					//del fichero, dada por la opcion
				z=z+1;
			}
		}while(z!=opcion);
	}
	
	caracter=fgetc(pf);
	while(caracter!=',')
	{							//relleno la palabra con la linea del fichero
		palabra[i]=caracter;	//antes ubicada, hasta que consiga una "coma" (',')
		i=i+1;
		caracter=fgetc(pf);
	}
Eso lo hice comparando con una coma, ya que al rellenar el fichero lo hice poniendole una ',' para ayudarme a solucionar esto, pero sin problema podrias compararlo con el '\n'
xD creo que no estoy entendiendo, soy nuevo leyendo .TXT desde C, cree un archivo aparte solamente para pegar tu codigo eh intentar mostrar en pantalla la segunda linea de mi TXT entonces puse:

Código:
#include <iostream>
#include <windows.h>
#include <stdio.h>

using namespace std;

int main()
{
    
FILE *pf = fopen("productos.txt","r");
int opcion,z,caracter,i;
char palabra[100];

if(opcion>0) //si opcion es igual a 0 significa que la palabra esta en la
	{			//primera linea del fichero
		do
		{
			caracter=fgetc(pf);
			if(caracter=='\n')  //esto es para ubicarme en una determinada linea
			{					//del fichero, dada por la opcion
				z=z+1;
				
			}
		}while(z!=opcion);
	}
	
	caracter=fgetc(pf);
	while(caracter!=',')
	{							//relleno la palabra con la linea del fichero
		palabra[i]=caracter;	//antes ubicada, hasta que consiga una "coma" (',')
		i=i+1;
		caracter=fgetc(pf);
		
	}
printf(caracter);
}

Pero no me muestra nada en pantalla, intente ponerle comas en vez de \n para probar lo que me dices, pero nada bro, incluso si intento imprimir la linea en la que estoy ubicado si me sale 1 osea que me lo lee bien, pero no me muestra el contenido de esa linea, algun otro ejemplo un pelin mas completo?? gracias men te lo agradezco mucho xD

incluso intente añadiendo:

fscanf (fp, "%[a-z]\n", producto);

lo puse cuando te ubica en la linea 1, para intentar almacenar en un char, el contennido de la linea pero nada