Этот топик читают: Гость
Ответов: 16884
Рейтинг: 1239
|
|||
карма: 25 |
| ||
файлы: 2 | normalpchar.rar [1.5KB] [427], normalpchar.gif [20KB] [739] |
Разработчик
Ответов: 26103
Рейтинг: 2124
|
|||
Посмотрю, когда время будет. Сейчас занят немного
|
|||
карма: 22 |
|
Ответов: 2223
Рейтинг: 676
|
|||
О чем вообще тема? Из названия не понятно и у первого поста файл пропал.
|
|||
карма: 11 |
|
Ответов: 8905
Рейтинг: 823
|
|||
sla8a, "Шо, опять?"
![]() |
|||
карма: 19 |
| ||
файлы: 1 | normalpchar2.rar [2.5KB] [327] |
Ответов: 2223
Рейтинг: 676
|
|||
Леонид,[flood]а зачем вы у Tad-a аттачи воруете?
![]() |
|||
карма: 11 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
sla8a, Хотел отредактировать и выложить готовый компонент на эту тему и... сайт заклинил. Сейчас вызвал на редактирование - файлы появились.
![]() ![]() - Циля, как Ваши дела? - Ой, да полная жопа! - И шо, кроме проблем с фигурой, ничего нового ? Теперь про sla8a писал(а): О чем вообще тема?Пример в первом топике о том, как ускорить обработку текста (строки). Была взята задача 1. "Удаление лишних пробелов" и 2. "Удаление лишних пробелов и непечатных символов" из текста, исключив копирование строки из одного места в памяти в другое. Готова заготовка компонента, решающая эту задачу : normalise.rar Это только заготовка ! Следующая задача : Мгновенный вывод текста в визуальные компоненты (например, в Memo). Мгновенный, а не загрузка 50 мб текста в течении 5 минут. Раньше я решал эту проблему применением связки StrList + For + Memo, т.е. загружал текст в StrList, а в Memo выводил столько строк, сколько видно в окне Memo. Пользователь не сидит и не ждет результата по полчаса. ------------ Дoбавленo в 00.10: Об этом всём, писалось в первом топике, но форум отказался все это схавать. Пришлось описательную часть удалить. |
|||
карма: 25 |
| ||
файлы: 1 | normalise.rar [1.1KB] [337] | ||
Голосовали: | MAV |
Ответов: 16884
Рейтинг: 1239
|
|||
Значит не будем.
nesco, удали тему. |
|||
карма: 25 |
|
Ответов: 4628
Рейтинг: 747
|
|||
Tad, не забывай про это: code_36297.txt
|
|||
карма: 26 |
| ||
файлы: 1 | code_36297.txt [2.1KB] [690] | ||
Голосовали: | MAV, Tad |
Ответов: 1304
Рейтинг: 405
|
|||
Tad, На данный момент в коде использую функцию DelSpace1 из strutils(FPC), далее в твоём примере добавил для посмотреть. Кстати про свойство NormSpace, зачем удалять пробелы в начале и конце строки?, нормализовать текст думаю нужно по одному правилу для любой части строки.
normalpchar_str.zip |
|||
карма: 3 |
| ||
файлы: 1 | normalpchar_str.zip [2KB] [322] |
Ответов: 16884
Рейтинг: 1239
|
|||
Netspirit писал(а): не забывай про этоTad писал(а): исключив копирование строки из одного места в памяти в другое.1. MAV писал(а): зачем удалять пробелы в начале и конце строки?, нормализовать текст думаю нужно по одному правилу для любой части строки. 2. MAV писал(а): далее в твоём примере добавил для посмотреть. |
|||
карма: 25 |
|
Ответов: 4628
Рейтинг: 747
|
|||
Tad писал(а): т.е. текст обрабатывается на том месте в памяти, куда он был помещён изначальноНе думаю, что быстродействие сильно уменьшится, если будет одно копирование на операцию (в штатном компоненте происходит множественное копирование). И кстати, у тебя после Trim() всёравно новая копия строки получается - поставь Trim перед Norm_Text и будет тебе счастье. Вроде ещё _hi_onEvent(onRes, PChar(Fstr) ) делает ещё один раз копию строки. [offtop]PS: А KOL.Trim() можно сделать более эффективной, если переписать без использования TrimLeft и TrimRight.[/offtop] |
|||
карма: 26 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
Netspirit писал(а): Это имеет смысл при работе с кодом.Я загрузил текстовый файл в 1,5 ГБ. И куда будет копироваться результат, если у меня всего памяти 2ГБ ? Срочно бежать в магазин за ещё парочкой линеек памяти ? Или отказаться от заказа ? И когда "это имеет смысл" решать тому, кому нужны проблемы с нехваткой памяти или нет. |
|||
карма: 25 |
|
Ответов: 4628
Рейтинг: 747
|
|||
Ну, посчитай, сколько у тебя раз происходит копирование при считывании значения после загрузки и обработке в твоём коде - будешь знать сколько нужно памяти. Например, если в StrList и получится уместить такой объем, то сколько потребуется памяти, чтобы получить этот текст с точки StrList.Text?
|
|||
карма: 26 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
Netspirit писал(а): Ну, посчитай, сколько у тебя раз происходит копирование при считывании значения после загрузки и обработке в твоём коде |
|||
карма: 25 |
|
Ответов: 1304
Рейтинг: 405
|
|||
Netspirit писал(а): (пользователь подаст текст с какого-то компонента на обработку, затем в другом конце схемы возьмёт текст из того же компонента и получит бяку)Tad писал(а): Потому и удаляю, что считаю пробелы вначале и в конце строки её составляющими. |
|||
карма: 3 |
| ||
Голосовали: | flint2 |