Ir ao conteúdo

Help, em pascal!


MattStark

Posts recomendados

Postado

Boa Tarde Galera!

Estou com um pequeno probleminha em pascal, tipo, tenho q fazer um software que faz o cadastro ou a busca em 1 arquivo txt.


Program Consulta_Lista ;
Type consulta=record
nome : string;
endereco : string;
tel : string[8];
pai : string;
mae : string;
dia : integer;
mes : integer;
ano : integer;
end;
Var
vet_pessoa : array [1..1000] of consulta;
i,j : integer;
arqcons : text;
option: integer;
cons,conf : char;
busca,pesqui : string;
eof : boolean;
Begin
Writeln (' Painel de Controle ');
Writeln (' Escolha o que você deseja fazer');
Writeln (' 1.Cadastrar ');
Writeln (' 2.Consultar ');
Writeln (' 3.Sair ');
Read (option);
assign (arqcons ,'lista1.txt');
If (option=1) then
begin
reset (arqcons);
i := 1;
j := 0;
repeat
Writeln (' CADASTROS ');
Writeln (' Informe o nome ');
readln (vet_pessoa[i].nome);
writeln (' Informe o endereco ');
readln (vet_pessoa[i].endereco);
writeln (' Informe o telefone ');
readln (vet_pessoa[i].tel);
writeln (' Informe o nome do pai ');
readln (vet_pessoa[i].pai);
writeln (' Informe o nome da mae ');
readln (vet_pessoa[i].mae);
writeln (' Informe a data de nascimento : dia, mes, ano ');
readln (vet_pessoa[i].dia, vet_pessoa[i].mes, vet_pessoa[i].ano);
writeln (arqcons , 'Nome : ', vet_pessoa[i].nome);
writeln (arqcons , 'Endereço : Rua : ', vet_pessoa[i].endereco);
writeln (arqcons , 'Telefone : ', vet_pessoa[i].tel);
writeln (arqcons , 'Filiação : Pai: ', vet_pessoa[i].pai, 'Mae : ', vet_pessoa[i].mae);
writeln (arqcons , 'Data de nascimento : ', vet_pessoa[i].dia,'/',vet_pessoa[i].mes,'/',vet_pessoa[i].ano);
Writeln (' Deseja continuar cadastrando (s/n) ? ');
readln (cons);
j := j+1;
i := i+1 ;
Until (cons='n');
close (arqcons);
end;
If (option=2) then
begin
writeln (' Informe o nome a ser buscada ');
readln (busca);
conf := 'n';
append (arqcons);
repeat
readln (arqcons, pesqui);
If (pesqui = busca) then
begin
writeln (' ', pesqui,' ');
readln (arqcons, pesqui);
writeln (' ', pesqui,' ');
readln (arqcons, pesqui);
writeln (' ', pesqui,' ');
readln (arqcons, pesqui);
writeln (' ', pesqui,' ');
readln (arqcons, pesqui);
writeln (' ', pesqui,' ');
conf := 's';
end;
If not (eof) then
conf := 'n'
else
conf := 's';

until (conf='s');
end;
If (option=3) then
exit;




End.

Bom galera ele está compilando, mas na hr de executar, depois do menuzinho ele auto sai do programa, não está cadastrando , nem buscando, se alguém puder me ajudar agradeço!

  • Membro VIP
Postado

Olá MattStark.

Bom galera ele está compilando, mas na hr de executar, depois do menuzinho ele auto sai do programa, não está cadastrando , nem buscando, se alguém puder me ajudar agradeço!

Deve ser porque o programa não está encontrando o arquivo. Para o programa inicialmente funcionar, você já tem que criar o arquivo de texto de deixar na pasta correspondente... Ou, usa uma lógica para verificar se existe, senão, cria um. Ex.:

ClrScr[color=#000000];[/color] [color=#008000]{Limpa a tela}[/color]

[color=#008000]//PREPARANDO ARQUIVO [SV][/color]
[color=#ff0080]assign[/color] [color=#000000]([/color]arqcons [color=#000000],[/color][color=#a31515]'lista1.txt'[/color][color=#000000]);[/color] [color=#008000]//Assinala arquivo com seu respectivo caminho [SV][/color]
[color=#008000]{$I-}[/color] [color=#008000]//Diretiva que desabilita o "travamento se houver erro de I/O [SV][/color]
[color=#ff0080]reset[/color] [color=#000000]([/color]arqcons[color=#000000]);[/color] [color=#008000]//Tenta abrir o arquivo [SV][/color]
[color=#008000]{$I+}[/color]
codIOResult[color=#000000]:=[/color]IOResult[color=#000000];[/color] [color=#008000]//Obtem o código referente a última operação I/O [SV][/color]
[color=#0000ff]if[/color] codIOResult[color=#000000]<>[/color][color=#ff8000]0[/color] [color=#0000ff]then[/color] [color=#008000]//Se diferente de "0", deu algum erro [SV][/color]
[color=#0000ff]begin[/color]
[color=#ff0080]writeln[/color][color=#000000]([/color][color=#a31515]'Houve um erro de ao tentar abrir o arquivo'[/color][color=#000000]);[/color]
[color=#ff0080]writeln[/color][color=#000000]([/color][color=#a31515]'Tentara ser criado um novo arquivo '[/color][color=#000000]);[/color]
[color=#ff0080]ReWrite[/color][color=#000000]([/color]arqcons[color=#000000]);[/color] [color=#008000]//Obs.: Se não conseguir criar, vai dar erro também [SV][/color]
[color=#ff0080]writeln[/color][color=#000000]([/color][color=#a31515]'Arquivo criado com sucesso'[/color][color=#000000]);[/color]
ReadKey[color=#000000];[/color]
ClrScr[color=#000000];[/color]
[color=#0000ff]end[/color][color=#000000];[/color]
[color=#008000]//FIM PREPARANDO ARQUIVO[/color]

Obs.: Talvez seja preciso carregar a unit CRT.

[color=#0000ff]PROGRAM[/color] Consulta_Lista [color=#000000];[/color]
[color=#0000ff]uses[/color]
CRT[color=#000000];[/color] [color=#008000]//Carrega comando extras como ClrScr, ReadKey, TextColor etc [SV][/color]

***

Outro detalhe é que você está invertendo os comandos, ou seja, o Reset() é para "leitura" e o Apend() é para "escrita"!

No aguardo.

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!