Финальным аккордом стала такая задача.Необходимо создать табло, которое выдавало бы данные о команде, игроке, времени попадания и очках за мяч. Ввод данных у меня получается, оформление диалогового режима в виде меню тоже, а как информацию из файла в виде таблицы на экран или на принтер вывести - вот тут -то и возникли трудности. Вот что получилось . Там есть программки, для добавления в файл, для просмотра, только что-то на работает.... Может , подскажете, что именно.
Не стоит постить с вои задания в FAQ
klem4
12.12.2005 14:09
ВОзможнт тебе вот это нужно, вот пример вывода данных в виде таблицы
program kuznecov_2;
uses crt;
type
TGoods = array[1..50] of record name : string[15]; cost : word; pPlan : word; pFact : word; pPercent : byte; end;
var
goods : TGoods;
n : byte;
procedure FillData(var r : TGoods; size : byte); var i : byte; begin for i := 1 to size do with r[i] do begin clrscr; writeln('Tovar N ', i); writeln; write('Imya : '); readln(name); write('Cena : '); readln(cost); write('Skolko nado prodat po planu : '); readln(pPlan); write('Skolko prodano po faktu : '); readln(pFact);
procedure ShowTable(r : TGoods; size : byte); var i : integer; begin
writeln('+-------------+------+--------+-------+---------+'); writeln('| NAME | COST | PLAN | FACT | PERCENT |'); writeln('+-------------+------+--------+-------+---------+');
for i := 1 to size do with r[i] do begin writeln('|', name : 10,'|':4, cost : 5,'|':2,pPlan :5,'|':4, pFact : 4, '|':4, pPercent:6, '|':4); writeln('+-------------+------+--------+-------+---------+'); end;
end; Begin
clrscr;
write('Kol-vo tovarov : ');
readln(n);
FillData(goods, n); ShowTable(goods, n);
readln;
End.
volvo
12.12.2005 15:17
Цитата
Там есть программки, для добавления в файл, для просмотра, только что-то на работает...
Если ты имеешь в виду, что при выборе пункта меню 'просмотр' ничего не отображается на экране, то это само собой... Ты же пишешь информацию в файл...
Кроме этого, происходит путаница в следующем: Когда ты сохраняешь информацию об игроках (процедура Save), расширение .DAT автоматически НЕ прибавляется к имени файла, а когда пытаешься прочесть (Read_File) - почему-то прибавляется... Просто реши для себя, что в файлах с .DAT будут находиться таблицы, а без .DAT - исходная информация... Поэтому в Read_File строку
assign(f,comname+'.dat');
замени на
assign(f,comname);
Я бы на твоем месте сделал процедуру Print_Table универсальной, так чтобы она могла выводить данные и на экран, и в файл:
procedure print_table(on_screen: boolean; k:integer); var i, j: integer; f: text;
begin if on_screen then AssignCrt(f) else begin write('введите имя команды - '); readln(comname); assign(f,comname+'.DAT'); end; rewrite(f);
writeln(f,'таблица по баскетболу'); writeln(f); for i:=1 to k do with comands[i] do begin write(f,com,' '); write(f,surname:25-length(surname)); writeln(f,'',time:2:2,'','-',goal); end; close(f); if on_screen then begin write('Для продолжения - нажмите Enter...') readln; end; end;
теперь для того, чтобы вывести таблицу на экран, достаточно вызвать
print_table(true, k);
, а для вывода в файл -
print_table(false, k);
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.