Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.12.2012, 18:15   #1
Egorikas
Пользователь
 
Регистрация: 31.03.2012
Сообщений: 22
По умолчанию Вывод в виде таблицы. Pascal. Проблемы с ровностью.

Всем добрый вечер. По заданию, я должен выводить данные в виде ровной таблицы, но я никак не могу заставить её выводить ровно.
вот примерный код.
Код:
 write('--------------------------------------------------------------------------');
      writeln;
      write('|     Название       |     Стоимость номера    |   Колличество номеров   |');
      writeln;
      write('--------------------------------------------------------------------------');
      for i:=1 to rm do
      with gostsort[i] do
          begin
       writeln;
       write('|',' ':1,nazvanie,#9,'|':6,' ':1,strik,#9,'|':16,' ':1,ktrik,#9,'|':18);
       writeln;
       write('--------------------------------------------------------------------------');
           end;
Вся проблема начинается, если названия ( задал как string ) , различаются больше чем на символ. Помогите пожалуйста.

P.s. если нужно, могу добавить полный код процедуры.

Последний раз редактировалось Egorikas; 01.12.2012 в 18:19.
Egorikas вне форума Ответить с цитированием
Старый 01.12.2012, 18:20   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Наверное из-за немоноширинного шрифта в консоли.
Ты программу в ДОС запускаешь или в консоли виндовса?
Тут подумал немного:
Код:
 write('|',1,nazvanie:10,'|',strik:5,'|',ktrik:5,'|');
10 - Это выравнивание на 10 символов ровно
I'm learning to live...

Последний раз редактировалось Stilet; 01.12.2012 в 18:40.
Stilet вне форума Ответить с цитированием
Старый 01.12.2012, 18:28   #3
Egorikas
Пользователь
 
Регистрация: 31.03.2012
Сообщений: 22
По умолчанию

Как бы сказать, все это добро я вообще пишу под Ubunty в Lazarus. я просто не могу придумать, как её нормально выровнять. Так как, допустим, 1 отель у меня называется - Первый. А второ2 -2 , но у меня сбиваются все поля, и очень криво выдается, пробовал gotoy , ничего хорошего не получилось.

И запускаю через консоль линоксовскую. Ради интересна, запустил под виндой ( консоль), тоже самое.

Цитата:
Сообщение от Stilet Посмотреть сообщение
Наверное из-за немоноширинного шрифта в консоли.
Ты программу в ДОС запускаешь или в консоли виндовса?
Тут подумал немного:
Код:
 write('|',1,nazvanie;10,'|',strik:5,'|',ktrik:5,'|');
10 - Это выравнивание на 10 символов ровно
Сейчас попробую.

Последний раз редактировалось Stilet; 01.12.2012 в 18:39.
Egorikas вне форума Ответить с цитированием
Старый 01.12.2012, 18:40   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
ничего хорошего не получилось.
Мой пример должен сработать.
Цитата:
nazvanie;10
Там я : должен был поставить, видимо по клавише промахнулся, так что поправишься если что.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.12.2012, 18:40   #5
Egorikas
Пользователь
 
Регистрация: 31.03.2012
Сообщений: 22
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Наверное из-за немоноширинного шрифта в консоли.
Ты программу в ДОС запускаешь или в консоли виндовса?
Тут подумал немного:
Код:
 write('|',1,nazvanie;10,'|',strik:5,'|',ktrik:5,'|');
10 - Это выравнивание на 10 символов ровно
На 10 символо работает прекрасно, но попробовал увеличить интервал, чтобы выводилось более широко, и вот что получается.
Изображения
Тип файла: jpg 222.jpg (127.8 Кб, 162 просмотров)
Egorikas вне форума Ответить с цитированием
Старый 01.12.2012, 18:45   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Убери writeln-ы из цикла, они там не нужны.
Код:
 write('--------------------------------------------------------------------------');
      writeln('|     Название       |     Стоимость номера    |   Колличество номеров   |');
      writeln('--------------------------------------------------------------------------');
      for i:=1 to rm do
       with gostsort[i] do          begin
         writeln('|',nazvanie:20,'|',strik:10,'|',ktrik:10,'|');
       writeln('--------------------------------------------------------------------------');
           end;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.12.2012, 18:47   #7
Egorikas
Пользователь
 
Регистрация: 31.03.2012
Сообщений: 22
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Мой пример должен сработать.

Там я : должен был поставить, видимо по клавише промахнулся, так что поправишься если что.
Я про пример понял, и сам увидел и поставил, я про ничего хорошего это про мой вариант, твой попробовал и выше отписал ( скрин даже приложил).

Цитата:
Сообщение от Stilet Посмотреть сообщение
Убери writeln-ы из цикла, они там не нужны.
Код:
 write('--------------------------------------------------------------------------');
      writeln('|     Название       |     Стоимость номера    |   Колличество номеров   |');
      writeln('--------------------------------------------------------------------------');
      for i:=1 to rm do
       with gostsort[i] do          begin
         writeln('|',nazvanie:20,'|',strik:10,'|',ktrik:10,'|');
       writeln('--------------------------------------------------------------------------');
           end;
Ситуация, полностью аналогична скрину.

Последний раз редактировалось Stilet; 01.12.2012 в 19:12.
Egorikas вне форума Ответить с цитированием
Старый 01.12.2012, 19:08   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Странный какой-то эффект. У меня все в порядке.
Если прога портируемая - прикрепи, посмотрю.
I'm learning to live...

Последний раз редактировалось Stilet; 01.12.2012 в 19:11.
Stilet вне форума Ответить с цитированием
Старый 01.12.2012, 19:33   #9
Egorikas
Пользователь
 
Регистрация: 31.03.2012
Сообщений: 22
По умолчанию

Пожалуйста , вот она, я впринципе не знаю, как под виндой работать с файлами, поэтому не могу сказать портируемая или нет. Все в процедуре Sort.

Вот в вордовском файле, форматированная.
Вложения
Тип файла: txt Файл.txt (8.5 Кб, 136 просмотров)
Тип файла: doc файл.doc (50.5 Кб, 13 просмотров)

Последний раз редактировалось Stilet; 01.12.2012 в 20:38.
Egorikas вне форума Ответить с цитированием
Старый 01.12.2012, 20:44   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Не поверишь
я твою прогу не понял...
Ввести список - ввел, но таблицу при просмотре не получил вообще. Только шапку
Так что даже получить такие спецэффекты не могу.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ввод числа и вывод таблицы умножения, Pascal. Roman1295 Помощь студентам 3 06.09.2012 19:53
Задание на "записи". Описать группу учеников. Распечатать эти данные в виде таблицы и найти нужных. Free Pascal fleur* Паскаль, Turbo Pascal, PascalABC.NET 3 27.04.2012 14:45
вывод результов в виде таблицы изо Паскаль, Turbo Pascal, PascalABC.NET 6 04.04.2011 14:18
ВЫВОД РЕЗУЛЬТАТОВ В ВИДЕ ТАБЛИЦЫ изо Паскаль, Turbo Pascal, PascalABC.NET 0 26.03.2011 17:39
Как настроить эксель, чтобы он открывал в виде таблицы тхт файл с разделителем в виде точки с запятой xhour Microsoft Office Excel 1 05.05.2009 14:17