|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Считать из текстового файла N-строк
Здравствуйте!
Существует текстовый файл. В файле Н-строк. Нужно считать ПОСЛЕДНИЕ 10 строк и вывести в ListView. Как взять последние строки? Спасибо! |
#2
|
||||
|
||||
Например, читать в циклический буфер из 10 строк. Потом вывести с позиции, на которой остановились.
jmp $ ; Happy End! The Cake Is A Lie. |
#3
|
||||
|
||||
Ну можно немного иначе поступить. Открыть файл как набор байт. Метнуться в конец и двигаясь к началу считать символы #13, попутно формируя строки.
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#4
|
||||
|
||||
Зачем? Читаем в StringList и берём последние 10 строк и никакого извращения.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
Этот пользователь сказал Спасибо angvelem за это полезное сообщение: | ||
cybermad (13.06.2013)
|
#5
|
|||
|
|||
Цитата:
Ага, а если файл пару гигабайт "весит". Тут надо от задачи смотреть. Если файл маленький, то проще считать весь целиком. Если большой, то зависит от конкретной задачи - как часто надо это делать и можно ли файл держать открытый... |
#6
|
|||
|
|||
Цитата:
спасибо! так и сделал. файл с содержимым в 78000 строк считывается на ура за 300 мсек. |
#7
|
||||
|
||||
Код:
var fv: text; i, l:integer; s:string; begin assign(fv, '1.txt'); reset(fv); l:=0; while not eof(fv) do begin inc(l); readln(fv); end; if l>=11 then begin for i:=1 to l-11 do readln(fv); for i:=l-10 to l do begin readln(fv,s); memo1.lines.add(s); end; end else for i:=1 to l do begin readln(fv, s); memo1.lines.add(s); end; end. Жизнь - игра. Сюжет тупой, зато графика офигенная |
#8
|
||||
|
||||
Цитата:
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#9
|
||||
|
||||
А линуксовая тулза tail прекрасно делает такое и с 10гб файлами
Может, стоит посмотреть её код? Оставайтесь хорошими людьми... VK id2634397, ds [at] phoenix [dot] dj |