Colocar Resposta 
 
Avaliação do Tópico:
  • 0 votos - 0 Média
  • 1
  • 2
  • 3
  • 4
  • 5
Agenda em pascal
26-01-2011, 23:42
Mensagem: #1
Agenda em pascal
Boas pessoal!
Tou a fazer um projecto para a escola e nao estou a conseguir concluir!
o meu projecto é uma agenda em pascal na qual guarda os registos em files(ficheiros). ja consegui por files na parte de adicionar um novo contacto mas ele nao me esta a guardar qualquer valor no ficheiro.
Preciso de ajuda pff urgentemente tou desesperado para acabar isto e nao estou a conseguir. preciso tbem dos files nao restantes opcoes da agenda
Obrigado.
o codigo que tenho ate ao momento e o seguinte:

program projecto_lp;
uses crt;

type agenda= RECORD
nome: string [30];
telefones: record
tel: string[8];
casa: string[8];
trab: string[8];
end;
morada: string[20];
e_mail: string[20];
end;


var
telefone,tmp:file of AGENDA;
menu: integer;
i,j,tot : integer;
nome2, xs: string;
regaux,reg:agenda;
enc:boolean;
nome: string [30];

procedure init;
begin
Assign(telefone,'G:\plp\agenda.txt');
Assign(tmp,'G:\plp\agenda.tmp');
{$I-}
Reset(telefone);
{$I+}
if IOResult <>0 then
begin
rewrite(telefone);
end ;
close(telefone);
end;

begin
init;
textbackground(white);
textcolor(black);
Clrscr;
i := 1;
repeat
Clrscr;
writeln('=======================================================================​=========');
writeln;
writeln(' Agenda telefonica do Meu telemovel ');
writeln;
writeln('=======================================================================​=========');
writeln;
writeln('Escolha uma das opcoes abaixo');
writeln;
writeln('1 - Adicionar contacto.');
writeln('2 - Mostrar Todos Contactos.');
writeln('3 - Ordenar contactos.');
writeln('4 - Pesquisar contacto.');
writeln('5 - Alterar contacto.');
writeln('6 - Remover contacto.');
writeln('7 - Sair.');
writeln;
write('Opcao desejada: ');
readln(menu);
writeln;


case menu of

1 : begin
clrscr;
writeln('Novo Contacto');
writeln('---------------------------------');
writeln;
write('Nome: '); readln(nome);
reset(telefone);
while not eof(telefone) and not(enc) do
begin
read(telefone,regaux);
if (regaux.nome=nome) then
enc:=true;
end;
if(enc)then
writeln('registo ja se encontra efectuado')
else
begin
write('telemovel : '); readln(regaux.telefones.tel);
write('telefone casa: '); readln(regaux.telefones.casa);
write('Trabalho: '); readln(regaux.telefones.trab);
write('morada: '); readln(regaux.morada);
write('E-mail: '); readln(regaux.e_mail);
writeln;
end;
i := i + 1;
end;

(* 2 : begin
clrscr;
writeln('Contactos');
writeln('---------------------------------');
tot := 0;
for j := 1 to 20 do
begin
if (regaux.nome <> '') then
begin
writeln('Nome: ', regaux.nome);
writeln('telemovel: ',regaux.telefones.tel);
writeln('telefone casa: ',regaux.telefones.casa);
writeln('Trabalho: ',regaux.telefones.trab);
writeln('Morada: ',regaux.morada);
writeln('E_mail: ',regaux.e_mail);
writeln('---------------------------------');
tot := tot + 1;
readkey;

end;

end;
writeln('total de contactos:',tot);
end;

3 : begin
for j := 1 to 19 do
begin
if (regaux.nome > regaux.nome) then
begin
xs := regaux.nome;
regaux.nome := dados[j+1].nome;
dados[j+1].nome := xs;

xs := regaux.telefones.tel;
regaux.telefones.tel := dados[j+1].telefones.tel;
dados[j+1].telefones.tel := xs;

xs := regaux.telefones.casa;
regaux.telefones.casa := dados[j+1].telefones.casa;
dados[j+1].telefones.casa := xs;

xs := regaux.telefones.trab;
regaux.telefones.trab := dados[j+1].telefones.trab;
dados[j+1].telefones.trab := xs;

xs := regaux.morada;
regaux.morada := dados[j+1].morada;
dados[j+1].morada:= xs;

xs := regaux.e_mail;
regaux.e_mail := dados[j+1].e_mail;
dados[j+1].e_mail := xs;
end;
end;
clrscr;
writeln('DADOS ORGANIZADOS COM SUCESSO!');
readkey;
end;

4 : begin
clrscr;
Write('Qual o nome: '); readln(nome2);
for j := 1 to 20 do
Begin
if nome2 = regaux.nome then
Begin
writeln('---------------------------------');
writeln('Nome: ', regaux.nome);
writeln('telemovel: ',regaux.telefones.tel);
writeln('Telefone Casa: ',regaux.telefones.casa);
writeln('Trabalho: ',regaux.telefones.trab);
writeln('Morada: ',regaux.morada);
writeln('E_mail: ',regaux.e_mail);
Readkey;
End;
end;
Readkey;
end;

5 : begin
clrscr;
Write('qual o nome: '); readln(nome2);
for j := 1 to 20 do
Begin
if (nome2 = regaux.nome) then
Begin
writeln('---------------------------------');
write('Nome [', regaux.nome, ']: '); readln(regaux.nome);
write('telemovel [', regaux.telefones.tel,']: '); readln(regaux.telefones.tel);
write('Telefone Casa [', regaux.telefones.casa, ']: '); readln(regaux.telefones.casa);
write('Trabalho [', regaux.telefones.trab, ']: '); readln(regaux.telefones.trab);
write('morada [', regaux.morada, ']: '); readln(regaux.morada);
write('E_mail [', regaux.e_mail, ']: '); readln(regaux.e_mail);
Readkey;
End;
end;
Readkey;
end;

6 : begin
clrscr;
Write('qual o nome: '); readln(nome2);
for j := 1 to 20 do
Begin
if nome2 = regaux.nome then
Begin
writeln('---------------------------------');
regaux.nome := '';
regaux.telefones.tel := '';
regaux.telefones.casa := '';
regaux.telefones.trab := '';
regaux.morada := '';
regaux.e_mail := '';
writeln('CONTATO DELETADO!');
Readkey;
End;
end;
Readkey;

end;
End;*)
end;
Until (MENU = 7);
readkey;
end.

Obrigado
aguardo pela ajuda!
Procurar todas as mensagens deste utilizador
Citar esta mensagem numa resposta
27-01-2011, 00:18
Mensagem: #2
RE: Agenda em pascal
Nem sequer olhei para o código, mas já confirmaste que não será um problema de permissões do ficheiro?

BrunoBernardino.com
Visitar Website de este utilizador Procurar todas as mensagens deste utilizador
Citar esta mensagem numa resposta
27-01-2011, 23:32
Mensagem: #3
RE: Agenda em pascal
Não eu nao estou a conseguir acabar a parte dos files preciso de ajuda..alguem que perceba de files me pode ajudar pff

Obrigado na mesma mas n e isso e mesmo dificuldade minha em files,..
Procurar todas as mensagens deste utilizador
Citar esta mensagem numa resposta
28-01-2011, 06:33 (Esta mensagem foi modificada pela última vez a: 28-01-2011 06:35 por Elias_REC.)
Mensagem: #4
RE: Agenda em pascal
(27-01-2011 23:32)iceball Escreveu:  Não eu nao estou a conseguir acabar a parte dos files preciso de ajuda..alguem que perceba de files me pode ajudar pff

Obrigado na mesma mas n e isso e mesmo dificuldade minha em files,..

Código:
{$I-}
Reset(telefone);
{$I+}
if IOResult <>0 then { Se IOResult for diferente de Zero, ocorreu um erro: }
begin     { Aqui tens que saber qual foi o erro e informar o utilizador. Provavelmente terminar a aplicacao, pedir outro nome de ficheiro, etc. }
  rewrite(telefone); { Se fazes novamente um rewrite, precisas de saber se ocorreu algum erro ou nao, tal como fizeste com o Reset.
end ;
{ Nenhum erro }

IOResult - Erro
2 - 'File not found';
3 - 'Path not found';
4 - 'Too many open files';
5 - 'File access denied';

Tens que procurar pelos outros; Se fores ao manual do Pascal, muito provavelmente encontras essa informacao.

Fiquem Bem!
Procurar todas as mensagens deste utilizador
Citar esta mensagem numa resposta
29-01-2011, 01:42
Mensagem: #5
RE: Agenda em pascal
népia o meu problema nao e esse isso esta a dar bem o meu problema e conseguir por ficheiros para guardar os valores que o user insere e depois conseguir mostralos e manipulalos.
obrigado

Aguardo ajuda
Procurar todas as mensagens deste utilizador
Citar esta mensagem numa resposta
Colocar Resposta 


Saltar Fórum:


Utilizadores a ver este tópico: 1 Visitante(s)