Функция перехода в файле

Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду

Ответить
oif
Сообщения: 42
Зарегистрирован: 09 ноя 2006, 21:03

Как перейти к нужному столбцу и строке в текстовом файле?
Пример надо установить курсор на 2 строке 3 столбце.
Хыиуду
Сообщения: 2442
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

Код: Выделить всё

procedure gotochar(var f:text;row,col:integer);
var i:integer;s:string;c:char;
begin
  reset(f);
  if row>1 then for i:=1 to row-1 do readln(f,s);
  if col>1 then for i:=1 to col-1 do read(f,c);
end;
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
oif
Сообщения: 42
Зарегистрирован: 09 ноя 2006, 21:03

Мне надо считать весь файл по столбцам.т.е все строчки 1 столбца,2.3 и так далее.
Причем сначала 1 столбца определяем кол-во определенного типа символа,потом переходим на второй столбец и опять находим кол-во.
и.т.д
Аватара пользователя
Игорь Акопян
Сообщения: 1440
Зарегистрирован: 13 окт 2004, 17:11
Откуда: СПБ
Контактная информация:

файл большой? если не очень можно считать построчно (или весь блок) в массив и дёргать оттуда
Изображение
oif
Сообщения: 42
Зарегистрирован: 09 ноя 2006, 21:03

Вот в этом вся и проблема файлы могут быть разные.
192х320
Лелик_1044
Сообщения: 340
Зарегистрирован: 22 ноя 2004, 19:15
Откуда: Минск
Контактная информация:

Создавай массив который меняется
Просто набрать исходники может и любая обезьяна, а придумать и отладить не каждый человек.
Аватара пользователя
Игорь Акопян
Сообщения: 1440
Зарегистрирован: 13 окт 2004, 17:11
Откуда: СПБ
Контактная информация:

чё-то тут не так... если в файле таблица, то число строк столбцов определено. (номер_строки-1)*Число_Элементов_в_строке+номер_столбца даст линейную позицию символа в файле.
Можно покурить доку на TFileStream, метод Seek, св-во Position и пр.
Изображение
oif
Сообщения: 42
Зарегистрирован: 09 ноя 2006, 21:03

чё-то тут не так... если в файле таблица, то число строк столбцов определено. (номер_строки-1)*Число_Элементов_в_строке+номер_столбца даст линейную позицию символа в файле.
Можно покурить доку на TFileStream, метод Seek, св-во Position и пр.
Спасибо.
А можно пример пожалуйста?
Метод seek вроде не работает с текстовыми файлами?
Аватара пользователя
Игорь Акопян
Сообщения: 1440
Зарегистрирован: 13 окт 2004, 17:11
Откуда: СПБ
Контактная информация:

я имел ввиду методы и св-ва TFileStream
чёт типа такого
[syntax:e3338a8c1c="delphi"]
fs := TFileStream.Create('c:\MyFile.txt', fmShareDenyWrite);
SetPos(fs, 3, 5);
...
procedure SetPos(AFS: TFileStream; r, c: integer);
begin
AFS.Seek( (r-1)*N+c, soFromBeginning); // N- кол-во столбцов табл. определить или задать
end;

[/syntax:e3338a8c1c]

пардон, могу ошибиться - пишу на коленке :)
Изображение
Ответить