Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [Pascal] Выравнивание текста записей, (БД) типа рекорд 
:(
    Опции темы
Psytodelist
Дата 21.3.2010, 21:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 89
Регистрация: 5.3.2010

Репутация: нет
Всего: нет



Здравствуйте. Я написал программу,
попросили, чтобы текст в таблице выравнивался
по левому краю. Может, кто подскажет как делать?
С грапф. пробовал - глючит паскаль. Может, не то просто вводил?

Вот прога:

Код

program ORIANDER;
uses crt;

type anketa=record
name:string;
sex:string;
old:integer;
height:integer;
zp:integer;
house:char;
car:char;
end; filetype=file of anketa;

var body:array[1..3] of anketa; i:integer;
var user_case:byte; vik_min, vik_max,zrist,pen_vik:integer; f:filetype;

procedure TableHeader;
begin
 write('Imya':10);
 write('Stat`':10);
 write('Vik':10);
 write('Zrist(cm)':15);
 write('Zarplata($)':15);
 write('Dim':5);
 write('Avto':5);
 writeln;
end;

{---}
procedure p1 (var ff:filetype; vik_minn:integer; vik_maxx:integer);
begin
assign(ff,'F:\BP\BIN\ank.txt');
reset(ff); i:=0;

TableHeader;

 while not(eof(ff)) do
 begin
 i:=i+1;
 read(ff,body[i]);
 if (body[i].old>=vik_minn) {!}
 and (body[i].old<=vik_maxx)
 and (body[i].sex='man')
 and (body[i].car='+')
 then begin
 write(body[i].name:10);
 write(body[i].sex:10);
 write(body[i].old:10);
 write(body[i].height:15);
 write(body[i].zp:15);
 write(body[i].house:5);
 write(body[i].car:5);
 writeln; end;
end;
 readkey;

end;
{---}
procedure p2 (var ff:filetype;zristt:integer);
begin
 assign(ff,'F:\BP\BIN\ANK.TXT');
 reset(ff); i:=0;

 TableHeader;

 while not(eof(ff)) do
 begin
 i:=i+1;
 read(ff,body[i]);
 if (body[i].height <= zristt)
 and (body[i].sex='wom')
 then begin
 write(body[i].name:10);
 write(body[i].sex:10);
 write(body[i].old:10);
 write(body[i].height:15);
 write(body[i].zp:15);
 write(body[i].house:5);
 write(body[i].car:5);
 writeln; end;
 end;
 readkey; end;

{---}
procedure p3 (var ff:filetype;pen_vikk:integer);
begin
assign(ff,'F:\BP\BIN\ANK.TXT');
 reset(ff); i:=0;

 TableHeader;

 while not(eof(ff)) do
 begin
 i:=i+1;
 read(ff,body[i]);
 if (body[i].old >= pen_vikk)
 then begin
 write(body[i].name:10);
 write(body[i].sex:10);
 write(body[i].old:10);
 write(body[i].height:15);
 write(body[i].zp:15);
 write(body[i].house:5);
 write(body[i].car:5);
 writeln; end;
 end;
 readkey; end;

{---}
begin clrscr;

{ for i:=1 to 3 do
 begin
 writeln('Vvedit` anketu', i ,'-go u4asnika:');

 writeln('Vvedit imya');
 readln(body[i].name);

 writeln('Vvedit` stat (man or wom)`');
 readln(body[i].sex);

 writeln('Vvedit` vik');
 readln(body[i].old);

 writeln('Vvedit` zrist');
 readln(body[i].height);

 writeln('Vvedit` zarobitnu platu');
 readln(body[i].zp);

 writeln('Nayavnist kvarturu (+ or -)');
 readln(body[i].house);

 writeln('Nayavnist mashinu (+ or -)');
 readln(body[i].car);

 writeln; end;
 {---} writeln('Vvod zakon4en');
 writeln('Press any key'); readkey;






 repeat clrscr;
 Writeln('Vuberit` odun z punktiv menu:'); writeln;
 writeln('1 stvorennya filu');
 writeln('2 vuvestu vsi anketu');
 writeln('3 4oloviku pevnogo viku z avto');
 writeln('4 winku zrist yakuh ne perevishue zadannogo');
 writeln('5 vuvestu anketu pencioneriv');
 writeln('6 exit');

 readln(user_case);

 case user_case of
 1:begin clrscr;
 assign(f,'F:\BP\BIN\ank.txt');
 rewrite(f);
 for i:=1 to 3 do begin

 writeln('Vvedit` anketu', i ,'-go u4asnika:');

 writeln('Vvedit imya');
 readln(body[i].name);

 writeln('Vvedit` stat (man or wom)`');
 readln(body[i].sex);

 writeln('Vvedit` vik');
 readln(body[i].old);

 writeln('Vvedit` zrist');
 readln(body[i].height);

 writeln('Vvedit` zarobitnu platu');
 readln(body[i].zp);

 writeln('Nayavnist kvarturu (+ or -)');
 readln(body[i].house);

 writeln('Nayavnist mashinu (+ or -)');
 readln(body[i].car);

 write(f,body[i]);

 writeln; end;
 close(f);
 writeln('file stvoreno');
 writeln('Press any key'); readkey;
 end;


 2:begin clrscr;
 writeln('Vsi anketu:');
 {for i:=1 to 3 do
 begin
 write(body[i].name:8);
 write(body[i].sex:8);
 write(body[i].old:8);
 write(body[i].height:8);
 write(body[i].zp:8);
 write(body[i].house:4);
 write(body[i].car:4);
 writeln;
 end; end;}
 assign(f,'F:\BP\BIN\ANK.TXT');
 reset(f); i:=0;

 TableHeader;

 while not(eof(f)) do
 begin
 i:=i+1;
 read(f,body[i]);
 write(body[i].name:10);
 write(body[i].sex:10);
 write(body[i].old:10);
 write(body[i].height:15);
 write(body[i].zp:15);
 write(body[i].house:5);
 write(body[i].car:5);
 writeln;
 end;
 readln; end;

 3:begin clrscr;
 writeln('4oloviku pevnogo viku z avto');
 writeln('Vvedit` min. vik 4olovika: '); read(vik_min);
 writeln('Vvedit` max. vik 4olovika: '); read(vik_max);
 assign(f,'F:\BP\BIN\ANK.TXT');
 p1(f,vik_min,vik_max);
 {reset(f); i:=0;
 while not(eof(f)) do
 begin
 i:=i+1;
 read(f,body[i]);
 if (body[i].old>=vik_min)
 and (body[i].old<=vik_max)
 and (body[i].sex='man')
 and (body[i].car='+')
 then begin
 write(body[i].name:8);
 write(body[i].sex:8);
 write(body[i].old:8);
 write(body[i].height:8);
 write(body[i].zp:8);
 write(body[i].house:4);
 write(body[i].car:4);
 writeln; end;
 end;
 readkey; end;}
















 { for i:=1 to 3 do
 begin
 if (body[i].old>=vik_min)
 and (body[i].old<=vik_max)
 and (body[i].sex='man')
 and (body[i].car='+')
 then begin
 write(body[i].name:8);
 write(body[i].sex:8);
 write(body[i].old:8);
 write(body[i].height:8);
 write(body[i].zp:8);
 write(body[i].house:4);
 write(body[i].car:4);
 writeln; end;
 end; end; }

 readkey; end;
 4:begin clrscr;
 writeln('Vvedit` zrist winki, yakij ne mowna perevishuvayu: '); read(zrist);
 p2(f,zrist);end;
 { assign(f,'F:\BP\BIN\ANK.TXT');
 reset(f); i:=0;
 while not(eof(f)) do
 begin
 i:=i+1;
 read(f,body[i]);
 if (body[i].height <= zrist)
 and (body[i].sex='wom')
 then begin
 write(body[i].name:8);
 write(body[i].sex:8);
 write(body[i].old:8);
 write(body[i].height:8);
 write(body[i].zp:8);
 write(body[i].house:4);
 write(body[i].car:4);
 writeln; end;
 end;
 readkey; end;}





















 {for i:=1 to 3 do
 begin
 if (body[i].height <= zrist)
 and (body[i].sex='wom')
 then begin
 write(body[i].name:8);
 write(body[i].sex:8);
 write(body[i].old:8);
 write(body[i].height:8);
 write(body[i].zp:8);
 write(body[i].house:4);
 write(body[i].car:4);
 writeln; end;
 end; end;}

 5:begin clrscr;
 writeln('Vvedit` vik z yakogo jdut` na penciju: '); read(pen_vik);
 p3(f,pen_vik);
   {assign(f,'F:\BP\BIN\ANK.TXT');
 reset(f); i:=0;
 while not(eof(f)) do
 begin
 i:=i+1;
 read(f,body[i]);
 if (body[i].old >= 60)
 then begin
 write(body[i].name:8);
 write(body[i].sex:8);
 write(body[i].old:8);
 write(body[i].height:8);
 write(body[i].zp:8);
 write(body[i].house:4);
 write(body[i].car:4);
 writeln; end;
 end;
 readkey; end;}





















 {for i:=1 to 3 do
 begin
 if (body[i].old >= 60)
 then begin
 write(body[i].name:8);
 write(body[i].sex:8);
 write(body[i].old:8);
 write(body[i].height:8);
 write(body[i].zp:8);
 write(body[i].house:4);
 write(body[i].car:4);
 writeln; end;
 end; end;}
  end;
 6:halt; end; until user_case=255;
 writeln;end.

PM MAIL   Вверх
ФедосеевПавел
Дата 23.3.2010, 20:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 291
Регистрация: 7.2.2009

Репутация: 2
Всего: 10



Думаю, что здесь два пути.
1. write(MyStr, ' ':(15-Length(MyStr)));
  Для числовых данных - сначала преобразовать число в строку Str(Chislo, MyStr);
2. Определить функцию (в FPC она уже есть) PadRight, кототрая строку длиной m дополняет пробелами справа до строки длиной N. Опять же, числа нужно преобразовать в строку.
Вот описание из FPC:
Код
36.3.56 PadRight
Synopsis: Add spaces to the right of a string till a certain length is reached.
Declaration: function PadRight(const S: String;N: Integer) : String
Visibility: default
Description: PadRight add spaces to the left of the string S till the result reaches length Len. If the string S
has length equal to or largert than Len, no spaces are added, and the string S is returned as-is. The
resulting string is S, left-justified on length Len .
Errors: None.

PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0463 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.