Jump to content

Ler Ficheiro de Texto, e dividir o resultado para strings individuais


Recommended Posts

Posted

Boas Tardes

Eu tenho um ficheiro de texto, que está estruturado da seguinte forma:

001; André; 912567899;12345678;987654321;Portugal

002;Pereira;919876543;87654321;12345678;Portugal

E preciso de ler linha a linha, e dividir os valores pelos ;

Tenho este código em que consigo ler linha a linha e dividir pelos ;

int main()
{

FILE *Ficheiro;
Ficheiro = fopen("Teste.txt","r");

char linhas[500];
char linha[500];

while( fgets (linhas,500,Ficheiro))
{
	if (linha != NULL)
	{
		char *pnome;

		pnome = strtok(linhas, ";");
		while (pnome != NULL)
		{
			printf ("%s\n", pnome);
			pnome = strtok (NULL,";");
		}

	}
}

fclose(Ficheiro);

return (0);
}

Mas agora o problema está em passar cada valor para o array correspondente. Ou seja para o array ID, Nome, Telemovel, Contribuinte, CC, Pais.

Alguma sugestão?...

A informática chegou para resolver problemas que antes não existiam

Quem ri por último é porque está conectado a 52 Kbs.

Posted

struct Pessoa {
int numero;
char nome[32];
char tel1[16];
char tel2[16];
char tel3[16];
char pais[32];
};

#define MAX_PESSOAS 500

int main(void)
{
struct Pessoa pessoas[MAX_PESSOAS];
unsigned int npessoas = 0;

FILE * fd;
char linha[500];

fd = fopen("Teste.txt","r");

while( fgets(linha, 500, fd) && npessoas < MAX_PESSOAS)
{
sscanf(linha,
"%d;%32[^;];%16[^;];%16[^;];%16[^;];%32[^\n]\n",
&pessoas[npessoas].numero,
pessoas[npessoas].nome,
pessoas[npessoas].tel1,
pessoas[npessoas].tel2,
pessoas[npessoas].tel3,
pessoas[npessoas].pais);
npessoas++;
}

fclose(fd);

return (0);
}
[/Code]
IRC : sim, é algo que ainda existe >> #p@p

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.