CaptainFlint

|
Posted: Tue Mar 30, 2010 14:47 Post subject: |
|
|
Dmitry Tarasov wrote: | С чем всё же оно связано, с используемой версией Delphi? |
Нет, с особенностью работы Lister'а с файлами. Для ускорения работы Lister читает не весь файл, а только небольшой блок — размером, как процитировал Avada, 128 килобайт, что даёт возможность с одинаковой скоростью открывать как десятибайтные, так и десятигигабайтные файлы. Но если файл бинарный, и в нём очень долго не встречается символ перевода строки, то все эти 128 килобайт (и даже больше) запросто могут оказаться одной сверхдлинной строкой. Если где-то не остановиться, то придётся считывать, возможно, весь файл целиком, и всё ускорение работы сойдёт на нет (не говоря уж о потреблении памяти). Кроме того, если весь считанный блок оказался одной длинной строкой, то пустое место под ней в окне просмотра тоже надо чем-то заполнить, иначе будет выглядеть, как будто достигли конца файла. Вот Гислер и решил принудительно разрывать строки по достижении определённого количества символов. Это сразу решает и проблему поблочного считывания, и проблему заполнения пустого места. Неудобства, конечно, тоже есть, но это проблема всех компромиссов. Лучшего решения пока, насколько я знаю, не придумано. _________________ Почему же, ё-моё, ты нигде не пишешь "ё"? |
|