Вверх ↑
Этот топик читают: Гость
Ответов: 16884
Рейтинг: 1239
#46: 2009-10-30 14:13:47 ЛС | профиль | цитата
nesco, перезалей code_15458.txt с русской раскладкой
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26151
Рейтинг: 2127
#47: 2009-10-30 14:16:27 ЛС | профиль | цитата
user_asm писал(а):
Здесь есть какие-то ограничения на размер файла?

В данной схем есть -- 100 Мб

В данной схеме, элементы поиска должны быть последовательно, иначе, поставь везде ShortSearch=False, но тогда время поиска увеличится
------------ Дoбавленo в 14.18:
Tad писал(а):
с русской раскладкой

Это сделано из твоей схемы, которую я не имею в оригинале, а по сему, у меня там, в исходно-скаченной, стоят вопросы
карма: 22

0
Ответов: 952
Рейтинг: 4
#48: 2009-10-30 14:29:23 ЛС | профиль | цитата
nesco,
Где это ограничение стоит? PageMem ?
И как я уже говорил, если изменить слова поиска то ничего не ищет.
карма: 0

0
Разработчик
Ответов: 26151
Рейтинг: 2127
#49: 2009-10-30 15:18:04 ЛС | профиль | цитата
user_asm писал(а):
И как я уже говорил, если изменить слова поиска то ничего не ищет

Я же написал
nesco писал(а):
В данной схеме, элементы поиска должны быть последовательно


Вот такая схема у меня отбирает по трем параметрам. Все эти схемы, чисто экспериментальные, можно сделать что-то свое и прослеживать скрость обработки

code_15463.txt

user_asm писал(а):
Где это ограничение стоит? PageMem ?

Да, все это зависит от наличия свободной памяти, в данной схеме стоит PageMem=1600, что при умножении на кратаный размер (65536 байт) дает, приблизительно, 100 Мб
карма: 22

0
файлы: 1code_15463.txt [2.2KB] [196]
Ответов: 4641
Рейтинг: 334
#50: 2009-10-30 15:31:29 ЛС | профиль | цитата
nesco писал(а):
от наличия свободной памяти
nesco,
а если например у меня 64мб свободной памяти, мне что не судьба в логе 400мб покопаться? с использованием SharedStream.
карма: 1
Время верстки: %cr_time% Текущее время: %time%
0
Ответов: 952
Рейтинг: 4
#51: 2009-10-30 15:37:46 ЛС | профиль | цитата
Хммм, если убрать 1 значение, то по оставшимся 2-м не ищет. ShortSearch=False везде стоит.
Буду пробовать.
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#52: 2009-10-30 15:43:01 ЛС | профиль | цитата
Ravilr писал(а):
а если например у меня 64мб свободной памяти, мне что не судьба в логе 400мб покопаться? с использованием SharedStream.
покопаться сможешь, а просмотреть, если найдено больше, врядли .
nesco, а тебе не кажется, что искать ускорение поиска бессмысленно - всю экономию сожрет вывод в визуальный компонент.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26151
Рейтинг: 2127
#53: 2009-10-30 15:44:09 ЛС | профиль | цитата
Ravilr писал(а):
с использованием SharedStream.

Почему, используется блочное чтение. В wiki есть пример чтения больших файлов

------------ Дoбавленo в 15.44:
Tad писал(а):
всю экономию сожрет вывод в визуальный компонент

Я без него проверяю
------------ Дoбавленo в 15.46:
user_asm писал(а):
Хммм, если убрать 1 значение, то по оставшимся 2-м не ищет

А так и есть, он же событие не выдает, если не находит. Там алгоритм AND, те, если есть все, а не OR. Еще раз повторюсь -- это экспериментальная схема по путям повышения быстродействия чтения файлов
карма: 22

0
Ответов: 952
Рейтинг: 4
#54: 2009-10-30 15:51:20 ЛС | профиль | цитата
Может какой-то другой метод формирования констант для поиска сделать?
карма: 0

0
Разработчик
Ответов: 26151
Рейтинг: 2127
#55: 2009-10-30 15:53:34 ЛС | профиль | цитата
user_asm писал(а):
Может какой-то другой метод формирования констант для поиска сделать?

Может, и нужно. Но не забывай проверять быстродействие, что бы выявить наиболее быстрый. Желательно быстродействие отлаживать на логах до 10..30 Мб
карма: 22

0
Ответов: 952
Рейтинг: 4
#56: 2009-10-30 16:16:31 ЛС | профиль | цитата
Компонентами Формат и маск я так понял в вашей схеме ничего не сделаешь?
Я попытался их вставить вместо Позишн, но насколько я понимаю принцип Вашей схемы иной чем был у меня на 1-2 странице сего топика.
карма: 0

0
Разработчик
Ответов: 26151
Рейтинг: 2127
#57: 2009-10-30 16:18:59 ЛС | профиль | цитата
user_asm писал(а):
я понимаю принцип Вашей схемы иной чем был у меня на 1-2 странице сего топика.

Отнюдь, практически -- то же самое
------------ Дoбавленo в 16.30:
Вот, еще вариант, работает быстрее StrMask



Add(MainForm,94467,308,343)
{
Width=750
Height=299
Caption=""
}
Add(StringTable,12713050,644,273)
{
Left=10
Top=10
Width=720
Height=215
Columns=#20:Результат поиска=700|
link(Str,1032831:Var3,[(650,248)])
}
Add(Button,4481738,119,140)
{
Left=20
Top=235
link(onClick,13019582:doEvent1,[])
}
Add(Thread,1555007,308,161)
{
Delay=0
FastStop=0
link(onExec,5019261:doEvent1,[(356,167)(356,119)(178,119)(178,258)])
}
Add(Hub,5019261,189,252)
{
OutCount=5
link(onEvent1,6468069:doOff,[(233,258)(233,314)])
link(onEvent2,15640483:doStart,[(219,265)(219,342)])
link(onEvent3,344370:doConvert,[])
link(onEvent4,15640483:doStop,[(212,279)(212,349)])
link(onEvent5,6468069:doOn,[(227,286)(227,321)])
}
Add(LED,6468069,252,301)
{
Left=615
Top=235
Width=115
Height=20
Shape=1
}
Add(TimeCounter,15640483,252,336)
{
link(onStop,94467:doCaption,[])
}
Add(SharedStream,9929879,252,161)
{
FileName="log1.txt"
CoreName="Log"
PageMem=1600
Point(Position)
link(onOpen,1555007:doStart,[])
}
Add(Convertor,344370,252,266)
{
Mode=11
link(onResult,10513845:doEvent1,[])
link(Data,9929879:Stream,[])
}
Add(StrList,2597292,385,182)
{
Point(doGetString)
Point(onGetString)
}
Add(Edit,11092326,455,315)
{
Left=155
Top=235
Width=130
Text="serial"
}
Add(Edit,2733370,525,315)
{
Left=375
Top=235
Width=125
Text="dur"
}
Add(Hub,13019582,189,140)
{
OutCount=4
link(onEvent1,12713050:doClear,[(630,146)(630,286)])
link(onEvent2,2279432:doData,[(369,153)(369,370)])
link(onEvent3,11907712:doData,[(513,160)(513,370)])
link(onEvent4,9929879:doOpen,[])
}
Add(ArrayEnum,16021318,399,273)
{
link(onItem,2886579:doSearch,[])
link(Array,2597292:Array,[])
}
Add(Hub,10513845,315,266)
{
link(onEvent1,2597292:doText,[(348,272)(348,209)])
link(onEvent2,16021318:doEnum,[])
}
Add(BlockFind,2886579,525,273)
{
EndBlock=":"
Point(doStartBlock)
link(onSearch,10112686:doSearch,[])
}
Add(DoData,2279432,455,364)
{
link(onEventData,2886579:doStartBlock,[(498,370)(498,286)])
link(Data,11092326:Text,[])
}
Add(BlockFind,10112686,588,273)
{
EndBlock=":"
Point(doStartBlock)
link(onSearch,12713050:doAdd,[])
link(Text,1032831:Var2,[])
}
Add(DoData,11907712,525,364)
{
link(onEventData,10112686:doStartBlock,[(570,370)(570,286)])
link(Data,2733370:Text,[])
}
Add(GetDataEx,1032831,588,243)
{
Angle=3
link(Data,16021318:Item,[(439,248)(439,317)(405,317)])
}

карма: 22

1
Голосовали:user_asm
Ответов: 952
Рейтинг: 4
#58: 2009-10-30 16:39:46 ЛС | профиль | цитата
Вот для меня последний вариант более понятен. Спасибо.
Но почему если из 2 окошка удалить слово dur, поиск ни к чему не приводит?
карма: 0

0
Разработчик
Ответов: 26151
Рейтинг: 2127
#59: 2009-10-30 17:25:07 ЛС | профиль | цитата
Вот так попробуй

code_15465.txt
карма: 22

0
файлы: 1code_15465.txt [2.2KB] [174]
Ответов: 16884
Рейтинг: 1239
#60: 2009-10-30 20:22:02 ЛС | профиль | цитата
user_asm, попробуй и такую
code_15473.txt
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1code_15473.txt [3.1KB] [190]
Сообщение
...
Прикрепленные файлы
(файлы не залиты)