Вверх ↑
Этот топик читают: Гость
Этот топик был перемещен из раздела "Помощь по среде"
Ответов: 322
Рейтинг: 8
#1: 2020-02-11 14:07:52 ЛС | профиль | цитата
Привет всем.
Хотел изобразить перенос части одного длинного предложения в разные строки (длинной 85 символов в строке +/-)
1.jpg
Получилось вот что:

Add(MainForm,2953706,35,140)
{
Width=563
Height=592
link(onCreate,4477612:doEnum,[])
}
Add(Memo,12539502,189,77)
{
Left=5
Top=10
Width=490
Strings=#185:Требованиям к составу и порядку ведения исполнительной документации при строительстве, реконструкции, капитальном ремонте объектов капитального строительства и требования, предъявляемые|
}
Add(Str_Enum,4477612,189,154)
{
Delimiter=" "
link(onEnum,501246:doEvent,[])
link(String,12539502:Text,[])
}
Add(Length,80177,637,49)
{
link(onLength,11780197:doOperation,[])
}
Add(Memory,9193111,763,49)
{
Default=Integer(0)
link(onData,509647:doCompare,[])
}
Add(Hub,13156523,595,91)
{
OutCount=4
link(onEvent1,80177:doLength,[(623,97)(623,55)])
link(onEvent2,2977087:doString,[])
link(onEvent3,7379821:doEvent1,[(616,111)(616,202)])
}
Add(Math,5741175,721,49)
{
link(onResult,9193111:doValue,[])
link(Op1,9193111:Value,[(727,37)(759,37)(759,93)(769,93)])
}
Add(Math,11780197,679,49)
{
Op2=1
link(onResult,5741175:doOperation,[])
}
Add(If_else,509647,805,49)
{
Type=4
Op2=Integer(85)
link(onTrue,632523:doClear,[])
}
Add(Edit,4910093,798,203)
{
Left=5
Top=100
Width=490
Text=""
link(Str,4759865:Var2,[])
}
Add(FormatStr,2977087,644,98)
{
link(onFString,9736495:doValue,[])
link(Str2,13460932:Var1,[(657,88)(686,88)(686,135)])
}
Add(Memory,9736495,700,98)
{
}
Add(Str_Enum,8526364,700,147)
{
Delimiter=" "
link(onEnum,1150662:doString,[])
link(String,13460932:Var2,[])
}
Add(GetDataEx,13460932,700,130)
{
link(Data,9736495:Value,[])
}
Add(FormatStr,1150662,756,147)
{
link(onFString,5375030:doValue,[])
link(Str2,4759865:Var1,[(769,135)(797,135)(797,191)])
}
Add(Memory,5375030,812,147)
{
}
Add(GetDataEx,4759865,798,186)
{
Angle=1
link(Data,5375030:Value,[(818,191)])
}
Add(Hub,7379821,623,196)
{
link(onEvent1,8526364:doEnum,[(657,202)(657,153)])
link(onEvent2,4910093:doText,[])
}
Add(Memory,632523,854,42)
{
Default=Integer(1)
link(onData,1592080:In,[])
}
Add(Memory,6113187,322,98)
{
Default=Integer(0)
}
Add(LineBreak,15894580,245,98)
{
link(Out,5911088:doWork2,[])
Primary=[1592080,693,-56]
}
Add(IndexToChanel,501246,322,154)
{
Count=3
Point(Index)
link(onEvent1,13156523:doEvent1,[(387,160)(387,97)])
link(onEvent2,3872992:doEvent1,[(576,167)(576,300)])
link(Index,6113187:Value,[])
}
Add(Length,15017812,777,252)
{
link(onLength,477561:doOperation,[])
}
Add(Memory,8379381,917,252)
{
Default=Integer(0)
link(onData,13675040:doCompare,[])
}
Add(Hub,3872992,735,294)
{
OutCount=4
link(onEvent1,15017812:doLength,[(763,300)(763,258)])
link(onEvent2,3552343:doString,[])
link(onEvent3,9628976:doEvent1,[(756,314)(756,405)])
}
Add(Math,4777545,861,252)
{
link(onResult,8379381:doValue,[])
link(Op1,8379381:Value,[(867,240)(905,240)(905,296)(923,296)])
}
Add(Math,477561,819,252)
{
Op2=1
link(onResult,4777545:doOperation,[])
}
Add(If_else,13675040,959,252)
{
Type=4
Op2=Integer(85)
link(onTrue,10438828:doClear,[])
}
Add(Edit,13865190,938,406)
{
Left=5
Top=125
Width=490
Text=""
link(Str,10838709:Var2,[])
}
Add(FormatStr,3552343,784,301)
{
link(onFString,12082543:doValue,[])
link(Str2,5468226:Var1,[(797,291)(826,291)(826,338)])
}
Add(Memory,12082543,840,301)
{
}
Add(Str_Enum,1938012,840,350)
{
Delimiter=" "
link(onEnum,10682388:doString,[])
link(String,5468226:Var2,[])
}
Add(GetDataEx,5468226,840,333)
{
link(Data,12082543:Value,[])
}
Add(FormatStr,10682388,896,350)
{
link(onFString,3097297:doValue,[])
link(Str2,10838709:Var1,[(909,338)(937,338)(937,394)])
}
Add(Memory,3097297,952,350)
{
}
Add(GetDataEx,10838709,938,389)
{
Angle=1
link(Data,3097297:Value,[(958,394)])
}
Add(Hub,9628976,763,399)
{
link(onEvent1,1938012:doEnum,[(797,405)(797,356)])
link(onEvent2,13865190:doText,[])
}
Add(Memory,10438828,1008,245)
{
Default=Integer(2)
link(onData,11063284:In,[])
}
Add(HubEx,5911088,294,98)
{
link(onEvent,6113187:doValue,[])
}
Add(LineBreak,14115167,245,119)
{
link(Out,5911088:doWork3,[(298,125)])
Primary=[11063284,819,126]
}
Add(Message,14153560,637,154)
{
}
Add(Message,14626729,784,357)
{
}
Получилась большая портянка, может есть варианты поменьше?
Заранее благодарен за критику.
карма: 0

0
Ответов: 537
Рейтинг: 14
#2: 2020-02-11 14:25:39 ЛС | профиль | цитата
Может так

Add(MainForm,3224884,84,217)
{
Width=563
Height=592
}
Add(Memo,12539502,259,168)
{
Left=5
Top=10
Width=490
Strings=#185:Требованиям к составу и порядку ведения исполнительной документации при строительстве, реконструкции, капитальном ремонте объектов капитального строительства и требования, предъявляемые|
}
Add(Edit,4910093,413,266)
{
Left=5
Top=100
Width=490
Text=""
}
Add(Edit,13865190,413,315)
{
Left=5
Top=125
Width=490
Text=""
}
Add(Edit,388078,413,364)
{
Left=5
Top=150
Width=490
Text=""
}
Add(ArrayRW,14009401,273,224)
{
link(onRead,12409369:doEvent1,[])
link(Array,12539502:Array,[])
}
Add(CounterEx,4716658,189,217)
{
Min=-1
Default=-1
link(onNext,16747553:doEvent1,[])
}
Add(IndexToChanel,981044,364,266)
{
Count=3
Point(Index)
Point(Data)
link(onEvent1,4910093:doText,[])
link(onEvent2,13865190:doText,[(404,279)(404,321)])
link(Index,2843329:GetData,[])
link(onEvent3,388078:doText,[(404,286)(404,370)])
link(Data,3951841:GetData,[])
}
Add(EventFromData,2843329,364,217)
{
}
Add(Hub,16747553,238,217)
{
link(onEvent1,2843329:doData,[])
link(onEvent2,14009401:doRead,[])
}
Add(EventFromData,3951841,371,175)
{
}
Add(Hub,12409369,322,224)
{
link(onEvent1,3951841:doData,[(354,230)(354,181)])
link(onEvent2,981044:doEvent,[(350,237)(350,272)])
}
Add(Timer,5823348,140,217)
{
Interval=10
AutoStop=3
link(onTimer,4716658:doNext,[])
}

карма: 4

0
Главный модератор
Ответов: 2999
Рейтинг: 396
#3: 2020-02-11 14:48:20 ЛС | профиль | цитата
Dad2016, 4-й год на форуме - пора уже различать разделы, относящиеся к среде программы, от разделов, относящихся к пакету Windows.
карма: 6
Дорогу осилит идущий. Install/Update HiAsm.NET
0
Ответов: 263
Рейтинг: 18
#4: 2020-02-11 14:58:18 ЛС | профиль | цитата
еще вариант
Add(MainForm,3224884,98,84)
{
Width=536
Height=227
}
Add(Memo,12539502,259,63)
{
Width=520
Align=2
Strings=#185:Требованиям к составу и порядку ведения исполнительной документации при строительстве, реконструкции, капитальном ремонте объектов капитального строительства и требования, предъявляемые|
}
Add(Edit,4910093,532,182)
{
Top=80
Width=520
Align=2
Text=""
}
Add(Edit,13865190,532,224)
{
Top=100
Width=520
Align=2
Text=""
}
Add(Edit,388078,532,266)
{
Top=120
Width=520
Align=2
Text=""
}
Add(ArrayRW,14009401,273,112)
{
link(onRead,981044:doEvent,[(335,118)(335,188)])
link(Array,12539502:Array,[])
}
Add(IndexToChanel,981044,350,182)
{
Count=3
Point(Index)
Point(Data)
link(onEvent1,4910093:doText,[])
link(onEvent2,13865190:doText,[(475,195)(475,230)])
link(onEvent3,388078:doText,[(487,202)(487,272)])
link(Index,10663639:Position,[(356,163)(216,163)])
link(Data,14009401:Item,[(363,163)(279,163)])
}
Add(Button,11722497,98,259)
{
Left=10
Top=145
Width=80
Caption="Разделить"
link(onClick,13809096:doEvent1,[])
}
Add(For,10663639,210,112)
{
link(onEvent,14009401:doRead,[])
link(End,12539502:Count,[(223,104)(272,104)])
}
Add(Hub,13809096,147,259)
{
OutCount=4
link(onEvent1,4910093:doText2,[(498,265)(498,195)])
link(onEvent2,13865190:doText2,[(477,272)(477,237)])
link(onEvent3,388078:doText2,[])
link(onEvent4,10663639:doFor,[(182,286)(182,118)])
}

Редактировалось 1 раз(а), последний 2020-02-11 15:01:13
карма: 3

0
Ответов: 322
Рейтинг: 8
#5: 2020-02-11 15:09:53 ЛС | профиль | цитата
Nic писал(а):
пора уже различать разделы

Прошу извенения,

--- Добавлено в 2020-02-11 15:13:49

Sersey писал(а):
Может так

fox-video писал(а):
еще вариант

Спасибо огромное!

--- Добавлено в 2020-02-11 15:19:55

Единственнное мне нужно задавать количество символов в строках (примерно 70 символов) пределы (+/- 5 символов).

Редактировалось 3 раз(а), последний 2020-02-11 15:20:42
карма: 0

0
Ответов: 263
Рейтинг: 18
#6: 2020-02-11 16:04:21 ЛС | профиль | цитата
Dad2016 писал(а):
Единственнное мне нужно задавать количество символов в строках (примерно 70 символов) пределы (+/- 5 символов).

вот такой вариант посмотри

Add(MainForm,3224884,112,70)
{
Width=536
Height=227
}
Add(Memo,12539502,245,63)
{
Width=520
Align=2
Strings=#185:Требованиям к составу и порядку ведения исполнительной документации при строительстве, реконструкции, капитальном ремонте объектов капитального строительства и требования, предъявляемые|
}
Add(Edit,4910093,777,203)
{
Top=80
Width=520
Align=2
Text=""
}
Add(Edit,13865190,777,245)
{
Top=100
Width=520
Align=2
Text=""
}
Add(Edit,388078,777,287)
{
Top=120
Width=520
Align=2
Text=""
}
Add(Button,11722497,112,266)
{
Left=15
Top=150
Width=80
Caption="Разделить"
link(onClick,13809096:doEvent1,[])
}
Add(Hub,13809096,161,266)
{
OutCount=6
link(onEvent1,3979747:doEvent1,[(314,272)(314,153)])
link(onEvent2,14810360:doReset,[(560,279)(560,153)])
link(onEvent3,4910093:doText2,[(646,286)(646,216)])
link(onEvent4,13865190:doText2,[(657,293)(657,258)])
link(onEvent5,388078:doText2,[])
link(onEvent6,7242020:doEnum,[(221,307)(221,146)])
}
Add(Str_Enum,7242020,245,140)
{
Delimiter=" "
link(onEnum,860327:doStrCatDlm,[])
link(onEndEnum,870129:doWork3,[(297,153)(297,188)(543,188)])
link(String,12539502:Text,[])
}
Add(CounterEx,14810360,574,140)
{
Min=-1
Point(doReset)
link(onNext,725593:doEvent1,[])
}
Add(If_else,10378652,497,140)
{
Type=4
Op2=Integer(0)
link(onTrue,870129:doWork2,[])
link(Op2,10179948:Text,[])
}
Add(Length,14512184,441,140)
{
link(onLength,10378652:doCompare,[])
}
Add(IndexToChanel,981044,658,140)
{
Count=3
Point(Data)
link(onEvent1,4910093:doText,[(739,146)(739,209)])
link(onEvent2,13865190:doText,[(726,153)(726,251)])
link(onEvent3,388078:doText,[(712,160)(712,293)])
link(Data,399328:Var3,[(664,128)])
}
Add(Hub,725593,623,140)
{
link(onEvent1,981044:doEvent,[])
link(onEvent2,3979747:doEvent2,[(648,153)(648,197)(331,197)(331,160)])
}
Add(Hub,3979747,343,147)
{
InCount=2
OutCount=1
link(onEvent1,860327:doClear,[])
}
Add(StrCatDelim,860327,385,140)
{
Delimiter=" "
Point(doClear)
link(onStrCatDlm,14512184:doLength,[])
link(Str1,399328:Var2,[])
}
Add(GetDataEx,399328,385,123)
{
Angle=3
link(Data,860327:Result,[(379,128)(379,184)(391,184)])
}
Add(HubEx,870129,539,140)
{
link(onEvent,14810360:doNext,[])
}
Add(Label,9095437,441,63)
{
Left=115
Top=156
Width=90
Height=17
Caption="Длина строки >="
}
Add(Edit,10179948,504,64)
{
Left=205
Top=151
Width=30
Text="70"
DataType=1
}
Add(Label,9464940,560,63)
{
Left=238
Top=155
Width=54
Height=17
Caption="символов"
}
карма: 3

0
Ответов: 207
Рейтинг: 14
#7: 2020-02-11 16:19:38 ЛС | профиль | цитата
Dad2016 писал(а):
Единственнное мне нужно задавать количество символов в строках (примерно 70 символов) пределы (+/- 5 символов).

Регуляркой можно еще
Add(MainForm,3224884,112,84)
{
Width=536
Height=227
}
Add(Memo,12539502,497,35)
{
Width=520
Align=2
Strings=#185:Требованиям к составу и порядку ведения исполнительной документации при строительстве, реконструкции, капитальном ремонте объектов капитального строительства и требования, предъявляемые|
}
Add(Button,11722497,259,140)
{
Left=15
Top=150
Width=80
Caption="Разделить"
link(onClick,13809096:doEvent1,[])
}
Add(Hub,13809096,308,140)
{
OutCount=3
link(onEvent1,14864624:doString,[])
link(onEvent2,14810360:doReset,[(455,153)(455,167)])
link(onEvent3,12933797:doExec,[(410,160)(410,195)])
}
Add(CounterEx,14810360,588,154)
{
Min=-1
Default=-1
Point(doReset)
link(onNext,5187633:doEvent1,[])
}
Add(IndexToChanel,981044,693,154)
{
Count=3
Point(Data)
link(onEvent1,4910093:doText,[])
link(onEvent2,13865190:doText,[(761,167)(761,209)])
link(onEvent3,388078:doText,[(747,174)(747,258)])
link(Data,12933797:Match,[(699,142)(584,142)(584,233)(503,233)])
}
Add(Edit,10179948,504,78)
{
Left=205
Top=151
Width=30
Text="70"
DataType=1
}
Add(RE_Search,12933797,497,189)
{
Expression=""
link(onMatch,14810360:doNext,[(559,195)(559,160)])
link(SourceStr,12539502:Text,[])
link(Expression,14864624:FString,[])
}
Add(FormatStr,14864624,504,140)
{
Mask="(.){0,%1}"
Point(FString)
link(Str1,10179948:Text,[])
}
Add(Hub,5187633,630,154)
{
link(onEvent1,981044:doEvent,[])
link(onEvent2,12933797:doExecNext,[(656,167)(656,251)(485,251)(485,202)])
}
Add(Label,9095437,553,28)
{
Left=115
Top=156
Width=90
Height=17
Caption="Длина строки >="
}
Add(Label,9464940,602,28)
{
Left=238
Top=155
Width=54
Height=17
Caption="символов"
}
Add(Edit,4910093,812,154)
{
Top=80
Width=520
Text=""
}
Add(Edit,13865190,812,203)
{
Top=100
Width=520
Text=""
}
Add(Edit,388078,812,252)
{
Top=120
Width=520
Text=""
}


Add(Memo,7497500,406,182)
{
Top=85
Width=565
Height=185
Ctl3D=1
ScrollBars=3
link(onChange,12933797:doExecNext,[(456,188)(456,251)(338,251)(338,195)])
}
Add(MainForm,2953706,21,105)
{
Width=585
Height=347
}
Add(Memo,12539502,350,35)
{
Width=569
Align=2
Strings=#185:Требованиям к составу и порядку ведения исполнительной документации при строительстве, реконструкции, капитальном ремонте объектов капитального строительства и требования, предъявляемые|
}
Add(Button,10790540,224,175)
{
Left=5
Top=280
link(onClick,16762653:doEvent1,[])
}
Add(RE_Search,12933797,350,182)
{
Expression=""
link(onMatch,7497500:doAdd,[])
link(SourceStr,12539502:Text,[])
link(Expression,14864624:FString,[])
}
Add(Edit,6426734,357,84)
{
Left=85
Top=280
Text="86"
}
Add(FormatStr,14864624,357,133)
{
Mask="(.){0,%1}"
Point(FString)
link(Str1,6426734:Text,[])
}
Add(Hub,16762653,266,175)
{
link(onEvent1,14864624:doString,[(318,181)(318,139)])
link(onEvent2,12933797:doExec,[])
}




Редактировалось 3 раз(а), последний 2020-02-11 16:30:49
карма: 2

0
Ответов: 263
Рейтинг: 18
#8: 2020-02-11 16:42:07 ЛС | профиль | цитата
Joiner писал(а):
Регуляркой можно еще

А можно чтобы по словам перенос учитывался? Я с регулярными выражениями не дружу, но хочется в них разобраться.
карма: 3

0
Ответов: 207
Рейтинг: 14
#9: 2020-02-11 17:01:07 ЛС | профиль | цитата
fox-video писал(а):
А можно чтобы по словам перенос учитывался? Я с регулярными выражениями не дружу, но хочется в них разобраться.

Держи. Перенос после пробела, точки, запятой и тире. можно еще добавить что-то

--- Добавлено в 2020-02-11 17:14:18

Исправил
Add(Memo,7497500,462,280)
{
Top=85
Width=565
Height=185
Ctl3D=1
ScrollBars=3
link(onChange,12933797:doExecNext,[(512,286)(512,349)(394,349)(394,293)])
}
Add(Memo,12539502,406,133)
{
Width=569
Align=2
Strings=#185:Требованиям к составу и порядку ведения исполнительной документации при строительстве, реконструкции, капитальном ремонте объектов капитального строительства и требования, предъявляемые|
}
Add(Button,10790540,280,273)
{
Left=5
Top=280
link(onClick,16762653:doEvent1,[])
}
Add(RE_Search,12933797,406,280)
{
ModifierS=1
link(onMatch,7497500:doAdd,[])
link(SourceStr,12539502:Text,[])
link(Expression,14864624:FString,[])
}
Add(Edit,6426734,413,182)
{
Left=85
Top=280
Text="86"
}
Add(FormatStr,14864624,413,231)
{
Mask="(.{0,%1}(\,|\s|\.|\-|\Z))"
Point(FString)
link(Str1,6426734:Text,[])
}
Add(Hub,16762653,322,273)
{
link(onEvent1,14864624:doString,[(374,279)(374,237)])
link(onEvent2,12933797:doExec,[])
}



ModifierS должно быть False. Исправил в схеме.

Редактировалось 3 раз(а), последний 2020-02-11 21:44:29
карма: 2

0
Ответов: 8919
Рейтинг: 823
#10: 2020-02-11 23:16:02 ЛС | профиль | цитата
Joiner, нашёл, подкорректировал под хотелки и без недружественной регулярки:
https://forum.hiasm.com/getfile/38894
карма: 19

0
Ответов: 207
Рейтинг: 14
#11: 2020-02-12 01:51:43 ЛС | профиль | цитата
Леонид писал(а):
Joiner, нашёл, подкорректировал под хотелки и без недружественной регулярки:

Интересное решение, но зря Вы называете регулярки "недружественными", очень часто они не уступают по времени (в небольших текстах).
Вот пример для сравнения с каким-то тектом длиной - 359588, строк - 1351.
Довольно терпимое время, за неплохой результат.
https://forum.hiasm.com/getfile/38895

Редактировалось 2 раз(а), последний 2020-02-12 01:53:14
карма: 2

0
файлы: 1TxtFormat.zip [13.9KB] [367]
Ответов: 322
Рейтинг: 8
#12: 2020-02-12 10:18:08 ЛС | профиль | цитата
Схемы интересные, но по условию может получатся разное количество символов в строках разложения. И да перенос по стовам, а не по символам.
Screenshot_1.jpg
Количество символов для каждой строки отдельно.
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#13: 2020-02-12 11:57:06 ЛС | профиль | цитата
Dad2016 писал(а):
Привет всем.
Хотел изобразить перенос части одного длинного предложения в разные строки (длинной 85 символов в строке +/-)
Dad2016 писал(а):
Схемы интересные, но по условию может получатся разное количество символов в строках разложения.
Dad2016 писал(а):
Количество символов для каждой строки отдельно.(35, 80, 65)
Правда где?
Леонид,
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 8919
Рейтинг: 823
#14: 2020-02-12 12:11:23 ЛС | профиль | цитата
Tad, брат, если сила в правде, то и правда в силе
А чистой правды нет, есть предположения с той или иной вероятностью
карма: 19

0
Ответов: 207
Рейтинг: 14
#15: 2020-02-12 12:30:21 ЛС | профиль | цитата
Tad писал(а):
Dad2016 писал(а):
Привет всем.
Хотел изобразить перенос части одного длинного предложения в разные строки (длинной 85 символов в строке +/-)
Dad2016 писал(а):
Схемы интересные, но по условию может получатся разное количество символов в строках разложения.
Dad2016 писал(а):
Количество символов для каждой строки отдельно.(35, 80, 65)

И это еще, туда же
Dad2016 писал(а):
Единственнное мне нужно задавать количество символов в строках (примерно 70 символов) пределы (+/- 5 символов).

карма: 2

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