Страница 1 из 1
Функция перехода в файле
Добавлено: 14 ноя 2006, 22:39
oif
Как перейти к нужному столбцу и строке в текстовом файле?
Пример надо установить курсор на 2 строке 3 столбце.
Добавлено: 15 ноя 2006, 02:32
Хыиуду
Код: Выделить всё
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;
Добавлено: 15 ноя 2006, 21:09
oif
Мне надо считать весь файл по столбцам.т.е все строчки 1 столбца,2.3 и так далее.
Причем сначала 1 столбца определяем кол-во определенного типа символа,потом переходим на второй столбец и опять находим кол-во.
и.т.д
Добавлено: 16 ноя 2006, 11:13
Игорь Акопян
файл большой? если не очень можно считать построчно (или весь блок) в массив и дёргать оттуда
Добавлено: 16 ноя 2006, 12:12
oif
Вот в этом вся и проблема файлы могут быть разные.
192х320
Добавлено: 16 ноя 2006, 12:40
Лелик_1044
Создавай массив который меняется
Добавлено: 17 ноя 2006, 11:28
Игорь Акопян
чё-то тут не так... если в файле таблица, то число строк столбцов определено. (номер_строки-1)*Число_Элементов_в_строке+номер_столбца даст линейную позицию символа в файле.
Можно покурить доку на TFileStream, метод Seek, св-во Position и пр.
Добавлено: 17 ноя 2006, 16:56
oif
чё-то тут не так... если в файле таблица, то число строк столбцов определено. (номер_строки-1)*Число_Элементов_в_строке+номер_столбца даст линейную позицию символа в файле.
Можно покурить доку на TFileStream, метод Seek, св-во Position и пр.
Спасибо.
А можно пример пожалуйста?
Метод seek вроде не работает с текстовыми файлами?
Добавлено: 17 ноя 2006, 18:20
Игорь Акопян
я имел ввиду методы и св-ва 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]
пардон, могу ошибиться - пишу на коленке
