Вверх ↑
Этот топик читают: Гость
Ответов: 146
Рейтинг: 1
#1: 2011-05-06 12:36:56 ЛС | профиль | цитата
Помогите разобраться с работой со списками! мне надо чтобы программа сравнивала список 1 с списком 2, сравнивала построчно, вырезает одну строчку с списка 1 смотрит в списке 2 есть такая строчка или нет, если есть такая строчка то программа ее просто удаляет, если нет такой строчки в списке 2 то программа добавляет ее туда.

я попробовал написать но первые три строчки программа работает хорошо но потом чтото не то
code_23738.txt
карма: 0

0
файлы: 1code_23738.txt [2.3KB] [157]
Разработчик
Ответов: 26170
Рейтинг: 2127
#2: 2011-05-06 13:17:53 ЛС | профиль | цитата
Можно как-то так

code_23739.txt
------------ Дoбавленo в 13.17:
Или с элементом управления массивом, то вот так


Add(MainForm,2953706,182,238)
{
Width=592
Height=324
}
Add(ListBox,4653750,315,147)
{
Left=5
Top=5
Width=280
Height=225
Strings=#1:1|1:2|1:3|1:4|1:5|1:6|1:7|1:8|1:9|1:1|1:2|1:3|1:4|1:5|1:6|1:7|1:8|1:9|1:1|1:2|1:3|1:4|1:5|1:6|1:7|1:8|1:9|1:1|1:2|1:3|1:4|1:5|1:6|1:7|1:8|1:9|0:|
}
Add(ListBox,14151935,455,147)
{
Left=291
Top=4
Width=280
Height=225
Strings=#1:1|1:2|1:3|0:|
link(Str,2140276:Item,[(461,135)(398,135)(398,331)(335,331)])
}
Add(ArrayRW,2140276,329,287)
{
link(onRead,16462542:doEvent1,[])
link(Array,4653750:Array,[])
}
Add(Hub,10737871,238,287)
{
link(onEvent1,2140276:doRead,[])
link(onEvent2,4653750:doDelete,[(284,300)(284,167)])
}
Add(Label,5132935,420,245)
{
Left=220
Top=240
}
Add(Button,9912960,126,287)
{
Left=30
Top=240
Width=150
Height=35
Font=[MS Sans Serif,8,1,0,1]
TabOrder=-1
Caption="Сравнение"
Data=Integer(0)
link(onClick,11163080:doData,[])
}
Add(Hub,16462542,378,287)
{
link(onEvent1,5132935:doText,[(406,293)(406,251)])
link(onEvent2,14468820:doFind,[])
}
Add(DoData,11163080,182,287)
{
Data=Integer(0)
link(onEventData,10737871:doEvent1,[])
}
Add(Case,11265614,518,294)
{
Value=Integer(-1)
link(onTrue,14151935:doAdd,[(566,307)(566,125)(443,125)(443,153)])
}
Add(ArrayFind,14468820,469,294)
{
link(onFind,11265614:doCase,[])
link(Array,14151935:Array,[])
link(Index,5276309:Value,[])
}
Add(Memory,5276309,476,245)
{
Default=Integer(0)
}

карма: 22

0
файлы: 1code_23739.txt [1.8KB] [175]
Ответов: 146
Рейтинг: 1
#3: 2011-05-06 13:18:14 ЛС | профиль | цитата
Спасибо nesco, сейчас разберусь как она работает, постараюсь понять
карма: 0

0
Разработчик
Ответов: 26170
Рейтинг: 2127
#4: 2011-05-06 13:20:03 ЛС | профиль | цитата
legandox писал(а):
постараюсь понять

Посмотри вторую схему, она гораздо проще
карма: 22

0
Гость
Ответов: 17029
Рейтинг: 0
#5: 2011-05-06 13:20:38 правка | ЛС | профиль | цитата


Редактировалось 2 раз(а), последний 2025-01-10 03:32:03
карма: 0

0
Разработчик
Ответов: 26170
Рейтинг: 2127
#6: 2011-05-06 13:26:05 ЛС | профиль | цитата
Можно извратиться и еще упростить схему

code_23741.txt
------------ Дoбавленo в 13.26:
178.123.18.199, нарушение условия задачи
legandox писал(а):
надо чтобы программа сравнивала список 1 с списком 2, сравнивала построчно

карма: 22

0
файлы: 1code_23741.txt [1.5KB] [147]
Ответов: 1376
Рейтинг: 197
#7: 2011-05-06 13:26:43 ЛС | профиль | цитата
Может такое пригодится?
code_23742.txt
карма: 1

0
файлы: 1code_23742.txt [1.2KB] [154]
Разработчик
Ответов: 26170
Рейтинг: 2127
#8: 2011-05-06 13:28:30 ЛС | профиль | цитата
foksov, а какого черта у тебя 34 попадает после 99, фигня это получается
карма: 22

0
Ответов: 1376
Рейтинг: 197
#9: 2011-05-06 13:32:31 ЛС | профиль | цитата
[flood]
nesco писал(а):
а какого черта у тебя 34 попадает после 99
Сортировки нет, вот и получается...[/flood]
карма: 1

0
Ответов: 146
Рейтинг: 1
#10: 2011-05-06 14:08:47 ЛС | профиль | цитата
Ребята спасибо всем большое помощь)))

А если усложнить схему, добавить третий черный список, получается процесс такой:

Помогите разобраться с работой со списками! мне надо чтобы программа сравнивала список 1 с списком 2, сравнивала построчно, вырезает одну строчку с списка 1 смотрит в списке 2 есть такая строчка или нет, если есть такая строчка то программа ее просто удаляет, если нет такой строчки в списке 2 то программа добавляет ее туда. НО ЕСТЬ ОПРЕДЕЛЕННЫЕ СРОКИ В 3 СПИСКЕ (МОЖНО НАЗВАТЬ ЕГО ЧЕРНЫЙ СПИСОК) ПРОГРАММА ПРИ СРАВНЕНИИ ПОСТРОЧНО 1 И ВТОРОЙ СПИСОК А ПОТОМ 4 ЕСЛИ ТАКАЯ СТРАКА ЕСТЬ В ЧЕТВЕРТОМ СПИСКЕ ТО ПРОГРАММА ВО ВТОРОЙ СПИСОК ЭТО СТРОКУ НЕ ДОБАВИТ, а если нету в третем списки то добавит во сторую строку
------------ Дoбавленo в 14.08:
надеюсь поймете)) что я имел введу))
карма: 0

0
Разработчик
Ответов: 26170
Рейтинг: 2127
#11: 2011-05-06 14:12:39 ЛС | профиль | цитата
legandox писал(а):
НО ЕСТЬ ОПРЕДЕЛЕННЫЕ СРОКИ В 3 СПИСКЕ (МОЖНО НАЗВАТЬ ЕГО ЧЕРНЫЙ СПИСОК) ПРОГРАММА ПРИ СРАВНЕНИИ ПОСТРОЧНО 1 И ВТОРОЙ СПИСОК А ПОТОМ 4 ЕСЛИ ТАКАЯ СТРАКА ЕСТЬ В ЧЕТВЕРТОМ СПИСКЕ ТО ПРОГРАММА ВО ВТОРОЙ СПИСОК ЭТО СТРОКУ НЕ ДОБАВИТ а если нету в третем списки то добавит во сторую строку

Нифига не понял с третьим списком. Понятно с четвертым, как с черным, но вот про третий я не догнал -- почему во вторую строку, а не просто добавит, если нет
карма: 22

0
Ответов: 146
Рейтинг: 1
#12: 2011-05-06 14:14:22 ЛС | профиль | цитата
Нет четвертого списка нет

а вот третий список он и есть черный
карма: 0

0
Разработчик
Ответов: 26170
Рейтинг: 2127
#13: 2011-05-06 14:19:13 ЛС | профиль | цитата
legandox писал(а):
а вот третий список он и есть черный

Фильтр, я так понимаю -- если есть в третьем, во второй не добавлять
------------ Дoбавленo в 14.19:
legandox, на, сам бы мог додуматься



Add(MainForm,15724380,175,252)
{
Width=362
Height=324
}
Add(ListBox,4653750,329,154)
{
Left=5
Top=5
Width=120
Height=225
Strings=#1:1|1:2|1:3|1:4|1:5|1:6|1:7|1:8|1:9|1:1|1:2|1:3|1:4|1:5|1:6|1:7|1:8|1:9|1:1|1:2|1:3|1:4|1:5|1:6|1:7|1:8|1:9|1:1|1:2|1:3|1:4|1:5|1:6|1:7|1:8|1:9|0:|
}
Add(ListBox,14151935,469,154)
{
Left=241
Top=4
Width=90
Height=225
Strings=#1:1|1:2|1:3|0:|
link(Str,12942369:Var2,[])
}
Add(ArrayRW,2140276,343,294)
{
link(onRead,16462542:doEvent1,[])
link(Array,4653750:Array,[])
link(Index,13225252:Var2,[])
}
Add(Label,5132935,434,238)
{
Left=200
Top=250
}
Add(Button,9912960,175,301)
{
Left=30
Top=240
Width=150
Height=35
Font=[MS Sans Serif,8,1,0,1]
TabOrder=-1
Caption="Сравнение"
Data=Integer(0)
link(onClick,13914004:doClear,[])
}
Add(Hub,16462542,392,294)
{
link(onEvent1,5132935:doText,[(420,300)(420,244)])
link(onEvent2,14468820:doFind,[])
}
Add(Case,11265614,532,301)
{
Value=Integer(-1)
link(onTrue,9314738:doFind,[])
}
Add(ArrayFind,14468820,483,301)
{
link(onFind,11265614:doCase,[])
link(Array,14151935:Array,[])
link(Index,4863878:Var2,[])
}
Add(Hub,4725874,273,294)
{
link(onEvent1,2140276:doRead,[])
link(onEvent2,4653750:doDelete,[(298,307)(298,174)])
}
Add(Memory,13914004,224,294)
{
Default=Integer(0)
link(onData,4725874:doEvent1,[])
}
Add(GetDataEx,13225252,350,270)
{
Angle=3
link(Data,13914004:Value,[(320,275)(320,338)(230,338)])
}
Add(ListBox,14262269,567,153)
{
Left=136
Top=4
Width=95
Height=225
Color=14737632
Strings=#1:4|1:5|1:6|0:|
}
Add(ArrayFind,9314738,581,308)
{
link(onFind,8918053:doCase,[])
link(Array,14262269:Array,[])
link(Index,4863878:Var3,[(594,275)])
link(Value,12942369:Var3,[(601,142)])
}
Add(Case,8918053,630,308)
{
Value=Integer(-1)
link(onTrue,14151935:doAdd,[(677,321)(677,130)(457,130)(457,160)])
}
Add(GetDataEx,4863878,490,270)
{
Angle=3
link(Data,13225252:Var3,[])
}
Add(GetDataEx,12942369,469,137)
{
Angle=3
link(Data,2140276:Item,[(412,142)(412,338)(349,338)])
}

карма: 22

1
Голосовали:legandox
Ответов: 146
Рейтинг: 1
#14: 2011-05-06 14:24:54 ЛС | профиль | цитата
nesco спасибо огромное
карма: 0

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