Задача простая если бы не файл весом почти 5 мб, есть ли способ не загружая весь файл выдрать заданную строку ?
Этот топик читают: Гость
Ответов: 875
Рейтинг: 101
|
|||
карма: 1 |
|
Ответов: 1088
Рейтинг: 112
|
|||
Если не знаеш где примерно эта строка то думаю без загрузки никак.
|
|||
карма: 0 |
| ||
Голосовали: | flud |
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
карма: 27 |
| ||
файлы: 1 | code_11855.txt [478B] [224] | ||
Голосовали: | flud |
Ответов: 2125
Рейтинг: 159
|
|||
Найти 5678-ую строку не просканировав файл от начала - невозможно. Исключение: в файл строки только добавляются, и у тебя есть индексный файл (массив позиций строк), который также дополняется в случае обнаружения увеличения размера файла. Если это делается только один раз, проще просканировать файл от начала, т.е. считывать по одной строке и подсчитывать их количество.
|
|||
карма: 1 |
| ||
Голосовали: | flud |
Ответов: 875
Рейтинг: 101
|
|||
Dilma идеально, но как мне указать строку 2,3,433 итд. и количество строк мне известно.
|
|||
карма: 1 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
flud писал(а): но как мне указать строку 2,3,433поставить счетчик и блок If |
|||
карма: 27 |
|
Ответов: 2125
Рейтинг: 159
|
|||
flud, откуда же ты узнаёшь, какую строку по номеру тебе нужно считать?
|
|||
карма: 1 |
|
Ответов: 875
Рейтинг: 101
|
|||
tsdima писал(а): flud, откуда же ты узнаёшь, какую строку по номеру тебе нужно считать?мне не нужно определенную строку, я делаю рандом миниму 0, макс 67989 |
|||
карма: 1 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
лучше использовать БД для этих целей
|
|||
карма: 27 |
|
Ответов: 2125
Рейтинг: 159
|
|||
flud писал(а): рандомНу тогда просто: перемещаешься на любой байт файла, читаешь (возможно) неполную строку, и затем ещё одну строку, которая и будет твоей рандомной строкой. |
|||
карма: 1 |
|
Ответов: 5227
Рейтинг: 587
|
|||
карма: 4 |
| ||
файлы: 1 | code_11866.txt [1.2KB] [231] |
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
andrestudio, чем это отличается от того, что было дано в третьем посте?
|
|||
карма: 27 |
|
Разработчик
Ответов: 26113
Рейтинг: 2126
|
|||
А я бы проиндексировал файл
|
|||
карма: 22 |
|
Ответов: 5227
Рейтинг: 587
|
|||
Dilma писал(а): чем это отличается от того, что было дано в третьем посте?Решением, VBJScript такой же штатный элемент. Во вторых, в цикле у меня строки пропускаются (не считываются) а выводится только индексная строка. |
|||
карма: 4 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
andrestudio писал(а): в цикле у меня строки пропускаются (не считываются) определить конец строки не возможно, не считав ее целиком. tsdima писал(а): Найти 5678-ую строку не просканировав файл от начала - невозможно. Исключение: в файл строки только добавляются, и у тебя есть индексный файл (массив позиций строк) |
|||
карма: 27 |
|