|
Найти вхождение строки в конце файла
|
|||
---|---|---|---|
#18+
Есть текстовый файл большого размера, чтоб не перебирать все строки файла(размер строк >255 символов, кол-во строк около 100000), как можно уйти на конец последней строки(или начать перебор строк с последней строки) и найти строчку "xxx"? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2019, 11:41 |
|
Найти вхождение строки в конце файла
|
|||
---|---|---|---|
#18+
q1w1e1Есть текстовый файл большого размера, чтоб не перебирать все строки файла(размер строк >255 символов, кол-во строк около 100000), как можно уйти на конец последней строки(или начать перебор строк с последней строки) и найти строчку "xxx"? С конца файл читает tail -n ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2019, 12:22 |
|
Найти вхождение строки в конце файла
|
|||
---|---|---|---|
#18+
Алгоритм поиска последней строки такой: читаешь последние N байт файла, заведомо больше чем одна строка, например 1024 Код: sql 1. 2. 3. 4. 5.
затем разбираешь lcBuf на строки. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2019, 15:19 |
|
Найти вхождение строки в конце файла
|
|||
---|---|---|---|
#18+
Спасибо за ответ, но только что-то не понятно... lnFpos = fseek(lnF, 1024, 2) && Указатель в файле 1024 с конца т.е. указатель встал на конец файла, и пытается продвинуться вперёд на ещё 1024 байта (в итоге пустая строка) сделал кол-во байтов отрицательной lnFpos = fseek(lnF, -1024, 2), но опять не то, как мне из этой переменной выделить строку, т.е. как прочитать кол-во байтов до символа перевода каретки... ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2019, 09:24 |
|
Найти вхождение строки в конце файла
|
|||
---|---|---|---|
#18+
q1w1e1Спасибо за ответ, но только что-то не понятно... lnFpos = fseek(lnF, 1024, 2) && Указатель в файле 1024 с конца т.е. указатель встал на конец файла, и пытается продвинуться вперёд на ещё 1024 байта (в итоге пустая строка) сделал кол-во байтов отрицательной lnFpos = fseek(lnF, -1024, 2), но опять не то, как мне из этой переменной выделить строку, т.е. как прочитать кол-во байтов до символа перевода каретки... Да, действительно -1024, как-то нездорово в фоксе сделали, не как везде. Разбить на строки можно с помощью ALINES() Или можешь по-другому сделать, через fgets() Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2019, 09:43 |
|
|
start [/forum/topic.php?fid=41&msg=39811104&tid=1581661]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
3ms |
track hit: |
53ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 142ms |
0 / 0 |