Другие языки программирования и технологии

Помогите написать прогу на паскале!

Создать файл, содержащий сведения об ассортименте обуви в магазине фирмы. Структура записи: артикул, наименование, количество, стоимость одной пары. Количество записей в файле - произвольное. Артикул начинается с буквы: Д - для дамской обуви, М - для мужской, П - для детской.Написать программу, выдающую следующую информацию:- о наличии и стоимости обуви артикула Х;- ассортиментный список дамской обуви с указанием наименования и имеющегося в наличии числа пар каждой модели.ЭТО ДОЛЖНО ДЕЛАТЬСЯ С ПОМОЩЬЮ МОДУЛЕЙ, соответственно тут должно быть две программы - одна, создающая файл, другая - считывающая информацию. Товарищи программисты, помогите, кто чем сможет!:) плиииз! оч.нужно..
Доброго времени суток.

Вам следует сначала определиться с форматом файла. От этого будет зависеть конкретная реализация. Вариантов несколько. Типизированный файл записей, текстовый файл с построчным расположением реквизитов (полей) , текстовый файл в котором реквизиты расположены в одной строке с разделителями. Допустим будет последний вариант, хотя первый логичнее.

Вначале объявляете запись или переменные. Лучше запись.

type
TShoe = record
Artikul : String[20];
Name : String[10];
Quantaty : Word;
Prace : Real;
end;

Если формат файла будет не файл записей, то можно объявить просто 4 соответствующих переменных.

Далее пишется программа ввода данных в файл.

var
F : Text;
R : TShoe;

begin
Assign(F, 'Shoes.dat');
Rewrite(F);
WriteLn('Ввод информации о товаре');

with R do begin
repeat
Write('Артикул : ');
ReadLn(Artikul);
if Artikul <> '' then begin
Write('Наименование : ');
ReadLn(Name);
Write('Количество : ');
ReadLn(Quantaty);
Write('Цена : ');
ReadLn(Price);
WriteLn(F, Artikul, '=', Name, "=", Quantaty, "=", Price);
end;
until Artikul = ''; {ввод в качестве артикула пустой строки - конец ввода данных}
end;
Close(F);
end.

Если же F будет файл записей (F : file of TShoe), то запись в файл делается так

Write(F, R); {именно Write без Ln}

Все, файл данных создан. Далее покажу схематически.

Открываете файл данных

Assign(F, 'Shoes.dat');
Reset(F);

Запрашиваете артикул

ReadLn(Art);

Начинаете читать строки из файла

while not Eof(F) do begin
ReadLn(F, S);
if Art = Copy(S, 1, Pos('=',S)-1) then begin {артикул совпал}
{выделяете поля записи с помощью функции Pos и выводите на экран нужную информацию}
end;
end;

Reset(F); {сброс файла в начало}

while not Eof(F) do begin
ReadLn(F, S);
if S[1] = 'Д' then begin {запись для дамской обуви}
{выделяете поля записи с помощью функции Pos и выводите на экран нужную информацию}
end;
end;

Вот и все. В конце закрываете файл. Выделение полей делаете так

S := S + '="; {чтобы не потерять последний реквизит}
Artikul := Copy(S, 1, Pos('=',S)-1); {выделили поле}
S := Delete(S, 1, Pos('=',S)); {и удалили его из входной строки}

И так все остальные поля. Если же будет выбран вариант с типизированным файлом, то никакого выделения полей не потребуется. Просто читается информация в переменную с типом TShoe

Read(F, R);

А дальше идет работа с полями записи.

Удачи!
Алексей Казанцев
Алексей Казанцев
59 612
Лучший ответ
Круто, Gennady завернул...
EK
Evgeniy Komarov
1 768