Здравствуйте есть программа и для нее надо организовать запись результатов работы программы в текстовый фаил. Не могли бы кто нибудь подсказать как осуществить сие действие.
Вот код:
program nomer4;
uses crt;
type
sport=record
sur:string;
name:string;
nomber:integer;
ass:byte;
res:integer;
end;
var
mas:array[1..100] of sport;
x,y:real;
n,i,maxI,minI:integer;
g:text;
procedure spisok(x:real);
begin
writeln('Самый лучший и худший из результатов :');
writeln;
writeln;
writeln('-------------------------------------------');
writeln('Фамилия|',' Имя |','Номер школы|','Класс|','Результат|');
writeln('-------------------------------------------');
maxI := 1;
minI := 1;
for i:=2 to n do begin
if mas[i].res > mas[maxI].res then maxI:=i;
if mas[i].res < mas[minI].res then minI:=i;
end;
begin
writeln(mas[maxI].sur:7,'|',mas[maxI].name:7,'|',mas[maxI].nomber:11,'|',mas[maxI].ass:5,'|',mas[maxI].res:9,'|');
writeln(mas[minI].sur:7,'|',mas[minI].name:7,'|',mas[minI].nomber:11,'|',mas[minI].ass:5,'|',mas[minI].res:9,'|');
end;
writeln('--------------------------------------------');
end;
BEGIN
assign (g, 'C:\123.txt');
rewrite (g);
clrscr;
writeln('Введите количество спортсменов');
readln(n);
for i:=1 to n do
begin
writeln('Введите фамилию');readln(mas[i].sur);
writeln('Введите имя');readln(mas[i].name);
writeln('Введите номер школы');readln(mas[i].nomber);
writeln('Введите класс');readln(mas[i].ass);
writeln('Введите результат');readln(mas[i].res);
writeln('___________________________________________________________________');
end;
clrscr;
writeln('-------------------------------------------');
writeln('Фамилия|',' Имя |','Номер школы|','Класс|','Результат|');
writeln('-------------------------------------------');
for i:=1 to n do
begin
writeln(mas[i].sur:7,'|',mas[i].name:7,'|',mas[i].nomber:11,'|',mas[i].ass:5,'|',mas[i].res:9,'|');
end;
writeln('-------------------------------------------');
writeln;
writeln;
writeln;
spisok(x);
close(g)
end.
Где-то я это уже видел ))
Если хочешь занести в файл, то везде где ты выводишь на экран инфу с помощью writeln('Инфа'), заменяешь на writeln(g,'Инфа');
Угу... И написать все дважды, да? Первый раз - для вывода на экран, а второй - в файл...
Все проще гораздо: выносишь все действия по выводу информации (и ТОЛЬКО выводу, все подсчеты и вычисления делаются заранее, и никакого отношения к этой процедуре иметь не должны) в отдельную процедуру:
procedure WriteResults(var f: text);, и при необходимости напечатать те же данные на экране -
begin
{ __Всё__ выводим в файл f }
end;
WriteResults(output);
procedure WriteResults(var f: text);
begin
{ __Всё__ выводим в файл f }
end;
WriteResults(output);
WriteResults(output);
подскажите пожалуйста как организовать добавление данных и результатов поиска в существующий файл.
буду очень благодарен..
есть в принципе вариант вместо
...поставить
rewrite (g);
...
append (g);
Assign(f, 'CON'); Rewrite(f);
... { Здесь - вывод в файл (в смысле, на экран) }
Close(f);
Поиск по фамилии:
Procedure Search;
Var
i:integer;
sur:string;
fl:boolean;
Begin
Assign(g,'C:\123.txt');
Reset(g);
writeln('Введите фамилию для поиска: ');
readln(sur);
fl:=false;
For i:=1 to n do
begin
read(g,mas[i].sur);
If sur=mas[i].sur then
begin
writeln('Фамилия: ', mas[i].sur);
writeln('Имя: ', mas[i].name);
writeln('Номер школы: ', mas[i].nomber);
writeln('Класс: ', mas[i].ass);
writeln('Результат: ', mas[i].res);
writeln('___________________________________________________________________');
fl:=true;
end;
end;
If not fl then
writeln('Записи с такой фамилией нет!');
readln;
end;
В таком случае не могли бы вы мне помочь организовать типизированный фаил...
Это процедура поиска работает и с текстовым файлом. Хотя я её не тестил писал прямо тут, но должно работать.
А добаление.. просто тебе нужно открыть файл через Append(g) и записывать дальше.
а в чем же тогда преимущества типизированного файла?
Он использует меньше памяти, когда работаешь с числами, т.к. на каждое число 2 байта, а в текстовом на каждую цифру по 1-ому + пробелы. А когда работаешь с текстом, то всё зависит от задачи. А вообще почитай книжки