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

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

Чтение строк из текстового файла. [D5, Win95/98, Win2k]


RusPutin ©   (2004-08-21 02:26:00) 

Есть текстовый файл вида:

1 2
3 4
5 6
7 8

То есть в файле много строк по два числа в каждой (чила могут быть как положительные, так и отрицательные, как целые, так и дробные - короче, real). Также есть StringGrid, состоящий из двух колонок. Требуется считать числа в соответсвующие ячейки грида. Read(...) и Readln(...) считывают все строку целиком. А нужно числа по отдельности. Как быть?

Заранее спасибо.


RusPutin   (2004-08-21 14:42:00) [1]

2All, всем спасибо, проблему решил посредством функции copy.


Anatoly Podgoretsky   (2004-08-21 11:41:00) [2]

RusPutin   (21.08.04 11:15) [3]
SX, SY видимо у тебя строки?
Так вот строка это то что заканчивается разделителем строки, а ReadLn читает за раз только однустроку!


Sandman25   (2004-08-21 11:18:00) [3]

Если прочитать надо real, то и переменная SX должна быть типа real


RusPutin   (2004-08-21 11:15:00) [4]

Вот кусок кода:

while not EOF(F) do
begin

       j:=j+1;
       //меняю строку
       ReadLn(F, SX, SY);
       //считываю значения в переменные
       Form1.StringGrid1.Cells[0,j]:=SX;
       Form1.StringGrid1.Cells[1,j]:=SY;
       //засываю в ячейки
       form1.StringGrid1.RowCount:=form1.StringGrid1.RowCount+1;
       //увеличиваю количество строк
end;


Проблема в том, что вся строка все равно записывается в первую переменную (SX). И соответсвенно числа парами записываются в первый столбец. Так что не какить бочку на ReadLn не могу. :)


Anatoly Podgoretsky   (2004-08-21 10:31:00) [5]

Не кати бочку на ReadLn, он читает так, как ты ему скажешь.


KADAN   (2004-08-21 02:35:00) [6]

1) считать строку, назовем ее S
2) StringGrid.Cells[0,i]:=copy(S,1,pos(S,' ')-1);
  StringGrid.Cells[1,i]:=copy(S,pos(S,' ')+1, length(S)-pos(S,' '));

второй способ
ReadLn(f, a, b)


Наверх

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