Вверх ↑
Ответов: 2062
Рейтинг: 655
#1: 2022-02-20 15:59:33 ЛС | профиль | цитата
Udokanec, вы сложно строите схему, в результате чего легко запутаться и что-то пропустить. Вот подправил вашу схему, но не проверял, нет у меня ваших файлов.
схема


Add(MainForm,11951074,623,469)
{
Width=718
Height=210
}
Add(Button,1032059,343,420)
{
Left=335
Top=10
Width=100
Caption="Папка"
link(onClick,1584642:doBrowse,[])
}
Add(Button,1454278,483,420)
{
Left=335
Top=35
Width=100
Enabled=1
Caption="Заменить"
Point(doEnabled)
link(onClick,9717498:doSearch,[])
}
Add(Label,15810939,441,350)
{
Left=5
Top=10
Width=49
Height=17
Caption="Каталог:"
}
Add(Edit,8494145,434,420)
{
Left=130
Top=10
Width=195
Text=""
link(onChange,1454278:doEnabled,[])
}
Add(Browse,1584642,392,420)
{
Title="Select Folder"
NewDirButton=1
link(onBrowse,8494145:doText,[])
}
Add(FileSearch,9717498,532,420)
{
Ext="*.xml"
link(onSearch,3522052:doEvent1,[])
link(onEndSearch,10740030:doString,[(574,433)(574,458)(520,458)(520,496)])
link(Dir,8494145:Text,[(545,404)(474,404)(474,462)(440,462)])
}
Add(Message,11449550,574,490)
{
Caption="Finish"
Icon=4
link(onMessage,11951074:doClose,[])
}
Add(FormatStr,10740030,532,490)
{
Mask="Обработано %1 файлов"
link(onFString,11449550:doMessage,[])
link(Str1,9717498:Count,[])
}
Add(Replace,13114084,861,574)
{
link(onReplace,7986677:doReplace,[])
link(Sub_str,5342305:Value,[])
link(Dest,8213571:Result,[(881,544)(958,544)])
}
Add(Label,10384203,483,350)
{
Left=5
Top=75
Width=94
Height=17
Caption="На что заменить"
}
Add(Label,2813661,525,350)
{
Left=5
Top=40
Width=94
Height=17
Caption="Что заменить"
}
Add(StrList,13375948,735,392)
{
Point(EndIdx)
}
Add(Hub,3522052,630,420)
{
OutCount=3
link(onEvent1,13375948:doLoad,[])
link(onEvent2,10908054:doData,[(672,433)(672,482)])
link(onEvent3,13375948:doSave,[(690,440)(690,433)])
}
Add(StrCat,8213571,952,483)
{
link(onStrCat,11383716:doStrCat,[])
link(Str2,11257383:Value,[])
}
Add(BlockFind,4685345,826,483)
{
IncludeBlock=1
StartBlock=" package=""
EndBlock="" "
link(onSearch,5342305:doValue,[])
AddHint(-14,-41,71,13,StartBlock)
}
Add(Memory,11257383,959,441)
{
Default=String(gar)
AddHint(-8,-20,40,13,Default)
}
Add(Delete,6533868,910,483)
{
Count=3
Direction=1
link(onDelete,8213571:doStrCat,[])
}
Add(Memory,5342305,868,483)
{
Default=String()
link(onData,6533868:doDelete,[])
}
Add(BlockFind,2033397,1008,385)
{
IncludeBlock=1
StartBlock=" <provider android:authorities=""
EndBlock="" "
link(onSearch,14093193:doValue,[])
AddHint(-141,-23,162,13,StartBlock)
}
Add(Memory,14093193,1050,385)
{
Default=String()
}
Add(Replace,7986677,1008,574)
{
link(onReplace,1976889:doTrim,[])
link(Sub_str,7347489:Var1,[(1021,439)])
link(Dest,11383716:Result,[(1028,555)(1056,555)])
}
Add(StrCat,11383716,1050,483)
{
link(Str1,7347489:Var2,[])
link(Str2,4234477:Value,[(1063,450)(1105,450)])
}
Add(Memory,4234477,1099,385)
{
Default=String(_clone)
AddHint(-11,-27,57,13,Default)
}
Add(Trim,1976889,1120,574)
{
Char="\r\n"
Mode=5
Point(Result)
link(onTrim,13375948:doText,[(1180,580)(1180,324)(723,324)(723,419)])
}
Add(Hub,9805861,791,476)
{
OutCount=3
link(onEvent1,2033397:doSearch,[(814,482)(814,391)])
link(onEvent2,4685345:doSearch,[])
link(onEvent3,13114084:doReplace,[(813,496)(813,580)])
}
Add(DoData,10908054,735,476)
{
link(onEventData,9805861:doEvent1,[])
link(Data,13375948:Text,[])
}
Add(GetDataEx,7347489,1050,434)
{
link(Data,14093193:Value,[])
}
Обратите внимание, что сейчас лучше видно логику работы схемы.
1. Открываем файл и отдаем в поток данные (по линии будет передаваться весь файл в виде строки).
2. Вначале BlockFind найдут нужные участки и подготовят данные для замены.
3. Потом Replace заменят в строке (файле) все найденные участки.
4. Измененная строка будет сохранена как текстовой файл.

Если мешают подсказки, удалить можно через Меню\Редактор\Удалить LH и курсором кликнуть на подсказке.
карма: 10

0