Witajcie!
Staram się napisać program w Delphi 7 dotyczący zapisu do pliku oraz jego odczytu. Problem w tym, że nie wiem czemu zapis mi nie działa tzn. w pliku pojawiają się jakieś "ślaczki". Jeśli są to błędy "nowicjusza" to bardzo przepraszam niestety sam tego nie potrafię przeskoczyć.
program faktura;
{$APPTYPE CONSOLE}
uses
SysUtils;
type faktura=record
imie:String[15];
naz:string[25];{nazwisko}
nazwa:String[100];{artykuły}
cena:integer;
ilosc:integer;
data:string[10];
art:integer;
end;
type dane=array of faktura;
type t=array[1..20] of faktura;
procedure wprowadzanie(var wprow:faktura); {wprowadzanie danych z faktury}
begin
Writeln('Dane kupujacego');
Writeln('Podaj imie: ');
readln(wprow.imie);
Write('Podaj nazwisko: ');
readln(wprow.naz);
Writeln(' ');
Writeln('Data Wystawienia');
Write('Podaj date wystawienia faktury (dzien-miesiac-rok): ');
readln(wprow.data);
Writeln(' ');
writeln('Artykuly');
writeln('Ilosc artykulow: ');
readln(wprow.art);
writeln('Podaj nazwe artykulu: ');
readln(wprow.nazwa);
write('Podaj cene artykulu: ');
readln(wprow.cena);
write('Podaj ilosc: ');
readln(wprow.ilosc);
end;
procedure wypisywanie(wprow:faktura);
var c1:integer;
begin
Writeln('Imie: ',wprow.imie,' Nazwisko: ',wprow.naz);
writeln(' ');
Writeln('Data wystawienia: ',wprow.data);
writeln(' ');
Writeln('Nazwa artykulu: ',wprow.nazwa);
Writeln('Cena artykulu: ',wprow.cena);
Writeln('Ilosc: ',wprow.ilosc);
c1:=wprow.cena*wprow.ilosc;
Writeln('Cena: ',c1);
end;
procedure zapisz(wprow:faktura); {===============}
var p:text;
nazwa_pliku:String;
i:integer;
ile:integer;
a:t;
begin
write('Podaj nazwe pliku do zapisu: ');
read(nazwa_pliku);
assign(p,nazwa_pliku);
rewrite(p);
write(p,a[i].imie,a[i].naz);
close(p); {zamknięcie pliku}
end;
procedure wczytanie(wprow:faktura);
var p:text;
nazwa_pliku:String;
a:t;
var i:integer;
begin
write('Podaj nazwe pliku do odczytu: ');
readln(nazwa_pliku);
assign(p,nazwa_pliku);
reset(p);
ilosc:=0;
while not(eof(p)) do
begin
ilosc:=ilosc+1;
read(p,a[i].imie,a[i].naz);
close(p);
end;
var wprow:faktura;
var a:t;
var i,ile:integer;
var b:dane;
var c:faktura;
begin
writeln('Ile faktur? ');
readln(ile);
for i:=1 to ile do
begin
wprowadzanie(a[i]);
end;
writeln(' ');
for i:=1 to ile do
begin
wypisywanie(a[i]);
end;
readln;
zapisz(wprow);
wczytanie(wprow);
write(a[i].imie,' ',a[i].naz);
readln;
end.