Колориметрия, печать и препресс: технологии Главная Форум Галерея Контакты Download Статьи
Сражаясь неустанно,
доживём мы, Санчо,
до Золотого века!
 

Форум колористов и полиграфистов

Колориметрия и печать: технологии
 
Текущее время: 9:42, Чт, 19 сен 2019

Часовой пояс: UTC+03:00


Новые
ответы
в темах:



Начать новую тему  Ответить на тему  [ 6 сообщений ] 
Автор Сообщение
 Заголовок сообщения: Replace
СообщениеДобавлено: 8:28, Сб, 25 май 2019 
Не в сети

Зарегистрирован: 3:11, Пт, 12 апр 2019
Сообщения: 7
Посмотрел, что в инструкции к спектракалку Вы жалуетесь, что он медленно работает с пробелами. Заглянул в функцию.

Вот это вот все:
function input_replace(){
spct_Ugly = spct;
spct = replace_string(spct,'       ','\t');
spct = replace_string(spct,'      ','\t');
spct = replace_string(spct,'     ','\t');
spct = replace_string(spct,'    ','\t');
spct = replace_string(spct,'   ','\t');
spct = replace_string(spct,'  ','\t');
spct = replace_string(spct,' \t','\t');
spct = replace_string(spct,' \n','\n'); //argyll
spct = replace_string(spct,'\t ','\t');
spct = replace_string(spct,'\t\t\t\t\t\t\t','\t');
spct = replace_string(spct,'\t\t\t\t\t\t','\t');
spct = replace_string(spct,'\t\t\t\t\t','\t');
spct = replace_string(spct,'\t\t\t\t','\t');
spct = replace_string(spct,'\t\t\t','\t');
spct = replace_string(spct,'\t\t','\t');
spct = replace_string(spct,'\n\n','\n');
spct = replace_string(spct,'\t\n','\n');
spct = replace_string(spct,'\n\t','\n');
spct = replace_string(spct,',','.');
spct = replace_string(spct,'"',''); //PO
spct = replace_string(spct,'\t\r','\r'); //Opera, IE
spct = replace_string(spct,'\r\t','\r'); //Opera, IE
spct = replace_string(spct,'\r\r','\r'); //Opera, IE
spctOK = spct;
}
должно выглядеть так:
function input_replace(){
spct_Ugly = spct;
spctOK = spct.replace(//[\t ]+/g/g, '\t').replace(/\s+/g, '\n').replace(/,/g, '.').replace(/\"/g, '');
}
Оу, я не сразу заметил, что Вы сами написали replace_string... Циклом... С конкатенациями множественными...

Посмотрите https://learn.javascript.ru/regular-exp ... javascript - обязательно пригодится. Остальные replace_string() тоже можно заменить на стандартную функцию. Работает везде и давно.


Вернуться к началу
 Заголовок сообщения: Re: Replace
СообщениеДобавлено: 18:58, Пн, 27 май 2019 
Не в сети
Администратор

Зарегистрирован: 16:58, Ср, 18 авг 2004
Сообщения: 887
Откуда: Москва
Спасибо! Да этот момент давно ждет улучшения!


Вернуться к началу
 Заголовок сообщения: Re: Replace
СообщениеДобавлено: 22:22, Пн, 27 май 2019 
Не в сети

Зарегистрирован: 3:11, Пт, 12 апр 2019
Сообщения: 7
Ох. И опечатка, и фактическая ошибка в алгоритме замены вышла. Слишком долго смотрел на функцию. :)
spct.replace(/\s*[\n\r]+\s*/g, '\n').replace(/[\t ]+/g, '\t').replace(/,/g, '.').replace(/\"/g, '')
Первая замена меняет строки из пробельных символов (табы, пробелы, \r, \n), в которых содержится хотя бы один \n или \r, на \n.
Вторая меняет строки из пробелов и табуляций на табуляцию.
Не знаю, зачем замена на \r последними строками. По мне так логично привести файл к ситуации, когда в нем только табы и \n.


Вернуться к началу
 Заголовок сообщения: Re: Replace
СообщениеДобавлено: 22:26, Пн, 27 май 2019 
Не в сети
Администратор

Зарегистрирован: 16:58, Ср, 18 авг 2004
Сообщения: 887
Откуда: Москва
Спасибо! Протестирую!


Вернуться к началу
 Заголовок сообщения: Re: Replace
СообщениеДобавлено: 2:09, Вт, 28 май 2019 
Не в сети

Зарегистрирован: 3:11, Пт, 12 апр 2019
Сообщения: 7
Я потестировал на файле с данными спектрального промера 4000 плашек i1Profiler'ом. 1771262 байт должны превратиться в 1135892.
Старая функция: 717172 мс = 12 минут.
Новая функция: 135 мс. В 5300 раз быстрее.
А если сначала сделать основные замены (табы и пробелы), а потом второстепенные, то получится 117 мс. В 6100 раз быстрее. Ух!


Вернуться к началу
 Заголовок сообщения: Re: Replace
СообщениеДобавлено: 2:33, Вт, 28 май 2019 
Не в сети
Администратор

Зарегистрирован: 16:58, Ср, 18 авг 2004
Сообщения: 887
Откуда: Москва
Спасибо дорогой друг! Зачетно!
Да эту тупую функцию замен по циклам давно надо было переписать видимо, у меня идей как-то не было. А то что тормоза - видел конечно.


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 6 сообщений ] 

Часовой пояс: UTC+03:00


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти: 

cron
© CIELab.XYZ
Создано на основе phpBB® Forum Software © phpBB Limited
Конференция запущена 18 августа 2004 года | Защищено от спама системой stopforumspam
Всего посещений - 5237009 | Всего за день - 547 | Уникальных сегодня - 89, вчера - 370, позавчера - 381