Вверх ↑
Этот топик читают: Гость
Ответов: 56
Рейтинг: 2
#1: 2020-10-13 00:00:23 ЛС | профиль | цитата
Привет. Есть текстовый файл такого типа:

Небрежный плод моих забав,
Бессонниц, легких вдохновений,
Незрелых и увядших лет,
Ума холодных наблюдений
И сердца горестных замет.
Так думал молодой повеса,
Летя в пыли на почтовых,
Всевышней волею Зевеса
Наследник всех своих родных.

Мне нужно проверить в тексте, наличие определённого слова и если оно есть, выдать строку. Допустим, это слово "Ледник". В тексте нет такого слова. Но, при попытки найти это слово, мне выдается последняя строка, где есть слово "НасЛЕДНИК". Единственное решение которое я нашел, это перенести каждое слово на новую строку и выполнять поиск совпадений построчно. Но это мне не подходит, т.к., я не знаю как потом восстановить начальную структуру текста. Подскажите пожалуйста, как с этим бороться? Или не получится ничего сделать? Не обращайте внимание на преобразование кодировок. Без этого, у меня вместо кириллицы - иероглифы

КОД

Make(delphi)
ver(4.05 build 186)
Add(MainForm,2953706,490,378)
{
Width=280
Height=316
Position=1
}
Add(Charset,3086171,644,322)
{
Type=6
link(onCharset,9358463:doValue,[])
link(Text,9168574:Var2,[])
}
Add(Memory,9358463,686,322)
{
link(onData,993512:doSearch,[(721,328)(721,361)(673,361)(673,370)])
}
Add(SearchInFile,993512,679,364)
{
FileName="1.txt"
Sensitive=1
link(onSearch,2340869:doCharset,[])
link(Text,9358463:Value,[])
}
Add(Charset,2340869,721,371)
{
Type=7
link(onCharset,15974094:doEvent1,[])
}
Add(Button,12793547,602,322)
{
Left=10
Top=250
Caption="Так"
link(onClick,3086171:doCharset,[])
}
Add(Edit,5282391,644,273)
{
Left=10
Top=15
Width=245
Text="ледник"
}
Add(RichEdit,4053668,791,371)
{
Left=10
Top=40
Width=245
Height=205
ScrollBars=3
}
Add(StrList,1946260,560,322)
{
Strings=#26:Небрежный плод моих забав,|30:Бессонниц, легких вдохновений,|23:Незрелых и увядших лет,|23:Ума холодных наблюдений|25:И сердца горестных замет.|25:Так думал молодой повеса,|24:Летя в пыли на почтовых,|22:Всевышней волею Зевеса|28:Наследник всех своих родных.|
}
Add(ArrayFind,16671564,574,378)
{
Partial=0
link(onFind,15974094:doEvent2,[])
link(Array,1946260:Array,[])
link(Value,9168574:Var1,[(594,313)])
}
Add(GetDataEx,9168574,644,308)
{
link(Data,5282391:Text,[])
}
Add(Button,11561342,532,378)
{
Left=70
Top=250
Caption="Или так"
link(onClick,16671564:doFind,[])
}
Add(Hub,15974094,763,371)
{
InCount=2
OutCount=1
link(onEvent1,4053668:doAdd,[])
}


Редактировалось 4 раз(а), последний 2020-10-13 00:48:50
карма: 2
На этом форуме, самые умные и добрые люди, всегда помогут! СПАСИБО!
0
Ответов: 2059
Рейтинг: 132
#2: 2020-10-13 00:36:35 ЛС | профиль | цитата
Тебе строку, или слово?

Add(MainForm,2953706,21,105)
{
Height=497
}
Add(SearchInFile,13699833,189,154)
{
link(onSearch,6034826:doAdd,[])
link(Text,3999177:Text,[])
}
Add(Memo,6034826,280,161)
{
Left=15
Top=15
Width=365
Height=190
}
Add(Button,7835028,56,154)
{
Left=15
Top=410
link(onClick,15142632:doExecute,[])
}
Add(Edit,3999177,196,91)
{
Left=105
Top=405
Width=265
Text="ледник"
}
Add(ODialog,15142632,133,154)
{
link(onExecute,13699833:doSearch,[])
}

карма: 6

0
Ответов: 56
Рейтинг: 2
#3: 2020-10-13 00:42:36 ЛС | профиль | цитата
flint2 писал(а):
Тебе строку, или слово?


Мне нужно, чтобы при поиске слова "Ледник", находилось именно слово "Ледник" и выдавало строку, в которой нашлось это слово. А сейчас, при поиске слова "Ледник", находится слово "Наследник".
карма: 2
На этом форуме, самые умные и добрые люди, всегда помогут! СПАСИБО!
0
Ответов: 207
Рейтинг: 14
#4: 2020-10-13 00:48:42 ЛС | профиль | цитата
NUB писал(а):
Мне нужно, чтобы при поиске слова "Ледник", находилось именно слово "Ледник" и выдавало строку, в которой нашлось это слово.

NUB, Если добавить русские буквы в регулярку (из этой темы https://forum.hiasm.com/post/306421), то моя схема будет работать.

Add(MainForm,11696760,336,294)
{
Width=280
Height=316
Position=1
}
Add(RichEdit,4053668,616,378)
{
Left=10
Top=40
Width=245
Height=205
ScrollBars=3
link(Str,8913837:Item,[(622,369)(608,369)(608,418)(461,418)])
}
Add(StrList,1946260,441,294)
{
Strings=#26:Небрежный плод моих забав,|30:Бессонниц, легких вдохновений,|23:Незрелых и увядших лет,|23:Ума холодных наблюдений|25:И сердца горестных замет.|25:Так думал молодой повеса,|24:Летя в пыли на почтовых,|22:Всевышней волею Зевеса|28:Наследник всех своих родных.|15:123 ледник 1234|
}
Add(ArrayEnum,8913837,455,378)
{
link(onItem,4737018:doExec,[])
link(Array,1946260:Array,[])
}
Add(RE_Search,4737018,518,378)
{
link(onMatch,4053668:doAdd,[])
link(Expression,13633518:FString,[])
}
Add(Edit,13781986,525,280)
{
Left=10
Top=15
Width=245
Text="ледник"
}
Add(FormatStr,13633518,525,329)
{
Mask="\b%1\b"
Point(FString)
link(Str1,13781986:Text,[])
}
Add(Hub,4394686,399,371)
{
link(onEvent1,13633518:doString,[(494,377)(494,335)])
link(onEvent2,8913837:doEnum,[])
}
Add(Button,12793547,336,371)
{
Left=10
Top=250
Caption="Так"
link(onClick,4394686:doEvent1,[])
}
карма: 2

1
Голосовали:NUB
Ответов: 56
Рейтинг: 2
#5: 2020-10-13 00:55:14 ЛС | профиль | цитата
Joiner писал(а):
моя схема будет работать

Работает! Спасибо!
карма: 2
На этом форуме, самые умные и добрые люди, всегда помогут! СПАСИБО!
0
Ответов: 2059
Рейтинг: 132
#6: 2020-10-13 00:58:48 ЛС | профиль | цитата
Add(MainForm,3552833,238,91)
{
Height=497
}
Add(SearchInFile,13699833,406,140)
{
link(onSearch,15696249:doEvent1,[])
link(Text,5386282:Var2,[])
}
Add(Memo,6034826,770,203)
{
Left=15
Top=15
Width=365
Height=190
}
Add(Button,7835028,273,140)
{
Left=15
Top=410
link(onClick,15142632:doExecute,[])
}
Add(Edit,3999177,413,77)
{
Left=105
Top=405
Width=265
Text="пыли"
}
Add(ODialog,15142632,350,140)
{
link(onExecute,13699833:doSearch,[])
}
Add(Str_Enum,11852188,511,203)
{
Delimiter=" "
link(onEnum,3049498:doCompare,[])
link(String,7783174:Var2,[])
}
Add(Memory,10915667,511,147)
{
}
Add(Hub,15696249,476,147)
{
link(onEvent1,10915667:doValue,[])
link(onEvent2,11852188:doEnum,[(500,160)(500,209)])
}
Add(If_else,3049498,616,203)
{
link(onTrue,8708470:doData,[])
link(Op2,5386282:Var3,[(629,117)])
}
Add(GetDataEx,5386282,413,112)
{
link(Data,3999177:Text,[])
}
Add(DoData,8708470,686,203)
{
link(onEventData,6034826:doAdd,[])
link(Data,7783174:Var3,[(692,194)])
}
Add(GetDataEx,7783174,511,189)
{
link(Data,10915667:Value,[])
}


На самом деле надо писать IC, потому что слова могут разделятся знаками препинания и переводом строки.
Завтра посмотрю, может чего-то похожее есть готовое.
А гляжу, что уже не надо.

Редактировалось 1 раз(а), последний 2020-10-13 01:00:43
карма: 6

1
Голосовали:NUB
Ответов: 56
Рейтинг: 2
#7: 2020-10-13 01:11:07 ЛС | профиль | цитата
flint2 писал(а):
На самом деле надо писать IC, потому что слова могут разделятся знаками препинания и переводом строки.
Завтра посмотрю, может чего-то похожее есть готовое.
А гляжу, что уже не надо.

Спасибо!

--- Добавлено в 2020-10-13 01:27:40

flint2 писал(а):
...

А Вы не знаете, почему у меня без преобразование кодировок, вместо кириллицы непонятные символы? Как это исправить? У меня Windows 10.

Скрины





Редактировалось 1 раз(а), последний 2020-10-13 01:27:40
карма: 2
На этом форуме, самые умные и добрые люди, всегда помогут! СПАСИБО!
0
Ответов: 783
Рейтинг: 168
#8: 2020-10-13 06:13:55 ЛС | профиль | цитата
NUB, попробуй так.
Add(MainForm,3211311,168,147)
{
Width=285
Height=584
Position=1
}
Add(SearchInFile,993512,308,301)
{
FileName="1.txt"
Sensitive=1
Point(String)
link(onNotSearch,13927566:doEnum,[])
}
Add(Button,12793547,196,301)
{
Left=10
Top=250
Caption="Так"
link(onClick,15060268:doExecute,[])
}
Add(Edit,5282391,399,56)
{
Left=10
Top=15
Width=245
Text="своих"
}
Add(StrList,1946260,273,77)
{
FileName="1.txt"
Strings=#26:Небрежный плод моих забав,|30:Бессонниц, легких вдохновений,|23:Незрелых и увядших лет,|23:Ума холодных наблюдений|25:И сердца горестных замет.|25:Так думал молодой повеса,|24:Летя в пыли на почтовых,|22:Всевышней волею Зевеса|28:Наследник всех своих родных.|
Point(doSave)
}
Add(Button,11561342,224,140)
{
Left=15
Top=495
Caption="Или так"
link(onClick,10137797:doEnum,[])
}
Add(ArrayEnum,10137797,287,140)
{
link(onItem,16313034:doEnum,[])
link(Array,1946260:Array,[])
}
Add(Str_Enum,16313034,343,140)
{
Delimiter=" "
link(onEnum,15474315:doCompare,[])
}
Add(If_else,15474315,392,140)
{
link(onTrue,8420484:doAdd,[])
link(Op2,9735585:Var2,[])
}
Add(ODialog,15060268,259,301)
{
link(onExecute,993512:doSearch,[])
}
Add(Str_Enum,13927566,371,301)
{
Delimiter=" "
link(onEnum,5631536:doCompare,[])
}
Add(If_else,5631536,427,301)
{
link(onTrue,852769:doAdd,[])
link(Op1,9735585:Var3,[(433,103)])
}
Add(GetDataEx,9735585,399,98)
{
link(Data,5282391:Text,[])
}
Add(Memo,8420484,497,140)
{
Left=10
Top=275
Width=245
Height=205
Ctl3D=1
ScrollBars=3
link(Str,10137797:Item,[(503,131)(489,131)(489,180)(293,180)])
}
Add(Memo,852769,490,301)
{
Left=10
Top=45
Width=245
Height=205
Ctl3D=1
ScrollBars=3
link(Str,993512:String,[(496,292)(482,292)(482,341)(314,341)])
}


Редактировалось 3 раз(а), последний 2020-10-13 07:56:26
карма: 15

0
Ответов: 4628
Рейтинг: 749
#9: 2020-10-13 11:10:45 ЛС | профиль | цитата
NUB писал(а):
А Вы не знаете, почему у меня без преобразование кодировок, вместо кириллицы непонятные символы?
Потому что твой файл - в кодировке UTF-8. А программа работает со строками в кодировке ANSI (на кириллических Windows соответствует кодировке windows-1251). При сохранении файла в Блокноте выбери кодировку ANSI - будет работать без преобразования.

Редактировалось 1 раз(а), последний 2020-10-13 11:11:56
карма: 26

0
Ответов: 8921
Рейтинг: 823
#10: 2020-10-13 13:50:30 ЛС | профиль | цитата
flint2 писал(а):
На самом деле надо писать IC
Это когда много и быстро надо (помните искали совпадения в файлах), а когда чуть, можно и на имеющихся компонентах.
А вот кому зайца свеже... ой, без IC!
Без


Add(MainForm,2953706,182,70)
{
Width=477
}
Add(Button,5509864,182,126)
{
Left=5
Top=10
Width=65
Caption="Открыть"
link(onClick,14800745:doExecute,[])
}
Add(ODialog,14800745,231,126)
{
Filter="TXT|*.txt"
link(onExecute,6805846:doEvent1,[])
}
Add(Edit,12665519,525,70)
{
Left=150
Top=40
Width=155
Text=""
}
Add(Button,14187209,182,168)
{
Left=5
Top=40
Width=65
Caption="Искать"
link(onClick,2338006:doEvent1,[])
}
Add(Str_Enum,3245901,385,189)
{
Delimiter=" "
link(onEnum,2416849:doReplace,[])
}
Add(CheckBox,7422570,469,70)
{
Left=80
Top=40
Width=65
Caption="Регистр"
}
Add(ArrayEnum,5904926,329,189)
{
link(onItem,3245901:doEnum,[])
link(onEndEnum,3174450:doStop,[(368,202)(368,83)])
link(Array,12749778:Array,[])
}
Add(If_else,2871641,469,189)
{
Op2=Integer(0)
link(onTrue,2289423:doModify,[])
link(onFalse,16235305:doWork3,[(564,202)])
link(Op1,5794077:Var2,[])
}
Add(StrCase,2289423,525,189)
{
link(onModify,16235305:doWork2,[])
}
Add(StrCase,8007189,525,126)
{
link(onModify,8244333:doWork1,[(564,132)])
link(Str,7992154:Var2,[])
}
Add(Hub,2338006,280,168)
{
OutCount=4
link(onEvent1,15863922:doClear,[(669,174)(669,202)])
link(onEvent2,4065486:doCompare,[(414,181)(414,132)])
link(onEvent3,3174450:doStart,[(305,188)(305,76)])
link(onEvent4,5904926:doEnum,[])
}
Add(If_else,4065486,427,126)
{
link(onTrue,8007189:doModify,[])
link(onFalse,9341872:doData,[])
link(Op1,5794077:Var1,[(433,117)])
}
Add(GetDataEx,5794077,469,112)
{
link(Data,7422570:Checked,[])
}
Add(DoData,9341872,483,133)
{
link(onEventData,8244333:doWork2,[])
link(Data,7992154:Var1,[(489,117)])
}
Add(Memory,15579521,574,133)
{
Default=String()
}
Add(GetDataEx,7992154,525,112)
{
link(Data,12665519:Text,[])
}
Add(HubEx,8244333,560,133)
{
link(onEvent,15579521:doValue,[])
}
Add(If_else,6025454,574,189)
{
link(onTrue,9586958:doEvent1,[])
link(Op1,15579521:Value,[])
}
Add(HubEx,16235305,560,189)
{
link(onEvent,6025454:doCompare,[])
}
Add(Replace,2416849,427,189)
{
SubStr="."
DestStr=" "
link(onReplace,14526896:doReplace,[])
}
Add(Replace,14526896,427,189)
{
SubStr=","
DestStr=" "
link(onReplace,13182189:doReplace,[])
}
Add(Replace,13182189,427,189)
{
SubStr="!"
DestStr=" "
link(onReplace,12445586:doReplace,[])
}
Add(Replace,12445586,427,189)
{
SubStr="?"
DestStr=" "
link(onReplace,6991683:doReplace,[])
}
Add(Hub,9586958,616,189)
{
link(onEvent1,15863922:doAdd,[])
link(onEvent2,3245901:doStop,[(641,202)(641,230)(375,230)(375,202)])
}
Add(ListBox,15180890,315,7)
{
Left=10
Top=85
Width=230
Height=175
}
Add(ListBox,15863922,658,189)
{
Left=255
Top=85
Width=200
Height=175
link(Str,5904926:Item,[(664,180)(650,180)(650,236)(335,236)])
}
Add(TimeCounter,3174450,378,70)
{
link(onStop,11912534:doString,[])
}
Add(Replace,6991683,427,189)
{
SubStr="/9"
DestStr=" "
link(onReplace,15014974:doTrim,[])
}
Add(Trim,15014974,427,189)
{
Char=" "
Mode=7
link(onTrim,2871641:doCompare,[])
}
Add(FormatStr,11912534,420,77)
{
Mask="%1 строк за %2 мсек"
link(onFString,2953706:doCaption,[(459,83)(459,62)(172,62)(172,76)])
link(Str1,12749778:Count,[(426,68)(363,68)(363,159)(328,159)])
}
Add(StrList,12749778,315,105)
{
}
Add(Hub,6805846,273,126)
{
link(onEvent1,15180890:doLoad,[(298,132)(298,41)])
link(onEvent2,12749778:doLoad,[])
}

Без_IC.jpg
карма: 19

0
Ответов: 2059
Рейтинг: 132
#11: 2020-10-13 15:52:29 ЛС | профиль | цитата
NUB
Вот так более функционально.
Про UTF-8 и ANSI уже сказали + когда копипастишь откуда-то переключайся на русский язык.

Add(MainForm,15823276,329,77)
{
Width=1038
Height=399
link(onCreate,8923655:doRussianKbd,[])
}
Add(InlineCode,9341613,448,413)
{
WorkPoints=#6:doWork|12:doStrinOffer|0:|
EventPoints=#12:onHashString|8:onString|10:onProgress|13:onMaxProgress|6:onStop|0:|
DataPoints=#6:Param1|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|29:uses Windows,kol,Share,Debug;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|8: |10: public|45: Param1: THI_Event; { Верхние точки. } |27: onHashString: THI_Event; |21: onString: THI_Event;|23: onProgress: THI_Event;|26: onMaxProgress: THI_Event;|19: onStop: THI_Event;|49: Procedure doWork(var _Data:TData; Index:Word); |54: Procedure doStrinOffer(var _Data:TData; Index:Word);|1: |5: end;|2: |15: implementation|0:|5: var|61:aTableSize,Lenchange,IEnterEnd,IEnter,IEn,StringBL:integer; |31:aKey,Stringchange:ShortString; |25:Enter2,nochange: Boolean;|25:StringEnter,Value:String;|0:|35:Procedure THiAsmClass.doStrinOffer;|3:var|11:I: Integer;|13:C: PAnsiChar;|5:begin|8: begin|7:IEn:=0;|2: |35:for I := IEnter to Length(Value) do|14: begin|17: C :=@Value[I]; |67: if (C^ in ['.','?','…','!',#10]) or (I=(Length(Value)))then |28: begin |24: IEn:= IEn+1; |47: StringEnter:=Copy(Value, IEnter,IEn);|43: _hi_OnEvent(onString,StringEnter); |22: exit;|17: end;|25: Inc(IEn); |11: end; |8: end;|9: end; |1: |1: |29:Procedure THiAsmClass.doWork;|4:var |14: Res: String;|24: StrnoHash:ShortString;|19: ILen, I: Integer;|23: Iout, Len: Cardinal;|18: C2, C: PAnsiChar;|22: LastEnter: Boolean;|5:begin|10:IEnter:=1;|14:Enter2:= True;|9:Iout :=0;|8:Len :=0;|34: Value:= Readstring(_Data,Param1);|42: _hi_OnEvent(onMaxProgress,Length(Value));|36: SetLength(Res, Length(Value) * 2);|31: for I := 1 to Length(Value) do|6: begin|16: C :=@Value[I];|54: if C^ in ['А'..'я','0'..'9','Ё','ё','A'..'z'] then |68: // if not (C^ in [#13,' ','?','"','(',')','…','!','.', ';']) then|9: begin|16: Inc(Len);|28: StrnoHash[Len] := C^; |22: aKey[Len] := C^;|33: C := CharLower(@aKey[Len]);|25: LastEnter := False;|7: end|8: else|7: begin |22:// if (C^=#10) then|0:|25: if not LastEnter then |15: begin |27: SetLength(aKey, Len);|32: SetLength(StrnoHash, Len);|46: _hi_OnEvent(OnHashString,aKey); |7: |19: if nochange then |9: begin|26: for ILen := 1 to Len do |8: begin |13: inc(Iout); |7: // Тут|27:Res[Iout]:=StrnoHash[ILen] |5: end;|4: end|4:else|8: begin|30:for ILen := 1 to Lenchange do |8: begin |13: inc(Iout); |32: Res[Iout]:=Stringchange[ILen];|9: end; |9: end;|14: Len :=0;|24: LastEnter := True;|23: nochange :=False;|9: end;|16: inc(Iout);|28: Res[Iout] := Value[I];|7: end;|37: if C^ in ['.','?','…','!',#10] then|19://if C^ = #13 then|5:begin|57:// if not(C^ =#10) then IEnter:= I+2 else IEnter:= I+1;|64: C2 :=@Value[IEnter]; // if (C2^=#10) then IEnter:= IEnter+1;|17: IEnter:= I+1; |17: Enter2:=True; |12: end; |1: |27: _hi_OnEvent(onProgress,I);|6: end;|23: _hi_OnEvent(onStop,I);|25: SetLength(Res, Iout ); |4:end;|4:end.|
link(onHashString,455524:doEvent1,[])
link(onString,13129753:doAdd,[(736,426)(736,223)])
link(onProgress,13581921:doWork2,[(542,433)(542,447)])
link(onMaxProgress,10501999:doMax,[(566,440)(566,454)])
link(onStop,13581921:doWork3,[(543,447)(543,456)(606,456)])
link(Param1,13814007:Text,[])
}
Add(Memo,13814007,448,336)
{
Left=10
Top=5
Width=280
Height=305
Strings=#271:Я знал, что головной офис распавшейся корпорации «Надо придумать название» давно стал легендой в определенных кругах искателей приключений, авантюристов, всех, кто занимался охотой за артефактами, утраченными технологиями, не брезгуя при этом грабежом различных раскопок.|63:Поднявшись на тридцать седьмой этаж, я оказался словно в музее.|263:В шкафах и на широких столах скучало множество странных артефактов, частью ещё покрытых коркой красного марсианского песка. В глубине комнаты мужчина с подстриженными усами в грубой рубашке с открытым воротом оторвался от объекта, который он очищал мягкой кистью.|63: -Доктор Джонсон? Я – Юрий Петров. //Придумать имя и фамилию.|154: -Рад познакомиться с вами, профессор, - Джонсон бережно положил артефакт, затем поднялся, чтобы крепко пожать руку посетителя. – Вы не теряете времени.|194: -После того, как вы позвонили вчера вечером, мне удалось получить место на не правительственном транспорте идущем до лунной орбитальной станции, но об этом потом... Надеюсь, я вам не помешал?|124: -Вовсе нет. Мои ассистенты придут около девяти. Я тут занимался кое-какой работой, которую не доверяю их кривым ручонкам.|138: Я взглянул на предмет, который очищал археолог. Это было нечто, что диссонировало с общим фоном этой безмолвной и неподвижной выставки.|72: -Этот образец выглядит не особо по-марсиански, - прокомментировал он.|
ScrollBars=2
}
Add(Memo,6823695,777,42)
{
Left=305
Top=5
Width=300
Height=305
ScrollBars=2
}
Add(Button,3706599,336,287)
{
Left=40
Top=330
link(onClick,429272:doEvent1,[])
}
Add(Memo,5059864,798,245)
{
Left=615
Top=5
Width=95
Height=305
ScrollBars=2
}
Add(If_else,2725617,693,252)
{
link(onTrue,13325344:doEvent1,[(737,258)(737,251)])
link(Op2,9115182:Text,[])
}
Add(Hub,455524,497,413)
{
link(onEvent1,6823695:doAdd,[(644,419)(644,48)])
link(onEvent2,2725617:doCompare,[(602,426)(602,258)])
}
Add(Hub,429272,385,287)
{
OutCount=4
link(onEvent1,6823695:doClear,[(588,293)(588,55)])
link(onEvent2,5059864:doClear,[(595,300)(595,258)])
link(onEvent3,13129753:doClear,[(695,307)(695,230)])
link(onEvent4,4357956:doStart,[(411,314)(411,360)(352,360)(352,405)])
}
Add(Hub,13325344,749,245)
{
link(onEvent1,5059864:doAdd,[])
link(onEvent2,9341613:doStrinOffer,[(775,258)(775,342)(436,342)(436,426)])
}
Add(Edit,9115182,700,175)
{
Left=155
Top=330
Width=180
Text="петров"
}
Add(ProgressBarRush,10501999,651,441)
{
Left=385
Top=335
Width=390
Height=10
Caption=""
Point(doMax)
}
Add(Thread,4357956,364,399)
{
Delay=0
FastStop=0
link(onExec,9341613:doWork,[(422,405)(422,419)])
}
Add(Memo,13129753,991,217)
{
Left=720
Top=5
Width=300
Height=305
ScrollBars=2
}
Add(HubEx,13581921,602,441)
{
link(onEvent,10501999:doPosition,[])
}
Add(KeyboardLayout,8923655,448,84)
{
}
Леонид писал(а):
Это когда много и быстро надо

Просто я привык работать с тоннами текста, а так можно и на регулярных выражениях.

Add(Button,3126655,231,161)
{
Left=95
Top=535
link(onClick,4880804:doExecute,[])
}
Add(ODialog,4880804,294,161)
{
Filter="All|*.txt"
link(onExecute,8606974:doLoad,[(342,167)(342,104)])
}
Add(MainForm,4093148,238,98)
{
Width=673
Height=588
}
Add(Memo,8259123,498,194)
{
Left=425
Top=40
Width=235
Height=480
ScrollBars=2
Point(doSetSelStart)
}
Add(Edit,16768161,462,91)
{
Left=25
Top=5
Width=465
Height=30
Font=[MS Sans Serif,14,0,0,1]
Text="[а-яА-Я0-9-]+|[.,:;?!]+"
}
Add(Button,9345993,210,203)
{
Left=500
Top=5
link(onClick,2414294:doEvent1,[(264,209)(264,202)])
}
Add(RE_Search,5386917,378,175)
{
link(onMatch,999126:doEvent1,[(418,181)(418,167)])
link(SourceStr,8606974:Text,[(384,155)(363,155)])
link(Expression,16768161:Text,[(391,149)(468,149)])
}
Add(Button,10206297,273,224)
{
Left=575
Top=5
link(onClick,5386917:doExecNext,[(341,230)(341,188)])
}
Add(Hub,999126,427,161)
{
OutCount=4
link(onEvent1,8259123:doAdd,[(466,167)(466,200)])
link(onEvent2,7399570:doOperation,[(453,174)(453,237)(324,237)(324,300)])
link(onEvent3,15111858:doData,[(453,181)(453,241)(394,241)(394,300)])
}
Add(DoData,15111858,406,294)
{
link(onEventData,8606974:doSetSelLength,[(450,300)(450,212)(345,212)(345,125)])
link(Data,5386917:MatchLen,[(412,250)(398,250)])
}
Add(Math,7399570,336,294)
{
OpType=1
Op2=1
link(onResult,8606974:doSetSelStart,[(380,300)(380,209)(345,209)(345,118)])
link(Op1,5386917:MatchPos,[(342,250)(391,250)])
}
Add(Hub,2414294,287,196)
{
link(onEvent1,8259123:doClear,[(396,202)(396,207)])
link(onEvent2,5386917:doExec,[(339,209)(339,181)])
}
Add(PointHint,5338787,588,203)
{
Info=#13:(\d+) числа |6:[А-я]+|6:[^\s]+|
VAlign=0
Width=379
Height=172
}
Add(Scintilla,8606974,357,70)
{
Left=5
Top=40
Width=410
Height=480
Font=[Courier New,10,0,0,1]
Strings=#269:Свободно|вольно| бесцеремонно| беспрепятственно| гладко| легко| споро| необязательно| непринужденно| развязно| без стеснения| безнаказанно| беспрепятственно|бесцеремонно|беспрепятственно|гладко|легко|споро|необязательно|непринужденно|развязно|без стеснения|безнаказанно|217:свободного|вольного|беглого|легкого|вакантного|незанятого|незамещенного|беспрепятственного|безвозбранного|невозбранного|привольного|раздольного|вольготного|просторного|широкого|независимого|пустого|праздного|властного|198:свободное|вольное|беглое|легкое|вакантное|незанятое|незамещенное|беспрепятственное|безвозбранное|невозбранное|привольное|раздольное|вольготное|просторное|широкое|независимое|пустое|праздное|властное|47:свободное время|досуг|время. Ant. рабочее время|
IndentationGuides=0
VLines=0
WrapVisualFlags=0
ScrollBars=2
Point(doSetSelStart)
Point(doSetSelLength)
Point(doEnsureVisible)
}

(помните искали совпадения в файлах)

Это совсем другое и не совсем правильно сделано, не буду здесь объяснять. + кто как понимает задачу.

Редактировалось 5 раз(а), последний 2020-10-13 17:14:46
карма: 6

0
Ответов: 56
Рейтинг: 2
#12: 2020-10-15 07:03:21 ЛС | профиль | цитата
Netspirit писал(а):

Потому что твой файл - в кодировке UTF-8.

Понял, спасибо!

--- Добавлено в 2020-10-15 07:04:42

flint2 писал(а):

Вот так более функционально.

Спасибо!

Редактировалось 1 раз(а), последний 2020-10-15 07:04:42
карма: 2
На этом форуме, самые умные и добрые люди, всегда помогут! СПАСИБО!
0
Ответов: 16884
Рейтинг: 1239
#13: 2020-10-16 13:42:00 ЛС | профиль | цитата
flint2, а без мусора никак ?
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 2059
Рейтинг: 132
#14: 2020-10-16 14:50:00 ЛС | профиль | цитата
Tad писал(а):
а без мусора никак ?

Не, никак!
Из другой программы взял с другими задачами.
Повыдирал, что в глаза бросалось и дописал-переписал десяток строк, а иначе пол дня надо сидеть.
А времени катастрофически не хватает!

Редактировалось 1 раз(а), последний 2020-10-16 14:51:28
карма: 6

0
Ответов: 16884
Рейтинг: 1239
#15: 2020-10-16 20:33:42 ЛС | профиль | цитата
flint2, извини. Видно мне этого не понять.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)