marceloc
(usa Debian)
Enviado em 26/06/2006 - 17:41h
Olá,
Sou novo em programação e estou com dificuladades em resolver uma problema:
Tenho um código e três arquivos txt, onde dois são para leitura e o terceiro será para gravação.
Ex: No aquivo carta.txt eu tenho alguns campos delimitados por << >> (<<nome>>, <<data>>, etc.).
Já no arquivo dados_carta.txt eu tenho os dados que irão nestes campos separados por ponto e vírgula (João;15/05/2006).
A leitura e gravação no terceiro arquivo eu consegui fazer, mas preciso vincular os campos de um arquivo com outro.
Alguém pode me ajudar?
Segue abaixo o código do que foi feito até agora:
//
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
char valor [10][50];
char linha[100];
char nvalor = 0;
//char dados [10][20][50];
void separa_nomes(char nomes[]) {
int i=0;
char nome[40];
int j = 0;
printf ("\n*nomes: %s \n", nomes);
i = 0;
while(i<=strlen(nomes)){
while (i<=strlen(nomes) && nomes[i]!=';' ) {
nome[j] = nomes[i];
j++;
i++;
}
nome[j]='{TTEXTO}';
printf(">>>%s", nome);
strcpy(valor[nvalor], nome);
nvalor++;
j=0;
i++;
}
}
void separa_valores(char valores[]) {
int i=0;
printf ("\nvalores: %s \n", valores);
if (valores="<"){
i++;
}
}
void processa_linha(char texto[]){
printf ("\ntexto: %s \n", texto);
}
void mala_direta() {
FILE *dados_carta;
dados_carta=fopen("dados_carta.txt","rt");
if (dados_carta==NULL){
printf ("Arquivo de dados inexistente!!!");
exit(0);
}
if (!feof(dados_carta)){
fgets (linha, 100, dados_carta);
separa_nomes(linha);
}
while (!feof(dados_carta)){
fgets (linha, 100, dados_carta);
separa_valores(linha);
}
FILE *carta1;
carta1=fopen("carta.txt","rt");
if (carta1==NULL){
printf ("Arquivo de dados inexistente!!!");
exit(0);
}
FILE *saida;
saida=fopen("mala_direta.txt","wt");
if (saida==NULL){
printf ("Arquivo de dados inexistente!!!");
exit(0);
}
while (!feof(carta1)){
fgets (linha, 100, carta1);
processa_linha(linha);
fprintf (saida, "%s", linha);
}
}
int main () {
mala_direta();
system ("pause");
}
//
Um abraço,
Marcelo