program mini_editor; { Editor microscopico de textos Teclado -> Memoria -> Video E/S Disco } uses crt; const MAXLIN = 20; type Tipo_texto = array [1..MAXLIN] of string; procedure entratxt(var T:Tipo_texto); var count:integer; begin clrscr; writeln('Entre com o texto:'); for count:=1 to 20 do begin write('Linha [',count:2,'] : '); readln(T[count]); end; end; procedure salvatxt(var Arquivo:text; var T:Tipo_texto); var count:integer; begin clrscr; writeln('Escrevendo o arquivo "texto.txt" no disco...'); assign(Arquivo,'texto.txt'); rewrite(Arquivo); for count:=1 to 20 do writeln(Arquivo,T[count]); close(Arquivo); writeln('Arquivo gravado. Pressione uma tecla para continuar...'); readkey; end; procedure letxt(var Arquivo:text; var T:Tipo_texto); var count:integer; begin clrscr; writeln('Lendo o arquivo "texto.txt" do disco...'); assign(Arquivo,'texto.txt'); reset(Arquivo); for count:=1 to 20 do readln(Arquivo,T[count]); close(Arquivo); writeln('O arquivo aparentemente foi lido do disco. Pressione uma tecla...'); readkey; end; procedure exibetxt(var T:Tipo_texto); var count:integer; begin clrscr; for count:=1 to 20 do begin writeln('Linha [',count:2,'] : ',T[count]); end; writeln; writeln('Pressione uma tecla para continuar...'); readkey; end; var ArqTxt:Text; Texto :Tipo_texto; LinhaTxt:string; Opcao:Integer; begin repeat clrscr; writeln('Editor (microscopico) de Textos'); writeln; writeln('1 - Entrar com o texto pelo teclado'); writeln('2 - Salvar em disco o texto'); writeln('3 - Ler o texto do disco'); writeln('4 - Exibir o texto na tela'); writeln('5 - Sair do programa'); writeln; write('=> Entre com a sua opcao: '); readln(Opcao); case Opcao of 1: entratxt(Texto); 2: salvatxt(ArqTxt,Texto); 3: letxt(ArqTxt,Texto); 4: exibetxt(Texto); 5: else begin writeln('>> Opcao invalida... pressione uma tecla'); readkey; end; end; until Opcao=5; writeln('Bye...'); readln; end.