Sei sulla pagina 1di 6

Fisierele text – Clasa a XI-a

in.txt 15 30 out.txt 45 in.txt 15 out.txt 45


30

program fisiere; program fisiere;


{declar variabilele f si g de tip fisiere text} {declar variabilele f si g de tip fisiere text}
var f,g:text; var f,g:text;
a,b,s:integer; a,b,s:integer;

begin begin

{ 1. assignarea } { 1. assignarea }
assign(f,'IN.txt'); assign(f,'IN.txt');
assign(g,'OUT.txt'); assign(g,'OUT.txt');

{ 2. deschid pentru citire fisierul 'in.txt' } { 2. deschid pentru citire fisierul 'in.txt' }
reset(f); reset(f);
{ 3. citeste de pe prima linie numerele a si { 3. citeste de pe prima linie numerele a si
b} b}
while not eoln(f) do while not eof(f) do
begin begin
read(f,a,b); read(f,a,b);
end; end;

{calcul suma} {calcul suma}


s:=a+b; s:=a+b;

{4. deschid pentru scriere fisierul 'out.txt'} {4. deschid pentru scriere fisierul 'out.txt'}
rewrite(g); rewrite(g);

{ 5. scriu in fisierul 'out.txt' suma celor { 5. scriu in fisierul 'out.txt' suma celor
doua numere } doua numere }
write(g,s); write(g,s);

{ 6. inchid cele 2 fisiere } { 6. inchid cele 2 fisiere }


close(f); close(f);
close(g); close(g);

end. end.

1 http://programare.profu.info
program fisiere; in.txt 1 21 3 out.txt 1 21 3
{declarare f,g de tip fisiere text} *******
var f,g:text; 1
i,n:integer; 21
a:array[1..20] of integer; 3

{Construiesc o procedura ca imi citeste elementele unui vector din fisier,


elementele sunt pe prima linie, nu cunoastem numarul de elemente din fisier}

procedure citire_vector;
begin
{asignarea unei variabile de tip text}
assign(f,'in.txt');
assign(g,'out.txt');
{deschidem fisierul f pentru citire}
reset(f);
i:=0;
{citesc de pe aceeasi linie elementele unui vector, folosesc eoln(f) - !!!}

while not eoln(f) do


begin
{incrementez i}
i:=i+1;
read(f,a[i]); {citesc elementele vectorului}
end;
{realizez o copie a lungimii vectorului}
n:=i;
end; { sfarsitul procedurii }

procedure scriere;
begin
{ deschid fisierul g pentru scriere }
rewrite(g);
{ afisarea elementelor din vector pe aceesi linie in fisierul out.txt}
for i:=1 to n do
write(g,' ',a[i]);

writeln(g,' ');
writeln(g,'****************');

{ afisarea elementelor din vector unele sub altele in fisierul out.txt}


for i:=1 to n do
writeln(g,' ',a[i]);

{ inchidem cele 2 fisiere }


close(f);
close(g);
end; {sfarsitul procedurii}

2 http://programare.profu.info
{programul principal}
begin { apelam cele 2 proceduri in programul principal } citire_vector; scriere; end.
program fisiere; in.txt 1 out.txt 1 7 9
{declarare f,g de tip fisiere text} 7 *******
var f,g:text; 9 1
i,n:integer; 7
a:array[1..20] of integer; 9

{ Construiesc o procedura ca imi citeste elementele unui vector din fisier,


elementele sunt unele sub altele, nu cunoastem numarul de elemente din fisier}

procedure citire_vector;
begin
{asignarea unei variabile de tip text}
assign(f,'in.txt');
assign(g,'out.txt');
{deschidem fisierul f pentru citire}
reset(f);
i:=0;
{citesc de pe fiecare linie elementele unui vector, folosesc eof(f) - !!!}
while not eof(f) do
begin
{incrementez i}
i:=i+1;
readln(f,a[i]); {citesc elementele vectorului}
end;
{realizez o copie a lungimii vectorului}
n:=i;
end; { sfarsitul procedurii }

procedure scriere;
begin
{ deschid fisierul g pentru scriere }
rewrite(g);
{ afisarea elementelor din vector pe aceesi linie in fisierul out.txt}
for i:=1 to n do
write(g,' ',a[i]);

writeln(g,' ');
writeln(g,'****************');

{ afisarea elementelor din vector unele sub altele in fisierul out.txt}


for i:=1 to n do
writeln(g,' ',a[i]);

{ inchidem cele 2 fisiere }


close(f);
close(g);
end; {sfarsitul procedurii}
{programul principal}

3 http://programare.profu.info
begin { apelam cele 2 proceduri in programul principal } citire_vector; scriere; end.

program fisiere; in.txt 4 out.txt


25 2 87 15 25 2 87 15
******
{declarare f,g de tip fisiere text} 25
var f,g:text; 2
{variabile globale} 87
i,n:integer; 15

a: array[1..20] of integer;
{ construiesc o procedura ca imi citeste elementele unui vector din fisier,
toate elementele sunt pe a II -a linie, pe I -a linie avem lungimea vectorului }

procedure citire_vector;
begin
{asignarea unei variabile de tip text}
assign(f,'in.txt');
assign(g,'out.txt');

{deschidem fisierul f pentru citire}


reset(f);
readln(f,n); {citesc lungimea vectorului}

for i:=1 to n do
read(f,a[i]); {citesc elementele vectorului}
end; { sfarsitul procedurii }

procedure scriere;
begin
{ deschid fisierul g pentru scriere }
rewrite(g);

{ afisarea elementelor din vector pe aceesi linie }


for i:=1 to n do
write(g,' ',a[i]);

writeln(g,' ');
writeln(g,'****************');

{ afisarea elementelor din vector unele sub altele }


for i:=1 to n do
writeln(g,' ',a[i]);

{ inchidem cele 2 fisiere }


close(f);
close(g);
end; {sfarsitul procedurii}
{p.p}

4 http://programare.profu.info
begin
{ apelam cele 2 proceduri in programul principal }
citire_vector;
scriere; end.
program fisiere; in.txt 3 out.txt 56 89 15
{declarare f,g de tip fisiere text} 56 *****
var f,g:text; 89 56
{variabile globale} 15 89
i,n:integer; 15

a:array[1..20] of integer;

{ construiesc o procedura ca imi citeste elementele unui vector din fisier,


elementele sunt pe linii separate, pe I -a linie avem lungimea vectorului }

procedure citire_vector;
begin
{asignarea unei variabile de tip text}
assign(f,'in.txt');
assign(g,'out.txt');

{deschidem fisierul f pentru citire}


reset(f);

readln(f,n); {citesc lungimea vectorului}


for i:=1 to n do
readln(f,a[i]); {citesc elementele vectorului }
end; { sfarsitul procedurii }

procedure scriere;
begin
{ deschid fisierul g pentru scriere }
rewrite(g);

{ afisarea elementelor din vector pe aceesi linie }


for i:=1 to n do
write(g,' ',a[i]);

writeln(g,' ');
writeln(g,'****************');

{ afisarea elementelor din vector unele sub altele }


for i:=1 to n do
writeln(g,' ',a[i]);
{ inchidem cele 2 fisiere }
close(f);
close(g);
end; {sfarsitul procedurii}

{p.p}

5 http://programare.profu.info
begin
{ apelam cele 2 proceduri in programul principal }
citire_vector; scriere; end.

6 http://programare.profu.info