Вверх ↑
Этот топик читают: Гость
Ответов: 39
Рейтинг: -1
#1: 2018-05-26 19:30:49 ЛС | профиль | цитата
Всем, привет.

Суть задачи есть предположим текст

41021811320118 32151112065 26052018 1600
41021811320118 22615101219 26052018 1600

361961310 1515 141618131621 26052018 1630
bucovice 26052018 1630

161912118261141519 11012 26052018 1600
32201910122061519 26052018 1600

20311261819 26052018 1600
31154613302316133014 26052018 1600

из него нужно вытащить повторяшки цифры потом сложить и добавить в memo
должно получиться так (нули не добавляем)


41021811320118 32151112065 26052018 1600 11111111122222233555666888 = 84
41021811320118 22615101219 26052018 1600 111111111112222255666888 = 73
Длина строк может быть разная!


--- Добавлено в 2018-05-26 19:32:50

В строках ни чего не нашел, куда копать? Выручайте!)

--- Добавлено в 2018-05-26 19:56:00

Add(Button,8291899,147,210)
{
Left=165
Top=375
link(onClick,391138:doEvent1,[(191,216)(191,258)])
}
Add(Str_Enum,2965254,245,210)
{
link(onEnum,13343165:doValue,[])
link(String,11809262:Array,[(251,173)(265,173)])
}
Add(MultiBlockFind,4370125,315,280)
{
Count=2
TagList="{**s}1{**e}\r\n{**s}2{**e}"
link(Text,13343165:Value,[])
link(onResult1,7527743:doValue,[(359,286)(359,279)])
link(onResult2,532187:doValue,[(369,293)(369,314)])
}
Add(Memory,13343165,315,210)
{
}
Add(Hub,391138,203,252)
{
OutCount=3
link(onEvent1,2965254:doEnum,[(231,258)(231,216)])
link(onEvent2,4370125:doMultiBlockFind,[(266,265)(266,286)])
link(onEvent3,1038890:doString,[(251,272)(251,344)(267,344)(267,384)])
}
Add(Memo,6718432,539,378)
{
Left=10
Top=30
Width=300
Height=215
}
Add(FormatStr,1038890,469,378)
{
Mask="%1%2"
link(onFString,6718432:doAdd,[])
link(Str1,7527743:Value,[(475,342)(433,342)])
link(Str2,532187:Value,[(482,359)(489,359)])
}
Add(Memory,7527743,427,273)
{
}
Add(Memory,532187,483,308)
{
}
Add(StrList,11809262,245,91)
{
Strings=#40:41021811320118 32151112065 26052018 1600|40:41021811320118 22615101219 26052018 1600|0:|41:361961310 1515 141618131621 26052018 1630|22:bucovice 26052018 1630|0:|38:161912118261141519 11012 26052018 1600|31:32201910122061519 26052018 1600|0:|25:20311261819 26052018 1600|34:31154613302316133014 26052018 1600|0:|
}


Редактировалось 6 раз(а), последний 2018-05-26 22:39:48
карма: 0

0
vip
#1.1контекстная реклама от партнеров
Ответов: 39
Рейтинг: -1
#2: 2018-05-26 20:40:29 ЛС | профиль | цитата
Есть идеи?
карма: 0

0
Ответов: 8886
Рейтинг: 823
#3: 2018-05-26 20:49:52 ЛС | профиль | цитата
Silva писал(а):
вытащить повторяшки только цифры

карма: 19

0
Ответов: 39
Рейтинг: -1
#4: 2018-05-26 20:56:32 ЛС | профиль | цитата


--- Добавлено в 2018-05-26 21:02:16

Леонид писал(а):
Silva писал(а):
вытащить повторяшки только цифры


Вот строка к примеру

bucovice 26052018 1630

а получить нужно

bucovice 26052018 1630 112266 = 18

--- Добавлено в 2018-05-26 21:16:27

Все это тупик(

--- Добавлено в 2018-05-26 21:27:35

ладно упростим
есть текст
"01230143" ищем в строке одинаковые цифры (ноли не трогаем) получается "1133" дальше складываем 1+1+3+3 получаем 8
Теперь компонуем полученное и получаем такой вид "01230143 1133 8" добавляем в МЕМО

--- Добавлено в 2018-05-26 21:28:39

Есть идеи?

Редактировалось 6 раз(а), последний 2018-05-26 21:28:39
карма: 0

0
Ответов: 39
Рейтинг: -1
#5: 2018-05-26 22:36:18 ЛС | профиль | цитата
Сложная задачка?
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#6: 2018-05-26 22:58:24 ЛС | профиль | цитата
Элементарно.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 39
Рейтинг: -1
#7: 2018-05-26 23:00:36 ЛС | профиль | цитата
Tad писал(а):
Элементарно

Я уже голову сломал, куда хоть копать?

--- Добавлено в 2018-05-26 23:03:51

Видимо я слепой или тупой)

--- Добавлено в 2018-05-26 23:13:10

Как называется чудо компонент)

--- Добавлено в 2018-05-26 23:35:51

???

Редактировалось 3 раз(а), последний 2018-05-26 23:35:51
карма: 0

0
Ответов: 490
Рейтинг: 162
#8: 2018-05-27 00:01:33 ЛС | профиль | цитата
Silva писал(а):
41021811320118 32151112065 26052018 1600 11111111122222233555666888 = 84


как получилось 84 ?
Silva писал(а):
повторяшки цифры
у меня 112 получается
карма: 4

0
Ответов: 39
Рейтинг: -1
#9: 2018-05-27 00:08:20 ЛС | профиль | цитата
11111111122222233555666888 = 84 что не так то?)

--- Добавлено в 2018-05-27 00:10:29

У меня пока мозг дошел только до этого


Add(MainForm,3757232,238,266)
{
Width=948
Height=643
Position=1
}
Add(Button,16652810,343,245)
{
Left=80
Top=110
link(onClick,10106343:doEnum,[])
}
Add(Str_Enum,10106343,441,245)
{
Delimiter=""
link(onEnum,281048:doCompare,[])
link(String,9861261:Text,[])
}
Add(Edit,9861261,441,154)
{
Left=15
Top=15
Width=295
Text="3212131215"
}
Add(If_else,281048,560,245)
{
Op2=String(1)
link(onTrue,16416844:doAdd,[])
}
Add(Memo,16416844,686,245)
{
Left=15
Top=145
Width=280
Height=240
}


Редактировалось 1 раз(а), последний 2018-05-27 00:10:29
карма: 0

0
Ответов: 490
Рейтинг: 162
#10: 2018-05-27 00:11:49 ЛС | профиль | цитата
Silva писал(а):
вытащить повторяшки цифры потом сложить

из ТЗ следует только такое понимание ...

Add(Edit,13965869,329,147)
{
Left=35
Top=70
Width=505
Text="4+1+0+2+1+8+1+3+2+0+1+8+3+2+1+5+1+2+0+6+5+2+6+0+5+2+0+1+8+1+6+0+1+2+3+5+6+8"
}
Add(Edit,13314783,329,77)
{
Left=30
Top=25
Width=520
Text="41021811320118 32151112065 26052018 1600 11111111122222233555666888"
}
Add(Button,1672615,245,182)
{
Left=545
Top=70
Width=30
Caption="="
link(onClick,4910183:doEvent1,[])
}
Add(MathParse,13947551,392,189)
{
Point(doMathStr)
link(onResult,16576250:doText,[])
}
Add(DoData,11511127,329,224)
{
link(onEventData,13947551:doMathStr,[(377,230)(377,202)])
link(Data,13965869:Text,[])
}
Add(Hub,4910183,287,182)
{
link(onEvent1,11511127:doData,[(322,188)(322,230)])
link(onEvent2,13947551:doCalc,[])
}
Add(Edit,16576250,448,189)
{
Left=585
Top=70
Text="0"
}


Редактировалось 1 раз(а), последний 2018-05-27 00:13:51
карма: 4

0
Ответов: 39
Рейтинг: -1
#11: 2018-05-27 00:18:26 ЛС | профиль | цитата
tig-rrr писал(а):
из ТЗ следует только такое понимание ...


не совсем

есть текст пример

"01230143" ищем в строке одинаковые цифры (ноли не трогаем) получается "1133" дальше складываем 1+1+3+3 получаем 8
Теперь компонуем полученное и получаем такой вид "01230143 1133 8" добавляем в МЕМО
карма: 0

0
Ответов: 8886
Рейтинг: 823
#12: 2018-05-27 00:19:19 ЛС | профиль | цитата
Silva,
Блок для повторяшек


Add(MainForm,2953706,70,77)
{
link(onCreate,12041830:doWork2,[])
}
Add(Edit,11667738,175,77)
{
Left=25
Top=5
Width=335
Text=""
link(onEnter,12041830:doWork1,[(214,90)(214,69)(109,69)(109,90)])
}
Add(Button,4909695,119,147)
{
Left=20
Top=30
Caption=">>"
link(onClick,8201177:doCalc,[])
}
Add(MultiElement,12041830,119,84)
{
link(onEvent1,11667738:doText2,[])
link(Data1,10715883:Var1,[(125,75)(160,75)(160,117)])
}
BEGIN_SDK
Add(EditMulti,13878576,21,21)
{
EventCount=1
WorkCount=2
DataCount=1
VOffset=49
HOffset=203
link(doWork1,6092320:doTimer,[(32,76)(32,48)])
link(doWork2,9943625:doEvent1,[])
}
Add(For,202440,119,84)
{
End=49
link(onEvent,6587477:doRandom,[])
}
Add(Random,6587477,175,84)
{
Max=9
link(onRandom,1504020:doStrCat,[])
}
Add(Hub,9943625,77,77)
{
link(onEvent1,6587477:doRandomize,[(158,83)(158,97)])
link(onEvent2,7526591:doWork2,[])
}
Add(StrCat,1504020,224,84)
{
link(onStrCat,13878576:onEvent1,[(263,90)(263,77)])
link(Str1,13878576:Data1,[])
}
Add(Timer,6092320,63,42)
{
Interval=10
Enable=1
AutoStop=1
link(onTimer,7526591:doWork1,[(102,48)])
}
Add(HubEx,7526591,98,84)
{
link(onEvent,202440:doFor,[])
}
END_SDK
Add(Memo,16698297,231,126)
{
Left=5
Top=60
Width=375
Height=195
}
Add(MultiElementEx,8201177,175,147)
{
link(String,10715883:Var2,[])
link(onRes,16698297:doText,[])
}
BEGIN_SDK
Add(EditMultiEx,12596441,21,21)
{
WorkCount=#6:doCalc|
EventCount=#5:onRes|
DataCount=#6:String|
Width=629
Height=389
VOffset=35
HOffset=63
link(doCalc,15322850:doEvent1,[])
}
Add(Str_Enum,5424589,175,77)
{
Delimiter=""
link(onEnum,2986584:doAdd,[])
link(onEndEnum,6783673:doCount,[(221,90)(221,146)])
}
Add(StrList,2986584,238,77)
{
}
Add(Hub,15322850,49,56)
{
OutCount=3
link(onEvent1,9973921:doClear,[(340,62)(340,153)])
link(onEvent2,2986584:doClear,[(228,69)(228,90)])
link(onEvent3,12183542:doValue,[(74,76)(74,83)])
}
Add(ArrayCountRepeats,6783673,252,140)
{
link(onCount,11874207:doStr,[])
link(onEndCount,12871743:doEvent1,[(291,153)(291,188)])
link(Array,2986584:Array,[])
}
Add(MT_String,11874207,301,140)
{
link(onResult,9973921:doAdd,[])
}
Add(StrList,9973921,350,140)
{
Point(doSort)
}
Add(Hub,12871743,301,182)
{
OutCount=5
link(onEvent1,9973921:doSort,[])
link(onEvent2,8631628:doClear,[(578,195)(578,293)])
link(onEvent3,344027:doClear,[(326,202)(326,293)])
link(onEvent5,1952402:doEnum,[])
}
Add(InlineCode,510778,126,77)
{
WorkPoints=#6:doTest|
EventPoints=#5:onRes|
VarPoints=#
DataPoints=#
Code=#15:unit HiAsmUnit;|13:// Author Tad|0:|9:interface|0:|21:uses kol,Share,Debug;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|0:|9: public|24: onRes : THI_Event;|51: PROCEDURE doTest(var _Data:TData; Index:Word);|0:|5: end;|0:|14:implementation|0:|29:PROCEDURE THiAsmClass.doTest;|16:var s,ss:string;|18: i,j,k:integer;|5:BEGIN|9: ss:='';|21: s:=toString(_Data);|15: j:=Length(s);|67: for i:=1 to j do if s[i] in ['0'..'9'] then ss:=ss+s[i]; |24: _hi_onEvent(onRes,ss);|4:END;|0:|0:|4:end.|
link(onRes,5424589:doEnum,[])
}
Add(ArrayEnum,1952402,364,210)
{
link(onItem,8448400:doSplit,[])
link(onEndEnum,14183873:doString,[(403,223)(403,363)])
link(Array,9973921:Array,[])
}
Add(MultiStrPart,8448400,427,210)
{
link(onSplit,344027:doCalc,[(469,216)(469,272)(417,272)(417,286)])
}
Add(MathParse,344027,427,280)
{
MathStr="%0 + %1*%2"
ResultType=0
Point(doClear)
link(onResult,3584995:doCompare,[])
link(X1,2121676:Var2,[])
link(X2,1443426:Var2,[])
}
Add(Memory,12183542,84,77)
{
Point(Data)
link(onData,510778:doTest,[])
link(Data,12596441:String,[])
}
Add(For,3185586,539,280)
{
IncludeEnd=1
link(onEvent,8631628:doStrCat,[])
link(End,1443426:Var3,[(552,250)])
}
Add(GetDataEx,1443426,434,245)
{
link(Data,8448400:Part2,[])
}
Add(If_else,3584995,476,280)
{
Type=5
Op2=String(0)
link(onTrue,3185586:doFor,[])
link(Op1,1381009:Var2,[])
}
Add(GetDataEx,2121676,427,252)
{
link(Data,8448400:Part1,[])
}
Add(StrCat,8631628,595,280)
{
Point(doClear)
link(Str1,7680469:Var3,[(601,271)(587,271)])
link(Str2,1381009:Var3,[(608,257)])
}
Add(GetDataEx,1381009,476,252)
{
Angle=3
link(Data,2121676:Var3,[])
}
Add(FormatStr,14183873,546,357)
{
DataCount=3
Mask="%1 %2 %3"
link(onFString,12596441:onRes,[(634,363)(634,62)])
link(Str1,12183542:Value,[(552,348)(90,348)])
link(Str2,7680469:Var2,[(559,327)(587,327)])
link(Str3,344027:Result,[(566,341)(433,341)])
}
Add(GetDataEx,7680469,581,315)
{
Angle=1
link(Data,8631628:Result,[(601,320)])
}
END_SDK
Add(GetDataEx,10715883,175,112)
{
link(Data,11667738:Text,[])
}

карма: 19

0
Ответов: 39
Рейтинг: -1
#13: 2018-05-27 00:22:30 ЛС | профиль | цитата
Леонид писал(а):
Блок для повторяшек

Работает) ура спасибо!
Теперь буду разбирать)

--- Добавлено в 2018-05-27 00:25:33

Посмотрел на работу Леонида и вспомнил Tad`a)

Элементарно, ну ну)

Редактировалось 1 раз(а), последний 2018-05-27 00:25:33
карма: 0

0
Ответов: 490
Рейтинг: 162
#14: 2018-05-27 00:37:56 ЛС | профиль | цитата
Silva писал(а):
ищем в строке одинаковые цифры

Silva писал(а):
41021811320118 32151112065 26052018 1600 11111111122222233555666888 = 84

Берём строку 41021811320118 32151112065 26052018 1600 откуда получилось 9 едениц?
карма: 4

0
Ответов: 39
Рейтинг: -1
#15: 2018-05-27 00:47:13 ЛС | профиль | цитата
tig-rrr писал(а):
Берём строку 41021811320118 32151112065 26052018 1600 откуда получилось 9 едениц?


Уже в глазах рябит)

--- Добавлено в 2018-05-27 00:47:58

Мысль вы правильно поняли)

--- Добавлено в 2018-05-27 00:51:04

Леонид конечно мощь построил, все сижу колупаюсь)

Редактировалось 3 раз(а), последний 2018-05-27 00:51:04
карма: 0

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