|
|
|
Найти вхождение строки в конце файла
|
|||
|---|---|---|---|
|
#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&fpage=7&tid=1581661]: |
0ms |
get settings: |
12ms |
get forum list: |
14ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
59ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
46ms |
get tp. blocked users: |
2ms |
| others: | 218ms |
| total: | 377ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...