Ir ao conteúdo
  • Cadastre-se

Duvida com arquivos em pascal


kira911

Posts recomendados

Ola pessoal, to com um probleminha que nao consigo solucionar de jeito nenhum :(

Seguinte preciso fazer um programa que use arquivos file ou text(pra serem gravados no HD). Consigo fazer com que o usuario escreva nesses arquivos. Mas como faço pra ver novamente essas informações no programa ? Nao to conseguindo. Me ajudem por favor. :(

Codigo:


program texto;
uses crt;

var nome:string;
var cadastro:text;

begin
clrscr;
assign(cadastro,'c:\documents and settings\all users\desktop\dados.txt');
rewrite(cadastro);
writeln('Digite seu nome.');
readln(nome);
write(cadastro,nome);
close(cadastro);
readln;
end.

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Olá,

Vou usar seu próprio código para te ajudar...

Observe os comentários..

[color=#0000ff]program[/color] texto[color=#000000];[/color]
[color=#0000ff]uses[/color]
CRT[color=#000000];[/color]

[color=#0000ff]var[/color]
nome [color=#000000]:[/color][color=#0000ff]string[/color][color=#000000];[/color]
[color=#008000]//var {só precisa declarar o var uma vez}[/color]
cadastro [color=#000000]:[/color][color=#0000ff]text[/color][color=#000000];[/color]

[color=#0000ff]BEGIN[/color]
ClrScr[color=#000000];[/color]
[color=#000000]assign[/color][color=#000000]([/color]cadastro[color=#000000],[/color][color=#a31515]'c:\documents and settings[/color][color=#a31515]\a[/color][color=#a31515]ll users\desktop\dados.txt'[/color][color=#000000]);[/color]
[color=#000000]rewrite[/color][color=#000000]([/color]cadastro[color=#000000]);[/color] [color=#008000]//recria o arquivo[/color]
[color=#000000]writeln[/color][color=#000000]([/color][color=#a31515]'Digite seu nome.'[/color][color=#000000]);[/color]
[color=#000000]readln[/color][color=#000000]([/color]nome[color=#000000]);[/color]
[color=#000000]write[/color][color=#000000]([/color]cadastro[color=#000000],[/color]nome[color=#000000]);[/color]
[color=#000000]close[/color][color=#000000]([/color]cadastro[color=#000000]);[/color]
[color=#008000]//readln; //dessa forma só segue com um ENTER[/color]
ReadKey[color=#000000];[/color] [color=#008000]//segue pressionando qualquer tecla (o uso de cada um depende do gosto e necessidade)[/color]

[color=#000000]reset[/color][color=#000000]([/color]cadastro[color=#000000]);[/color] [color=#008000]//abre o arquivo no início[/color]
[color=#000000]readln[/color][color=#000000]([/color]cadastro[color=#000000],[/color]nome[color=#000000]);[/color] [color=#008000]//ler a próxima linha (e já aponta para a próxima linha)[/color]
[color=#000000]writeln[/color][color=#000000]([/color]nome[color=#000000]);[/color]
ReadKey[color=#000000];[/color]
[color=#0000ff]END[/color][color=#000000].[/color]

***

Abaixo um exemplo com outros recursos.. para servir de exemplo:

[color=#0000ff]program[/color] texto[color=#000000];[/color]
[color=#0000ff]uses[/color]
CRT[color=#000000];[/color]
[color=#0000ff]const[/color]
[color=#008000]//endCasdastro = 'c:\documents and settings\all users\desktop\dados.txt';[/color]
endCasdastro [color=#000000]=[/color] [color=#a31515]'D:\Dados.txt'[/color][color=#000000];[/color]
[color=#0000ff]var[/color]
nome [color=#000000]:[/color][color=#0000ff]string[/color][color=#000000];[/color]
arqCadastro [color=#000000]:[/color][color=#0000ff]text[/color][color=#000000];[/color]

[color=#0000ff]BEGIN[/color]
[color=#000000]TextColor[/color][color=#000000]([/color]white[color=#000000]);[/color]
ClrScr[color=#000000];[/color]

[color=#008000]{ABERTURA DO ARQUIVO}[/color]
[color=#000000]assign[/color][color=#000000]([/color]arqCadastro[color=#000000],[/color]endCasdastro[color=#000000]);[/color]
[color=#008000]{$I-}[/color] [color=#008000]{desativa o fechamento caso o comando abaixo der erro}[/color]
[color=#000000]append[/color][color=#000000]([/color]arqCadastro[color=#000000]);[/color] [color=#008000]{abre o arquivo no final (para escrita) - caso o arquivo [/color]
[color=#008000]não exista, o SO enviar* uma mensagem de erro que pose ser obtida atraves do [/color]
[color=#008000]"IOresult}[/color]
[color=#008000]{$I+}[/color] [color=#008000]{reativa o fechamento caso der erro}[/color]
[color=#2b91af]if[/color] IOResult [color=#000000]<>[/color] [color=#000000]0[/color] [color=#2b91af]then[/color] [color=#008000]{se o "IOresult for "0" deu tudo certo, senão...}[/color]
[color=#0000ff]begin[/color] [color=#008000]{se for <> de 0, deu algum erro, provavelmente porque o arquivo não exista ainda}[/color]
writeln[color=#000000];[/color]
[color=#000000]TextColor[/color][color=#000000]([/color]yellow[color=#000000]);[/color]
[color=#000000]writeln[/color][color=#000000]([/color][color=#a31515]'OCORREU ALGUM ERRO NA ABERTURA DO ARQUIVO'[/color][color=#000000]);[/color]
[color=#000000]TextColor[/color][color=#000000]([/color]white[color=#000000]);[/color]
writeln[color=#000000];[/color]
[color=#000000]writeln[/color][color=#000000]([/color][color=#a31515]'Tentando recriar...'[/color][color=#000000]);[/color]
[color=#000000]rewrite[/color][color=#000000]([/color]arqCadastro[color=#000000]);[/color] [color=#008000]{tenta criar e abrir o arquivo}[/color]
writeln[color=#000000];[/color]
[color=#000000]writeln[/color][color=#000000]([/color][color=#a31515]' ARQUIVO CRIADO COM SUCESSO'[/color][color=#000000]);[/color]
writeln[color=#000000];[/color]
ReadKey[color=#000000];[/color]
ClrScr[color=#000000];[/color]

[color=#008000]{OBS.: Os erros podem ser dos mais diveros, como "caminho inválido", "disco protegio",[/color]
[color=#008000] "arquivo somente leitura"... neste caso estamos só "prevendo" o caso do arquivo ainda[/color]
[color=#008000] não existir}[/color]
[color=#0000ff]end[/color][color=#000000];[/color]

[color=#008000]{ADICIONANDO NOVOS NOMES}[/color]
[color=#000000]writeln[/color][color=#000000]([/color][color=#a31515]'Digite seu nome.'[/color][color=#000000]);[/color]
[color=#000000]readln[/color][color=#000000]([/color]nome[color=#000000]);[/color]
[color=#000000]writeln[/color][color=#000000]([/color]arqCadastro[color=#000000],[/color]nome[color=#000000]);[/color]
[color=#000000]close[/color][color=#000000]([/color]arqCadastro[color=#000000]);[/color]
[color=#008000]//readln; //dessa forma só segue com um ENTER[/color]
ReadKey[color=#000000];[/color] [color=#008000]//segue pressionando qualquer tecla (o uso de cada um depende do gosto e necessidade)[/color]

[color=#008000]{LENDO OS NOMES CADASTRADOS}[/color]
[color=#000000]reset[/color][color=#000000]([/color]arqCadastro[color=#000000]);[/color] [color=#008000]//abre o arquivo no início (para leitura) {esse comando também poderia dar erro, mas...}[/color]
writeln[color=#000000];[/color]
[color=#2b91af]while[/color] [color=#0000ff]not[/color] [color=#000000]EOF[/color][color=#000000]([/color]arqCadastro[color=#000000])[/color] [color=#2b91af]do[/color] [color=#008000]{enquanto não chegar ao fim do arquivo}[/color]
[color=#0000ff]begin[/color]
[color=#000000]readln[/color][color=#000000]([/color]arqCadastro[color=#000000],[/color]nome[color=#000000]);[/color] [color=#008000]//ler a próxima linha (e já aponta para a próxima linha)[/color]
[color=#000000]writeln[/color][color=#000000]([/color]nome[color=#000000]);[/color]
[color=#0000ff]end[/color][color=#000000];[/color]
ReadKey[color=#000000];[/color]
[color=#0000ff]END[/color][color=#000000].[/color]

No aguardo

Abraços

Link para o comentário
Compartilhar em outros sites

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