Помощь - Поиск - Пользователи - Календарь
Полная версия: Прога на файлы
Форум «Всё о Паскале» > Delphi, Assembler и другие языки. > Delphi
Женёк
Народ мне срочно нужно прогу сдать, а я не знаю в чём дело, она не работает, помогите плиз. (это прога в Delphi) Задание: В файле храняться сведения об автомобилях: фамилия владельца,марка авто,номер авто.Прочитать из файла и записать в виде массива все имеющиеся сведения.Упорядочить массив по фамилиям владельцев.Результаты преобразований вывести на экран.

program Project2;
{$APPTYPE CONSOLE}
uses
SysUtils;
type
avt = record
str=string[30];
fam: str;
mar: str;
nomer: str;
arr=array of avt;
ff:file of avt
var f:ff;
ar:arr;
p:char;
procedure chtenie (var f:ff; var ar: arr; var i: integer);
var name: str;
begin
writeln ('Vvedite name of file');
assignfile (f, name);
if fileexists (name) then
begin
reset(f):i=1;
while not eof(f) do
begin
setlength(ar,i);
read (f,ar [i-1]);
i:=i+1;
end;
close file (f);
end
else
writeln ('File ne sozdan')
end;

procedure vyvod(ar:arr;i:integer);
var j:integer;
begin
if i=0 tnen writeln ('Massiv pust');
else
for j=0 to i-1 do
begin
writeln (ar[j].fam);
writeln (ar[j].mar);
writeln (ar[j].nomer);
end;
end;
procedure sort (var ar:arr; i:integer);
var j,k: integer;
m:avt;
begin
for j=0 to i-2 do
for k:j+1 to i-1 do
begin
if ar[j].Fam > ar[k].Fam then
begin
m:ar[j];
ar[j]:=a[k];
a[k]:=m;
end;
end;
end;
procedure sozdanie (var ar:arr; var i:integer);
var p:char;
begin
i=1;
repeat
setlength(ar,i);
writeln('Vvedite familiu');
readln(ar[i-1].fam);
writeln('Vvedite mapky avto');
readln(ar[i-1].mar);
writeln('Vvedite nomer avto');
readln(ar[i-1].nomer);
i:i+1;
writlen('Prodolzhit?);
readln(p);
until p='n';
i:=i-1;
end;
procedure save (var f:ff; ar:arr;i:integer);
var j:integer;
name:str;
begin
writeln('Vvedite name of file');
readln(name);
assignfile(f,name);
rewrite(f);
for j=0 to i-1 do
write (f,ar[j]);
closefile(f)
end;

begin
{ TODO -oUser -cConsole Main : Insert code here }
repeat
writeln('1-Prochitat');
writeln('2-Vivesti na ekran');
writeln('3-Sortirovat');
writeln('4-Sozdanie massiva');
writeln('5-Save in file');
writeln('Q-vihod')'
writeln('Vvedite neohodimyi punkt menu');
readln(p);
case p of
'1':chtenie(f,ar,i);
'2':vyvod(ar,i);
'3':sort(ar,i);
'4':sozdanie(ar,i);
'5':save(f,ar,i);
end;
until p='q';
end.
volvo
Ну, я не знаю, работает ли программа, но теперь она по крайней мере компилируется...
program Project2;
{$APPTYPE CONSOLE}
uses SysUtils;

type
str = string[30];
avt = record
fam: str;
mar: str;
nomer: str;
end;

arr = array of avt;
ff = file of avt;

var
f: ff;
ar: arr;
p: char;

procedure chtenie(var f: ff; var ar: arr; var i: integer);
var
name: str;
begin
writeln ('Vvedite name of file');
assignfile(f, name);
if fileexists(name) then begin
reset(f); i:=1;
while not eof(f) do begin
setlength(ar,i);
read (f,ar [i-1]);
i:=i+1;
end;
closefile (f);
end
else writeln ('File ne sozdan')
end;

procedure vyvod(ar:arr;i:integer);
var
j: integer;
begin
if i=0 then writeln ('Massiv pust')
else
for j:=0 to i-1 do begin
writeln (ar[j].fam);
writeln (ar[j].mar);
writeln (ar[j].nomer);
end;
end;

procedure sort (var ar:arr; i:integer);
var
j, k: integer;
m: avt;
begin
for j:=0 to i-2 do
for k:=j+1 to i-1 do begin
if ar[j].Fam > ar[k].Fam then begin
m:=ar[j]; ar[j]:=ar[k]; ar[k]:=m;
end;
end;
end;

procedure sozdanie (var ar:arr; var i:integer);
var
p: char;
begin
i:=1;
repeat
setlength(ar,i);
writeln('Vvedite familiu'); readln(ar[i-1].fam);
writeln('Vvedite mapky avto'); readln(ar[i-1].mar);
writeln('Vvedite nomer avto'); readln(ar[i-1].nomer);
i:=i+1;
writeln('Prodolzhit?'); readln(p);
until p='n';
i:=i-1;
end;

procedure save (var f:ff; ar:arr;i:integer);
var
j: integer;
name: str;
begin
writeln('Vvedite name of file'); readln(name);
assignfile(f,name); rewrite(f);
for j:=0 to i-1 do write (f,ar[j]);
closefile(f)
end;


var
i: integer;
begin
repeat
writeln('1-Prochitat');
writeln('2-Vivesti na ekran');
writeln('3-Sortirovat');
writeln('4-Sozdanie massiva');
writeln('5-Save in file');
writeln('Q-vihod');
writeln('Vvedite neohodimyi punkt menu');
readln(p);
case p of
'1':chtenie(f,ar,i);
'2':vyvod(ar,i);
'3':sort(ar,i);
'4':sozdanie(ar,i);
'5':save(f,ar,i);
end;
until p='q';
end.
Гость
Спасибо, всё оке!!!! good.gif Я тормоз! norespect.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.