Вверх ↑
Этот топик читают: Гость
Ответов: 13
Рейтинг: 1
#1: 2010-02-19 21:23:20 ЛС | профиль | цитата
Помогите пожалуйста, допустим у меня есть два хранилища строк, мне необходимо чтобы проверялось, есть ли одна строка из второго хранилища в первом хранилише или нет, если есть то переходим к следующей строке, если нету то добовляем эту строку в третье хранилише. Дале обратное проверяем есть ли строка из первого хранилища во втором, если нету то добовляем эту строку в четвертое хранилище, если есть пропускаем и идем проверять следующую строку! Примерно так, если кто может помогите пожалуйста!


Add(MainForm,9495143,14,168)
{
Width=913
Height=320
link(onCreate,5977904:doEvent1,[])
}
Add(FileTools,16337037,259,84)
{
link(onEnd,719847:doValue,[])
link(FileName,1524313:Var1,[(265,61)(181,61)])
}
Add(MultiElement,1524313,175,21)
{
link(onEvent1,7595810:doEvent1,[])
}
BEGIN_SDK
Add(EditMulti,14358656,21,21)
{
EventCount=1
WorkCount=1
VarCount=1
link(doWork1,1196174:doStrCat,[(31,27)(31,132)])
link(Var1,3008827:Result,[(27,214)(104,214)])
}
Add(Dir,6728569,42,70)
{
}
Add(StrCat,1196174,49,126)
{
link(onStrCat,3008827:doStrCat,[(89,132)(89,181)])
link(Str1,4974005:Value,[(55,111)(90,111)])
link(Str2,8167228:Value,[(62,115)(132,115)])
}
Add(Memory,8167228,126,70)
{
Default=String(patch)
}
Add(StrCat,3008827,98,175)
{
link(onStrCat,14358656:onEvent1,[(226,181)(226,27)])
link(Str1,1196174:Result,[(104,163)(55,163)])
link(Str2,4439434:Value,[(111,169)(146,169)])
}
Add(Memory,4439434,140,133)
{
Default=String(patch.txt)
}
Add(Memory,4974005,84,70)
{
Default=String(C:DWup)
}
END_SDK
Add(If_else,200261,308,147)
{
Op2=Integer(1)
link(onTrue,14499696:doEvent1,[(352,153)(352,132)])
link(onFalse,3388165:doWork2,[])
link(Op1,719847:Value,[])
}
Add(Memory,719847,308,84)
{
link(onData,200261:doCompare,[(352,90)(352,122)(296,122)(296,153)])
}
Add(Hub,14499696,364,126)
{
OutCount=4
link(onEvent1,7860434:doLoad,[])
link(onEvent2,3388165:doWork1,[(392,139)])
link(onEvent3,12860454:doDownload,[(494,146)(494,111)])
}
Add(StrList,7860434,420,98)
{
link(FileName,10372527:Var1,[])
}
Add(MultiElement,10372527,427,49)
{
link(onEvent1,12627199:doWork1,[])
}
BEGIN_SDK
Add(EditMulti,11086887,21,21)
{
EventCount=1
WorkCount=1
VarCount=1
link(doWork1,175889:doStrCat,[(59,27)(59,139)])
link(Var1,175889:Result,[(27,169)(104,169)])
}
Add(Dir,1646971,70,35)
{
}
Add(Memory,10012969,168,77)
{
Default=String(patchpatch.txt)
}
Add(StrCat,175889,98,133)
{
link(onStrCat,11086887:onEvent1,[(226,139)(226,27)])
link(Str1,7091337:Value,[])
link(Str2,10012969:Value,[(111,118)(174,118)])
}
Add(Memory,7091337,98,77)
{
Default=String(C:DWup)
}
END_SDK
Add(Hub,7595810,217,21)
{
link(onEvent1,16337037:doFileExists,[(249,27)(249,111)])
}
Add(Hub,5977904,77,182)
{
OutCount=4
link(onEvent1,1524313:doWork1,[(110,188)(110,27)])
link(onEvent2,10372527:doWork1,[(482,195)(482,36)(416,36)(416,55)])
}
Add(Label,14169948,1,0)
{
Left=10
Top=10
Width=88
Height=20
Font=[MS Sans Serif,10,1,0,1]
Caption="Состояние-"
}
Add(ListBox,8998956,483,371)
{
Left=10
Top=40
Width=310
Height=155
link(FileName,2710806:Caption,[])
}
Add(Memory,6289763,406,168)
{
link(onData,9444860:doReplace,[(450,174)(450,212)(394,212)(394,230)])
}
Add(Replace,9444860,406,224)
{
SubStr="0"
DestStr="Ошибка"
link(onReplace,8492394:doValue,[])
link(Str,6289763:Value,[])
}
Add(Memory,8492394,448,224)
{
link(onData,13002950:doReplace,[(492,230)(492,267)(435,267)(435,286)])
}
Add(Replace,13002950,448,280)
{
SubStr="1"
DestStr="Файл найден"
link(onReplace,8345813:doValue,[])
link(Str,8492394:Value,[])
}
Add(Memory,8345813,490,280)
{
link(onData,16056715:doEvent1,[(534,286)(534,319)(440,319)(440,335)])
}
Add(HubEx,3388165,388,154)
{
Angle=1
link(onEvent,6289763:doValue,[(392,174)])
}
Add(Label,2710806,490,329)
{
Left=100
Top=10
Width=115
Height=17
Caption="Поиск файла patch.txt"
link(Text,8345813:Value,[])
}
Add(Hub,16056715,448,329)
{
link(onEvent1,2710806:doText,[])
link(onEvent2,8998956:doAdd,[(474,342)(474,377)])
}
Add(HTTP_Get,12860454,525,105)
{
URL="http://188.134.4.20:7000/addons/dat.txt"
link(onStop,2129251:doEvent1,[])
link(FileName,12627199:Var1,[])
}
Add(MultiElement,12627199,532,49)
{
link(onEvent1,9755155:doWork1,[])
}
BEGIN_SDK
Add(EditMulti,14770284,21,21)
{
EventCount=1
WorkCount=1
VarCount=1
link(doWork1,1641901:doStrCat,[(47,27)(47,90)])
link(Var1,1641901:Result,[(27,169)(146,169)])
}
Add(Dir,3665889,63,28)
{
}
Add(Memory,4465249,112,28)
{
Default=String(C:DWuppatch)
}
Add(Memory,5432133,154,28)
{
Default=String(patchd.txt)
}
Add(StrCat,1641901,140,84)
{
link(onStrCat,14770284:onEvent1,[(246,90)(246,27)])
link(Str1,4465249:Value,[(146,72)(118,72)])
link(Str2,5432133:Value,[(153,72)(160,72)])
}
END_SDK
Add(MultiElement,9755155,644,49)
{
}
BEGIN_SDK
Add(EditMulti,14770284,21,21)
{
EventCount=1
WorkCount=1
VarCount=1
link(doWork1,1641901:doStrCat,[(47,27)(47,90)])
link(Var1,1641901:Result,[(27,169)(146,169)])
}
Add(Dir,3665889,63,28)
{
}
Add(Memory,4465249,112,28)
{
Default=String(C:DWuppatch)
}
Add(Memory,5432133,154,28)
{
Default=String(patchd.txt)
}
Add(StrCat,1641901,140,84)
{
link(onStrCat,14770284:onEvent1,[(246,90)(246,27)])
link(Str1,4465249:Value,[(146,72)(118,72)])
link(Str2,5432133:Value,[(153,72)(160,72)])
}
END_SDK
Add(StrList,791375,637,98)
{
link(FileName,9755155:Var1,[])
}
Add(Hub,2129251,567,126)
{
link(onEvent1,791375:doLoad,[])
}
Add(ArrayRW,7956369,497,182)
{
link(onRead,7571754:doSearch,[])
link(Array,7860434:Array,[(503,162)(440,162)])
}
Add(BlockFind,7571754,546,182)
{
link(Text,7860434:Text,[(552,165)(426,165)])
}


карма: 0

0
Ответов: 3851
Рейтинг: 159
#2: 2010-02-19 22:35:21 ЛС | профиль | цитата

из несложных, предложу пару способов:

1. Использовать точки doGetIndex и onGetIndex у элемента StrList. Если получишь "-1" - значит строки такой нет.

2. в конце каждой строки приписать некий признак её принадлежности к списку (через разделитель), загнать всё в одну таблицу (с тем самым разделителем) и сортонуть по первому столбцу. Далее уже можно перебирать массив и сравнивать (ChangeMon) текущее значение ячейки первого столбца с предыдущим ..

не знаю что будет работать быстрее. также незнаю - нужна ли тебе скорость..
карма: 0
начавший
1
Голосовали:SoulOfPain
Ответов: 8926
Рейтинг: 823
#3: 2010-02-19 22:37:01 ЛС | профиль | цитата
SoulOfPain, code_16994.txt
карма: 19

0
файлы: 1code_16994.txt [5.3KB] [131]
3
Сообщение
...
Прикрепленные файлы
(файлы не залиты)