FileReadStr & FileReadNumber & FileSeek

 
FileReadStr & FileReadNumber & FileSeek
Пытаюсь выхватить из *.csv файлов значения от конца файла,но когда как получается, то дата пустая, то перепутанные значения.Какие смещения нужны при разделителе ","
 
это очень тяжело - читать файл с конца
для этого необходимо обеспечить, чтобы все поля в строке имели фиксированный размер или хотя бы обеспечить, чтобы все строки в файле имели одинаковую длину. если знать эту длину, то смещение посчитать нет проблем. необходимо только учитывать, что каждая строка заканчивается двумя символами - carriage return и line feed.
впрочем, можно реализовать следующий подход. установите указатель файла приблизительно. затем в цикле читайте строки с проверкой конца строки

FileSeek( handle, 300, SEEK_END);
while !IsFileLineEnded( handle ) begin
some_string = FileReadString( handle );
end;


если размер Ваших строк меньше 300, то совершенно определённо можно сказать, что после указанного цикла чтение будет производиться с начала 1,2,3,4... строки от конца (это зависит от среднего размера строк) файла.

 
можно запомнить позиции каждой строки
первая позиция - 0. затем в цикле после того как отловили состояние конца строки, спросить очередную позицию функцией FileTell.
позиции запомните в массиве. цикл прокрутите только один раз в процессе инициализации эксперта