Вверх ↑
Этот топик читают: Гость
Ответов: 322
Рейтинг: 8
#1: 2017-10-04 15:10:23 ЛС | профиль | цитата
Нужно разделить набор символов (номер акта), для присвоения первой цифре +1.
Могут быть разные варианты написания: (первый вариант 1-ИС(14.1), второй 20/Заг_УПН, третий вариант 105_Бобр_ГПЗ)
Пробовал сам:

Add(MainForm,2953706,98,56)
{
Width=821
Height=416
}
Add(Edit,3392202,231,84)
{
Left=125
Top=65
Width=160
Text="50/ИС/Агр (ф1)"
}
Add(Button,14020158,154,140)
{
Left=55
Top=65
link(onClick,242556:doEnum,[])
}
Add(Edit,14323660,301,140)
{
Left=125
Top=100
Width=160
Text=""
link(onChange,8672346:doOperation,[])
}
Add(Str_Enum,242556,231,140)
{
Delimiter=""
Step=3
OnlyDivGroup=1
Direct=1
link(onEnum,14323660:doText,[])
link(String,3392202:Text,[])
}
Add(Edit,2588733,434,140)
{
Left=300
Top=100
Width=160
Text=""
}
Add(Math,8672346,364,140)
{
Op2=1
ResultType=0
link(onResult,2588733:doText,[])
}
Плюс к цифре сделал, а вот теперь как соединить?
Вообще может это не так делается?
Подскажите.
Заранее всем спасибо.
карма: 0

0
vip
#1.1контекстная реклама от партнеров
Ответов: 16884
Рейтинг: 1239
#2: 2017-10-04 17:05:28 ЛС | профиль | цитата
Add(MainForm,2650169,91,91)
{
Width=435
Height=80
}
Add(Edit,3392202,175,91)
{
Left=85
Top=10
Width=160
Text="50/ИС/Агр (ф1)"
}
Add(Button,14020158,91,140)
{
Left=15
Top=10
link(onClick,7190633:doWork,[])
}
Add(Edit,2588733,231,140)
{
Left=250
Top=10
Width=160
Text=""
}
Add(InlineCode,7190633,175,140)
{
WorkPoints=#6:doWork|
EventPoints=#5:onRes|
DataPoints=#3:Isx|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|21:uses kol,Share,Debug;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|0:|9: public|26: Isx, onRes : THI_Event;|49: procedure doWork(var _Data:TData; Index:Word);|5: end;|0:|14:implementation|29:procedure THiAsmClass.doWork;|15:var S : string;|19: Num,i: integer;|4: |5:begin|9: i := 1;|36: S := Trim(ReadString(_Data, Isx));|20: If S='' then Exit;|38: While S[i] in ['0'..'9'] do inc(i); |34: Num := Str2Int(Copy(S,1,i-1))+1;|33: S := Int2Str(Num)+CopyEnd(S,i);|23: _hi_onEvent(onRes,S);|4:end;|4:end.|
link(onRes,2588733:doText,[])
link(Isx,3392202:Text,[])
}

И "фокусы HiAsm-а" в действии:
Add(MainForm,2650169,140,189)
{
Width=435
Height=80
}
Add(Edit,3392202,224,189)
{
Left=85
Top=10
Width=160
Text="50/ИС/Агр (ф1)"
}
Add(Button,14020158,140,259)
{
Left=15
Top=10
Data=Integer(0)
link(onClick,13105256:doEvent1,[])
}
Add(Edit,2588733,448,308)
{
Left=250
Top=10
Width=160
Text=""
}
Add(Math,1342380,224,259)
{
ResultType=0
link(onResult,7270416:doLength,[])
link(Op1,882628:Var2,[])
}
Add(Length,7270416,266,259)
{
link(onLength,14427463:doOperation,[])
}
Add(Math,14427463,308,259)
{
Op2=1
ResultType=0
link(onResult,15097505:doCopy,[])
}
Add(Copy,15097505,350,259)
{
Count=99999999
link(onCopy,5352959:doValue,[])
link(Str,882628:Var3,[(356,236)])
}
Add(GetDataEx,882628,224,231)
{
link(Data,3392202:Text,[])
}
Add(Hub,13105256,182,259)
{
link(onEvent1,1342380:doOperation,[])
link(onEvent2,6642270:doOperation,[(203,272)(203,314)])
}
Add(Math,6642270,210,308)
{
Op2=1
ResultType=0
link(onResult,6271305:doStrCat,[])
link(Op1,882628:Var1,[(216,236)])
}
Add(Memory,5352959,392,259)
{
}
Add(StrCat,6271305,385,308)
{
link(onStrCat,2588733:doText,[])
link(Str2,5352959:Value,[])
}


Редактировалось 1 раз(а), последний 2017-10-05 08:36:45
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 322
Рейтинг: 8
#3: 2017-10-05 09:57:35 ЛС | профиль | цитата
Tad, первая схема с кодом работает прекрасно.
Спасибо огромное.
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#4: 2017-10-05 11:10:43 ЛС | профиль | цитата
Вторая тоже работает.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 322
Рейтинг: 8
#5: 2017-10-05 13:10:52 ЛС | профиль | цитата
Tad писал(а):
Вторая тоже работает.

Немного криво
123.jpg
карма: 0

0
Ответов: 9906
Рейтинг: 351
#6: 2017-10-05 13:35:24 ЛС | профиль | цитата
Вся разница в KOL.
Tad пользуется "правильным".
А Dad2016 пользуется "штатным".
карма: 9

0
Ответов: 322
Рейтинг: 8
#7: 2017-10-05 15:06:30 ЛС | профиль | цитата
Galkov писал(а):
Tad пользуется "правильным".
А Dad2016 пользуется "штатным".

проблему выявили, а в правильном направлении послать забыли.
карма: 0

0
Ответов: 5227
Рейтинг: 586
#8: 2017-10-05 16:22:41 ЛС | профиль | цитата
Чёт я юмора не понял, нафига тогда паравозы

Add(MainForm,2650169,56,49)
{
Width=435
Height=80
}
Add(Edit,3392202,126,49)
{
Left=85
Top=10
Width=160
Text="50/ИС/Агр (ф1)"
}
Add(Button,14020158,56,112)
{
Left=15
Top=10
Data=Integer(0)
link(onClick,10314645:doMT,[])
}
Add(Edit,2588733,294,217)
{
Left=250
Top=10
Width=160
Text=""
}
Add(MT_String,10314645,126,105)
{
Delimeter="/"
link(onResult,6424707:doValue,[])
link(Str1,3392202:Text,[])
}
Add(MT_AddData,14022859,182,217)
{
Count=3
link(onAdd,4014525:doStr,[])
link(Data1,8888017:reCalc,[])
link(Data2,6424707:Value2,[])
link(Data3,6424707:Value3,[])
}
Add(MT_MultiMem,6424707,182,105)
{
Count=3
link(onData,14022859:doAdd,[(226,111)(226,148)(163,148)(163,223)])
}
Add(MT_String,4014525,238,217)
{
Delimeter="/"
link(onResult,2588733:doText,[])
}
Add(FastMathParse,8888017,175,161)
{
MathStr="%2+1"
ResultType=0
Point(reCalc)
link(X2,6424707:Value1,[])
}

карма: 4
Мой форум - http://hiasm.bbtalk.me/ схемы, компоненты...
0
Ответов: 16884
Рейтинг: 1239
#9: 2017-10-05 16:37:28 ЛС | профиль | цитата
andrestudio писал(а):
Чёт я юмора не понял
А так ?
__IC: 71887 lines, 0.19 seconds, 48224 bytes code, 2153 bytes data.
_Моя: 74923 lines, 0.22 seconds, 55340 bytes code, 2397 bytes data.
Твоя: 74629 lines, 0.22 seconds, 68684 bytes code, 2381 bytes data.
плюс
Dad2016 писал(а):
Могут быть разные варианты написания: (первый вариант 1-ИС(14.1), второй 20/Заг_УПН, третий вариант 105_Бобр_ГПЗ)
т.е. разделителем может быть "-","/" или "_".
С учетом разных разделителей нарисуй свою схемку.

Редактировалось 2 раз(а), последний 2017-10-05 16:44:51
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 5227
Рейтинг: 586
#10: 2017-10-05 16:52:44 ЛС | профиль | цитата
Tad, я так и знал что ты начнёшь байты считать. Вы же хиасму учите, дык и задача была соответственной. В vbscript процедура в 3 строки без всяких правильных и не правильных KOL(ов). И я ведь не стал по этому поводу с тобой письками мерятся
карма: 4
Мой форум - http://hiasm.bbtalk.me/ схемы, компоненты...
0
Ответов: 16884
Рейтинг: 1239
#11: 2017-10-05 17:17:18 ЛС | профиль | цитата
Про письки - замнем.
Tad писал(а):
С учетом разных разделителей нарисуй свою схемку.

карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 5227
Рейтинг: 586
#12: 2017-10-05 17:38:06 ЛС | профиль | цитата
Tad, чё поиздеваться решил Привести к нужному разделителю много ума нужно
карма: 4
Мой форум - http://hiasm.bbtalk.me/ схемы, компоненты...
0
Ответов: 16884
Рейтинг: 1239
#13: 2017-10-06 07:42:06 ЛС | профиль | цитата
andrestudio писал(а):
чё поиздеваться решил
Над тобой? Да нет.
А вот над Dad2016 совсем не против.

Dad2016, эти хитрожо...ой!.. номера хранятся в БД ???
Если "Да", то
1. изменить номер можно одним SQL-запросом
и (по-хорошему)
2. "разные варианты написания" приводить к одному варианту нужно перед занесением в БД.
ИМХО.

Редактировалось 4 раз(а), последний 2017-10-06 08:32:45
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 322
Рейтинг: 8
#14: 2017-10-06 09:22:01 ЛС | профиль | цитата
Tad
Да все номера хранятся в БД.
Tad писал(а):
изменить номер можно одним SQL-запросом

возможно это и так, но я ещё только учусь делать запросы и т.д.
поэтому пытаюсь как и все кто плохо знает запросы сделать что то из лего HiAsm.
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#15: 2017-10-06 09:38:35 ЛС | профиль | цитата
Dad2016 писал(а):
Да все номера хранятся в БД.
И какая БД ?
Если SQLite, то для FormatStr
UPDATE <имя таблицы> SET nomer = 
(SELECT (cast(nomer AS integer)+1)|| substr(nomer,Length( cast(nomer AS integer))+1)
FROM <имя таблицы> WHERE rowid=%1)
WHERE rowid=%1;
кстати, полностью повторяет, выложенную выше, IC, а отмазка, вроде
Dad2016 писал(а):
поэтому пытаюсь как и все кто плохо знает запросы сделать что то из лего HiAsm
не проходит.
SQL - вполне самодостаточный язык.
Хочешь работать с БД - учи.

Редактировалось 11 раз(а), последний 2017-10-06 12:33:59
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)