powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / EOF с третьей строки?
15 сообщений из 15, страница 1 из 1
EOF с третьей строки?
    #39961999
Валерий666
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите пожалуйста. Возник вопрос можно ли сделать сдвиг чтения строк в таком коде:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
var
  F: TextFile;
begin
....
    while not Eof(F) do
      begin
          Readln(F, s); 
...
end;



Так, чтобы чтение начиналось не сначала файла, а с n-строки.
...
Рейтинг: 0 / 0
EOF с третьей строки?
    #39962005
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: pascal
1.
2.
3.
4.
for i := 1 to N do
  Readln(F);
while not Eof(F) do begin
  Readln(F, s); 
...
Рейтинг: 0 / 0
EOF с третьей строки?
    #39962007
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Валерий666,

можно. прочитать предварительно n строк
...
Рейтинг: 0 / 0
EOF с третьей строки?
    #39962054
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DimaBr,

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
LineCount:=0;
while not eof(f) do
   begin
       inc(LineCount);
       readln(F,S);              
       //  if (LineCount<=N) then continue;  
       // или
       if (LineCount>N) then 
          begin
             DoSomeWork(....);
          end;
   end;



т.к. for .. do - обломится если файл пустой или строк меньше, чем N.
...
Рейтинг: 0 / 0
EOF с третьей строки?
    #39962069
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkMaster

Код: pascal
1.
2.
3.
4.
5.
6.
while not eof(f) do begin
  Dec(N);
  readln(F,S);              
  if N>0 then Continue;
  DoSomeWork(....);
end;


...
Рейтинг: 0 / 0
EOF с третьей строки?
    #39962127
Валерий666
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Немного не то, задача состоит именно в том, чтобы начать чтение с определенной строки, а не прочитать и пропустить.
...
Рейтинг: 0 / 0
EOF с третьей строки?
    #39962138
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Валерий666,

в случае использования TextFile это невоможно
...
Рейтинг: 0 / 0
EOF с третьей строки?
    #39962145
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Валерий666задача состоит именно в том, чтобы начать чтение с определенной строки, а не прочитать и
пропустить.

Это одно и то же. Невозможно найти начало строки, не прочитав все предыдущие. Если только
у тебя строки не фиксированной длины.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
EOF с третьей строки?
    #39962147
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
makhaonв случае использования TextFile это невоможно
Это невозможно при любом раскладе, а прикрутить Seek() к TextFile-то как раз
довольно просто.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
EOF с третьей строки?
    #39962209
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

не то, что бы совсем при любом (например - индексы строк), но будем считать, что невозможно.
...
Рейтинг: 0 / 0
EOF с третьей строки?
    #39962263
Валерий666
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ок, информацию принял.
Есть еще один момент, пока не совсем ясно. как его обыграть.

Есть некий текстовый файл, его нужно распарсить.
Структура не стабильная по количеству строк относящихся к одному объекту, т.е. на один объект может приходится 1 строка, а может 5. Четкого разделения между объектами нет, только признак по первому символу строки (если это символ(может быть любой, пример внизу), то это новый объект, если пробел, то эта строка относится к текущему).
что-то типа:

Наименование Значение Тариф 1 Коэф.ьено объект № 1 123 5.9854820.2838 - корректировка 1 124 4.9854820.2838 - плановый 198 9.4820.1238 - пол. тариф. 3 178 9.4820.1238ва объект № 2 9 1.5120.2838 - корректировка 1 124 4.9854820.2838.фыва объект № 3 9 1.5120.2838%?* объект № N 123 5.9854820.2838 - корректировка 1 124 4.9854820.2838 - корректировка 2 18 9.23550.1238 - корректировка 3 88 9.530.1238 - корректировка 2 13 9.32760.1238 - корректировка 3 782 1.610.1238
Таблица фиксирована по ширине, строку можно разбирать по индексам. Как можно распарсить вот это? Т.е. по итогу нужно получить Наименование объекта, Значение, Тариф 1, Коэффициент, но если есть корректировка следующая за этой строкой, то необходимо взять значение из соответствующего столбца.
...
Рейтинг: 0 / 0
EOF с третьей строки?
    #39962270
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Валерий666признак по первому символу строки (если это символ(может быть любой,
пример внизу), то это новый объект, если пробел, то эта строка относится к текущему).
что-то типа:

[src]if stroka[1] = ' ' then
target = tekuschij_objekt
else
target = novy_objekt;

Валерий666Как можно распарсить вот это?

Тривиально. Раз поля фиксированы - Copy() тебе поможет. В чём проблема-то?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
EOF с третьей строки?
    #39962283
Валерий666
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

Проблема в чтении файла. Мне надо читать построчно, предварительно переводя его из OEM в Win1251. С условием то понятно, непонятно как прочитать. Через EOF не получится, через for? Или загнать его в TStringList?
...
Рейтинг: 0 / 0
EOF с третьей строки?
    #39962284
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Валерий666Мне надо читать построчно, предварительно переводя его из OEM в Win1251.

RTFM ResetFile(), SetTextBuf(), ReadLn().
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
EOF с третьей строки?
    #39962286
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Валерий666Или загнать его в TStringList?
Можно и так если файл мелкий.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / EOF с третьей строки?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]