Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #59 da revista programar. Faz já o download aqui!

1Skull

Editar ficheiro .txt

Mensagens Recomendadas

1Skull    0
1Skull

Bom dia a todos,

é o seguinte eu estou a fazer um programa em C que armazena o nome, bi, morada e numero de telefone de um cliente.

eu já consigo inserir, pesquisar, listar, agora falta-me uma opção que é listar. Este é o código que tenho para procurar.

Se alguém me puder dar uma ajudinha agradecia, não preciso do código seja específico, só alguma luzes.

int main ( void )
{
FILE *clientes;
struct clientes add;
char matriz[14]="Numero BI/CC: ",i[10],j[19];
int auxiliar=0,auxiliar2=0;
int a;
static const char filename[] = "clientes.txt";
FILE *file = fopen ( filename, "r+" );
puts("Intruduza o bi");
gets(i);

strcpy(j,matriz);
strcat(j,i);
if ( file != NULL )
{

char aux1 [128];
char line [128]; /* or other suitable maximum line size */
while ( fgets ( line, sizeof line, file ) != NULL) /* read a line */
{
line[strlen(line) - 1] = '\0';
if(strcmp(line,j)==0)
{
//fputs ( line, stdout ); /* write the line if condition*/
auxiliar2=1;
}
if(auxiliar2==1||strcmp(line,"\n")==0){
if(strcmp(line,"*----------*")==0){
    break;
}else{
    fputs ( line, stdout );
    printf("\n");
}
}
}
fclose ( file );
}
else
{
perror ( filename ); /* why didn't the file open? */
}
}

Aguardo uma resposta.

Fórum brutal.

Editado por pmg
GeSHi

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
HappyHippyHippo    1140
HappyHippyHippo

pela maneira como estas a informação do ficheiro suponho que tens um ficheiro de texto com este aspecto:

pessoa_1-info_1: xpto
pessoa_1-info_2: xpto
pessoa_1-info_3: xpto
pessoa_2-info_1: xpto
pessoa_2-info_2: xpto
pessoa_2-info_3: xpto

seja esse o caso ou um ficheiro binário, o que necessitas é de ler toda a informação de uma pessoa e verificar se a informação lida é a pretendida.

se não leres a informação toda, o próximo passo do ciclo irá ler informação da pessoa anterior e não da pessoa iterada.


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
1Skull    0
1Skull

O ficheiro está assim:

Numero BI/CC: 1

Nome: xpto

Numero NIF: 123

Morada: rua xxx

Contacto: 342324

*----------* //este símbolo é o que separa do outro cliente

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
1Skull    0
1Skull

Boa tarde, já resolvi o problema de alterar os dados tenho é um problema sempre que altero os dados ele só altera do primeiro por exemplo não consigo alterar os do 2 utilizador ou 3. Se poderem ajudar agradeço.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
HappyHippyHippo    1140
HappyHippyHippo

vais ter mais problemas do que esse ...

um bom exemplo são os azulejos de uma casa de banho:

imagina que queres substituir um azulejo partido ou estalado, qual é o requisito para colocares um outro azulejo na parede de maneira a não teres infiltrações ?


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
1Skull    0
1Skull

Eu consigo pesquisar, por exemplo eu pesquiso por Bi: 1

e ele apresenta os dados:

Numero BI/CC: 1

Nome: xpto

Numero NIF: 123

Morada: rua xxx

Contacto: 342324

Para alterar não é preciso existirem requisitos, por exemplo so o utilizador se enganar a escrever o bi por exemplo.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
1Skull    0
1Skull

A maneira é arranjar outro azulejo, tirar o partido ou estalado, arranjar a infiltração e só no fim colocar o azulejo novo.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
HappyHippyHippo    1140
HappyHippyHippo

eu não perguntei como trocar, mas os requisitos do azulejo.

imagina que queres substituir um azulejo partido ou estalado, qual é o requisito para colocares um outro azulejo na parede de maneira a não teres infiltrações ?


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
HappyHippyHippo    1140
HappyHippyHippo

o requisito do azulejo é o tipo, a cor, o tamanho

o que interessa aqui é o tamanho (a cor não interessa para o isolamento)

se o teu azulejo não for do tamanho certo, ou não cabe ou fica frinchas.

o mesmo irá acontecer ao teu ficheiro de dados.

se a actualização do ficheiro não for exactamente igual em número de bytes, ou

- (se for grande demais) estás a apagar dados de outro registo

- (se for pequeno demais) ficará lixo entre registos que, muito provavelmente, irá criar erros de leitura


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.