Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

выравнивание в текстовом файле [D5, Win95/98]


appendix ©   (2004-09-19 13:38:00) 

Подскажите как правильно организовать вывод в файл
из StringGrid. Чтоб также ровно колонки получались.

Сейчас получается так:
     
 1636,038        620,343
 1636,088        660,333        
 0,678        0,323            
 0,029        0,024          
 
кусок процедуры записи в файл:

for i := 0 to StringGrid1.RowCount-1  do
WriteLn(F,' ' + StringGrid1.Cells[0,i] + '        '+
                StringGrid1.Cells[1,i] + '        '+
                StringGrid1.Cells[2,i] + '        '+
                StringGrid1.Cells[3,i]);

кусок из StringGrid1DrawCell:

s := StringGrid1.Cells[ACol,ARow];
DrawText(StringGrid1.Canvas.Handle,PChar(s),length(s),Rect,DT_Right);
 
В Stringgrid'е колонки такие какие надо - ровные:
 
 1636,038        620,343
 1636,088        660,333        
    0,678          0,323            
    0,029          0,024    

Вот надо, чтоб также красиво в файл записывалось.


Anatoly Podgoretsky   (2004-09-25 20:04:00) [1]

appendix ©   (25.09.04 19:26) [10]
Читать надо было две вещи - [8] и справку, в ней все подробно описано.


appendix   (2004-09-25 19:26:00) [2]

Я пробовал писать
WriteLn(F, StringGrid1.Cells[0,1]:10:15);

но выходила ошибка
illegal type in Write/Writeln Statement

А вот когда я прочитал Str+F1,
то написал
WriteLn(F,' ',(StringGrid1.Cells[0,i]):15,
      (StringGrid1.Cells[1,i]):15,
             (StringGrid1.Cells[2,i]):15);
и всё заработало.


GuAV   (2004-09-24 19:56:00) [3]


> Но так и не понял что такое
> StringGrid1.Cells[0,i]:w:d
>
> как этим пользоваться?

WriteLn
или
Str
+
F1


Anatoly Podgoretsky   (2004-09-24 19:43:00) [4]

Для текста d не требуется, это только для чисел с плавающей запятой.


Defunct   (2004-09-24 19:38:00) [5]

appendix ©   (24.09.04 19:31) [6]

WriteLn(F, StringGrid1.Cells[0,i]:10:15, StringGrid2.Cells[1,i]:10:15);


appendix   (2004-09-24 19:31:00) [6]

Воспользовался format('%15.10s',[StringGrid1.Cells[1,i]]) +...
Всё получилось как надо.
Спасибо за подсказку.

Но так и не понял что такое
StringGrid1.Cells[0,i]:w:d

как этим пользоваться?


Anatoly Podgoretsky   (2004-09-19 18:36:00) [7]

begin...end ©   (19.09.04 14:00) [3]
А чего вспоминаться, как был Паскаль так и остался, не смотря на меркетинговые ухищрения.


GuAV   (2004-09-19 18:35:00) [8]

formatом ещё можно.


begin...end   (2004-09-19 14:00:00) [9]


> [2] Anatoly Podgoretsky ©   (19.09.04 13:57)

Старый добрый Паскаль сразу вспомнился... :-)))


Anatoly Podgoretsky   (2004-09-19 13:57:00) [10]

StringGrid1.Cells[0,i]:w:d


begin...end   (2004-09-19 13:40:00) [11]

Вместо пробелов вставляй символы табуляции.


Наверх

Титульная страница Поиск, карта сайта Написать письмо