
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
07.05.2019, 11:41
|
|||
|---|---|---|---|
Найти вхождение строки в конце файла |
|||
|
#18+
Есть текстовый файл большого размера, чтоб не перебирать все строки файла(размер строк >255 символов, кол-во строк около 100000), как можно уйти на конец последней строки(или начать перебор строк с последней строки) и найти строчку "xxx"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
07.05.2019, 12:22
|
|||
|---|---|---|---|
Найти вхождение строки в конце файла |
|||
|
#18+
q1w1e1Есть текстовый файл большого размера, чтоб не перебирать все строки файла(размер строк >255 символов, кол-во строк около 100000), как можно уйти на конец последней строки(или начать перебор строк с последней строки) и найти строчку "xxx"? С конца файл читает tail -n ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
07.05.2019, 15:19
|
|||
|---|---|---|---|
Найти вхождение строки в конце файла |
|||
|
#18+
Алгоритм поиска последней строки такой: читаешь последние N байт файла, заведомо больше чем одна строка, например 1024 Код: sql 1. 2. 3. 4. 5. затем разбираешь lcBuf на строки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
08.05.2019, 09:24
|
|||
|---|---|---|---|
Найти вхождение строки в конце файла |
|||
|
#18+
Спасибо за ответ, но только что-то не понятно... lnFpos = fseek(lnF, 1024, 2) && Указатель в файле 1024 с конца т.е. указатель встал на конец файла, и пытается продвинуться вперёд на ещё 1024 байта (в итоге пустая строка) сделал кол-во байтов отрицательной lnFpos = fseek(lnF, -1024, 2), но опять не то, как мне из этой переменной выделить строку, т.е. как прочитать кол-во байтов до символа перевода каретки... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
08.05.2019, 09:43
|
|||
|---|---|---|---|
Найти вхождение строки в конце файла |
|||
|
#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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=41&tablet=1&tid=1581661]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
33ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 236ms |
| total: | 350ms |

| 0 / 0 |

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