Jump to content
1Skull

Editar ficheiro .txt

Recommended Posts

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.

Edited by pmg
GeSHi

Share this post


Link to post
Share on other sites
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

Share this post


Link to post
Share on other sites
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

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
1Skull

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

Share this post


Link to post
Share on other sites
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

Share this post


Link to post
Share on other sites
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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • 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.