Вверх ↑
Этот топик читают: Гость
Гость
Ответов: 17029
Рейтинг: 0
#1: 2007-06-19 13:38:50 правка | ЛС | профиль | цитата


Редактировалось 1 раз(а), последний 2017-03-04 23:46:38
карма: 0

0
Разработчик
Ответов: 26113
Рейтинг: 2126
#2: 2007-06-19 13:54:26 ЛС | профиль | цитата
Владд,
во-первых, вот это
SubStr=""
DestStr="
"[/code] надо наоборот
SubStr=""
DestStr="
"
а то у тебя три служебных символа вместо одного получается. Во-вторых, какой объем строк тестировался и на сколько разница в преобразовании?
карма: 22

0
Администрация
Ответов: 15295
Рейтинг: 1519
#3: 2007-06-19 13:59:23 ЛС | профиль | цитата
единственное, что можно сделать это убрать начальную загрузку строки в StrList, и сразу производить замену.

[size=-2]------ Добавлено в 13:59
nesco писал(а):
во-первых, вот это

не надо. Обработать нужно изначально Unix строки и поэтому замена стоит верная.
карма: 27
0
Разработчик
Ответов: 26113
Рейтинг: 2126
#4: 2007-06-19 14:04:19 ЛС | профиль | цитата
Dilma писал(а):
Обработать нужно изначально Unix строки и поэтому замена стоит верная

Если так, то да. Но так как в схеме -- нет. StrList добавляет #10#13, а к ним затем еще #13 добавляется.
карма: 22

0
Гость
Ответов: 17029
Рейтинг: 0
#5: 2007-06-19 14:52:19 правка | ЛС | профиль | цитата


Редактировалось 1 раз(а), последний 2017-03-04 23:46:38
карма: 0

0
Администрация
Ответов: 15295
Рейтинг: 1519
#6: 2007-06-19 15:04:34 ЛС | профиль | цитата
Владд писал(а):
Тормозит именно на обработке замены

Для строк в 3мб не удивительно. Быстрее замену сделать не получится. В данном случае по хорошему было бы заменить символ
на и выдавать в поток после каждой замены указатель на строку, идущую до этого . К сожалению в данном пакете такое не возможно без использования InlineCode и знания Delphi
карма: 27
0
Гость
Ответов: 17029
Рейтинг: 0
#7: 2007-06-19 15:24:30 правка | ЛС | профиль | цитата


Редактировалось 1 раз(а), последний 2017-03-04 23:46:38
карма: 0

0
Администрация
Ответов: 15295
Рейтинг: 1519
#8: 2007-06-19 15:34:33 ЛС | профиль | цитата
Владд, нельзя ли всетаки код вставлять в соответствующие теги?

Владд писал(а):
А как насчёт этого ?

такая схема пригодна только для небольших строк. Но даже в ней делается слишком много копирований, на которое уходит процессорное время.
карма: 27
0
Разработчик
Ответов: 26113
Рейтинг: 2126
#9: 2007-06-19 15:35:26 ЛС | профиль | цитата
Владд писал(а):
Например начать обработку 3 мб,то они будут обрабатыватся минут 5

Чушь какая-то. У меня таблица в 3 mb грузится за 18 сек (в самом худшем варианте за 30). А таблица парисруется по столбцам и по содержимому гораздо сложнее, чем просто убирание символа #13.
карма: 22

0
Гость
Ответов: 17029
Рейтинг: 0
#10: 2007-06-19 15:41:24 правка | ЛС | профиль | цитата


Редактировалось 1 раз(а), последний 2017-03-04 23:46:38
карма: 0

0
Администрация
Ответов: 15295
Рейтинг: 1519
#11: 2007-06-19 15:42:14 ЛС | профиль | цитата
nesco писал(а):
Чушь какая-то.

nesco, а есть уверенность в наличие полного представления о происходящем в приденном примере, чтобы так лихо сравнивать производительность с чем-то
карма: 27
0
Ответов: 2125
Рейтинг: 159
#12: 2007-06-19 15:44:00 ЛС | профиль | цитата
Stream в руки - и с пестней
карма: 1

0
Разработчик
Ответов: 26113
Рейтинг: 2126
#13: 2007-06-19 15:55:18 ЛС | профиль | цитата
Dilma писал(а):
а есть уверенность в наличие полного представления о происходящем в приденном примере, чтобы так лихо сравнивать производительность с чем-то

Вообще-то большой уверенности нет, но и окультно заявлять о том, что виноват именно StrList, тоже чести не делает. Если убрать именно StrList'ы и проверить быстродействие, то насколько оно прибавится? Вот что по этому поводу пишет Кладов
Кладов писал(а):
Загрузка текста (например, из файла) в объект TStrList, или сохранение текста в файл или поток - это чрезвычайно быстрая операция, и выполняется мгновенно даже для мегабайтов и десятков мегабайт.


[size=-2]------ Добавлено в 15:55
Влад писал(а):
тут не убирание символа #13,А замена на #10#13

Вот похоже, это и тормозит -- именно компонент Replace. И без разницы для этого компонента, убрать или заменить.
карма: 22

0
Ответов: 9906
Рейтинг: 351
#14: 2007-06-19 16:10:45 ЛС | профиль | цитата
Кладов не делает замен. Он нулики лепит в исходный текст и накапливает PChar-ы в List-е
Берешь, смотришь - и никаких фантазий.
карма: 9

0
Разработчик
Ответов: 26113
Рейтинг: 2126
#15: 2007-06-19 16:14:01 ЛС | профиль | цитата
Galkov писал(а):
Кладов не делает замен. Он нулики лепит в исходный текст и накапливает PChar-ы в List-е
Берешь, смотришь - и никаких фантазий
А я чего против, что ли. Я совсем про другое. Вот про это
Владд писал(а):
Есть варианты модерницации StrList ?

карма: 22

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)