Вверх ↑
Этот топик читают: Гость
Ответов: 287
Рейтинг: 5
#1: 2022-02-19 15:01:28 ЛС | профиль | цитата
День добрый всем.Ну не суждено мне стать програмистом.
Есть несколько тысяч файлов общим весом 70-100 мб. Необходимо их все перебрать и заменить в найденных строках нужные фрагменты. Попробовал переделать схему товарища Gunta но ничего не выходит.добавляет пустые строки в файлы.
А логика с возрастом начала хромать.
Add(MainForm,11479196,511,266)
{
Width=460
Height=147
}
Add(Button,1032059,161,203)
{
Left=335
Top=10
Width=100
Caption="Папка"
link(onClick,1584642:doBrowse,[])
}
Add(Button,1454278,301,203)
{
Left=335
Top=35
Width=100
Enabled=1
Caption="Заменить"
Point(doEnabled)
link(onClick,10891095:doEvent1,[])
}
Add(Hub,10891095,364,203)
{
OutCount=3
link(onEvent1,9717498:doSearch,[])
link(onEvent2,10740030:doString,[(388,216)(388,293)])
}
Add(Label,15810939,231,98)
{
Left=5
Top=10
Width=49
Height=17
Caption="Каталог:"
}
Add(Edit,8494145,252,203)
{
Left=130
Top=10
Width=195
Text=""
link(onChange,1454278:doEnabled,[])
}
Add(Browse,1584642,210,203)
{
Title="Select Folder"
NewDirButton=1
link(onBrowse,8494145:doText,[])
}
Add(FileSearch,9717498,399,203)
{
Ext="*.smali"
link(onSearch,2039579:doValue,[])
link(Dir,8494145:Text,[(412,187)(356,187)(356,243)(258,243)])
}
Add(Message,11449550,455,287)
{
Caption="Finish"
Icon=4
link(onMessage,11479196:doClose,[])
}
Add(FileStream,13593382,525,203)
{
link(onLoad,4445344:doConvert,[])
}
Add(Hub,1904592,630,203)
{
OutCount=5
link(onEvent1,13593382:doClose,[(655,209)(655,195)(515,195)(515,216)])
link(onEvent2,2400353:doDelete,[(662,216)(662,202)])
link(onEvent3,11697065:doClear,[])
link(onEvent4,3352677:doEnum,[])
link(onEvent5,11697065:doSave,[(663,237)(663,244)])
}
Add(StreamConvertor,4445344,581,203)
{
Mode=6
link(onResult,1904592:doEvent1,[])
}
Add(LineBreakEx,7935652,462,252)
{
Caption="fn"
Type=3
link(_Data,2039579:Value,[])
}
Add(Memory,2039579,462,203)
{
link(onData,13593382:doOpen,[])
}
Add(FileTools,2400353,686,182)
{
DelToRecycle=1
link(FileName,10872257:getVar,[])
}
Add(LineBreakEx,10872257,686,154)
{
Caption="fn"
Type=2
}
Add(Edit,7513133,749,126)
{
Left=130
Top=40
Width=195
Text=".field private static b:Z = false"
ClearAfterEnter=1
}
Add(StrList,11697065,875,210)
{
Point(doSave)
Point(EndIdx)
link(FileName,6243632:getVar,[])
}
Add(Str_Enum,3352677,686,224)
{
Delimiter="\r\n"
link(onEnum,13114084:doReplace,[(748,230)(748,237)])
}
Add(LineBreakEx,6243632,882,175)
{
Caption="fn"
Type=2
}
Add(FormatStr,10740030,399,287)
{
Mask="Обработано %1 файлов"
link(onFString,11449550:doMessage,[])
link(Str1,9717498:Count,[])
}
Add(Replace,13114084,777,231)
{
link(onReplace,11697065:doAdd,[(842,237)(842,216)])
link(Sub_str,7513133:Text,[(790,177)(755,177)])
link(Dest,5554796:Text,[])
}
Add(Edit,5554796,791,119)
{
Left=130
Top=75
Width=190
Text=".field private static b:Z"
}
Add(Label,10384203,287,105)
{
Left=5
Top=75
Width=94
Height=17
Caption="На что заменить"
}
Add(Label,2813661,343,119)
{
Left=5
Top=40
Width=94
Height=17
Caption="Что заменить"
}


Как в одном файле заменять строки я знаю.а вот когда их много не могу.

Редактировалось 1 раз(а), последний 2022-02-19 15:02:33
карма: 0

0
Ответов: 35
Рейтинг: 0
#2: 2022-02-19 15:32:02 ЛС | профиль | цитата
Udokanec писал(а):
День добрый всем.Ну не суждено мне стать програмистом.
Есть несколько тысяч файлов общим весом 70-100 мб. Необходимо их все перебрать и заменить в найденных строках нужные фрагменты. Попробовал переделать схему товарища Gunta но ничего не выходит.добавляет пустые строки в файлы.
А логика с возрастом начала хромать.

Как в одном файле заменять строки я знаю.а вот когда их много не могу.


нужно действие doString вызывать после завершения поиска а не во время его начала
вот исправленная схема

Make(delphi)
ver(4.05 build 186)
Add(MainForm,11479196,427,259)
{
Width=460
Height=147
}
Add(Button,1032059,77,196)
{
Left=335
Top=10
Width=100
Caption="Папка"
link(onClick,1584642:doBrowse,[])
}
Add(Button,1454278,217,196)
{
Left=335
Top=35
Width=100
Enabled=1
Caption="Заменить"
Point(doEnabled)
link(onClick,10891095:doEvent1,[])
}
Add(Hub,10891095,280,196)
{
OutCount=3
link(onEvent1,9717498:doSearch,[])
}
Add(Label,15810939,147,91)
{
Left=5
Top=10
Width=49
Height=17
Caption="Каталог:"
}
Add(Edit,8494145,168,196)
{
Left=130
Top=10
Width=195
Text=""
link(onChange,1454278:doEnabled,[])
}
Add(Browse,1584642,126,196)
{
Title="Select Folder"
NewDirButton=1
link(onBrowse,8494145:doText,[])
}
Add(FileSearch,9717498,315,196)
{
Ext="*.smali"
TimeType=1
link(onSearch,2039579:doValue,[])
link(onEndSearch,10740030:doString,[(359,209)(359,247)(303,247)(303,286)])
link(Dir,8494145:Text,[(328,180)(272,180)(272,236)(174,236)])
}
Add(Message,11449550,371,280)
{
Caption="Finish"
Icon=4
link(onMessage,11479196:doClose,[])
}
Add(FileStream,13593382,441,196)
{
link(onLoad,4445344:doConvert,[])
}
Add(Hub,1904592,546,196)
{
OutCount=5
link(onEvent1,13593382:doClose,[(571,202)(571,188)(431,188)(431,209)])
link(onEvent2,2400353:doDelete,[(578,209)(578,195)])
link(onEvent3,11697065:doClear,[])
link(onEvent4,3352677:doEnum,[])
link(onEvent5,11697065:doSave,[(579,230)(579,237)])
}
Add(StreamConvertor,4445344,497,196)
{
Mode=6
link(onResult,1904592:doEvent1,[])
}
Add(LineBreakEx,7935652,378,245)
{
Caption="fn"
Type=3
link(_Data,2039579:Value,[])
}
Add(Memory,2039579,378,196)
{
link(onData,13593382:doOpen,[])
}
Add(FileTools,2400353,602,175)
{
DelToRecycle=1
link(FileName,10872257:getVar,[])
}
Add(LineBreakEx,10872257,602,147)
{
Caption="fn"
Type=2
}
Add(Edit,7513133,665,119)
{
Left=130
Top=40
Width=195
Text=".field private static b:Z = false"
ClearAfterEnter=1
}
Add(StrList,11697065,791,203)
{
Point(doSave)
Point(EndIdx)
link(FileName,6243632:getVar,[])
}
Add(Str_Enum,3352677,602,217)
{
Delimiter="\r\n"
link(onEnum,13114084:doReplace,[(664,223)(664,230)])
}
Add(LineBreakEx,6243632,798,168)
{
Caption="fn"
Type=2
}
Add(FormatStr,10740030,315,280)
{
DataCount=1
Mask="Обработано %1 файлов"
link(onFString,11449550:doMessage,[])
link(Str1,9717498:Count,[])
}
Add(Replace,13114084,693,224)
{
link(onReplace,11697065:doAdd,[(758,230)(758,209)])
link(Sub_str,7513133:Text,[(706,170)(671,170)])
link(Dest,5554796:Text,[])
}
Add(Edit,5554796,707,112)
{
Left=130
Top=75
Width=190
Text=".field private static b:Z"
}
Add(Label,10384203,203,98)
{
Left=5
Top=75
Width=94
Height=17
Caption="На что заменить"
}
Add(Label,2813661,259,112)
{
Left=5
Top=40
Width=94
Height=17
Caption="Что заменить"
}

карма: 0

0
Ответов: 287
Рейтинг: 5
#3: 2022-02-19 15:49:53 ЛС | профиль | цитата
А при чем здесь doString?Файлы находит и обрабатывает.Только после каждой строки добавляет пустую строку.
карма: 0

0
Ответов: 2270
Рейтинг: 677
#4: 2022-02-19 15:50:37 ЛС | профиль | цитата
Что-то уж больно схемы у вас мудреные. А так не проще разве:

Add(MainForm,11479196,567,308)
{
Width=460
Height=147
}
Add(Button,1032059,287,280)
{
Left=335
Top=10
Width=100
Caption="Папка"
link(onClick,1584642:doBrowse,[])
}
Add(Button,1454278,427,280)
{
Left=335
Top=35
Width=100
Enabled=1
Caption="Заменить"
Point(doEnabled)
link(onClick,9717498:doSearch,[])
}
Add(Label,15810939,385,210)
{
Left=5
Top=10
Width=49
Height=17
Caption="Каталог:"
}
Add(Edit,8494145,378,280)
{
Left=130
Top=10
Width=195
Text=""
link(onChange,1454278:doEnabled,[])
}
Add(Browse,1584642,336,280)
{
Title="Select Folder"
NewDirButton=1
link(onBrowse,8494145:doText,[])
}
Add(FileSearch,9717498,476,280)
{
Ext="*.smali"
link(onSearch,3522052:doEvent1,[])
link(onEndSearch,10740030:doString,[(518,293)(518,318)(464,318)(464,335)])
link(Dir,8494145:Text,[(489,264)(418,264)(418,322)(384,322)])
}
Add(Message,11449550,518,329)
{
Caption="Finish"
Icon=4
link(onMessage,11479196:doClose,[])
}
Add(Edit,7513133,728,266)
{
Left=130
Top=40
Width=195
Text=".field private static b:Z = false"
ClearAfterEnter=1
}
Add(FormatStr,10740030,476,329)
{
Mask="Обработано %1 файлов"
link(onFString,11449550:doMessage,[])
link(Str1,9717498:Count,[])
}
Add(Replace,13114084,686,343)
{
link(onReplace,13375948:doText,[(813,349)(813,219)(674,219)(674,279)])
link(Str,13375948:Text,[])
link(Sub_str,7513133:Text,[(699,324)(734,324)])
link(Dest,5554796:Text,[(706,332)(776,332)])
}
Add(Edit,5554796,770,266)
{
Left=130
Top=75
Width=190
Text=".field private static b:Z"
}
Add(Label,10384203,427,210)
{
Left=5
Top=75
Width=94
Height=17
Caption="На что заменить"
}
Add(Label,2813661,469,210)
{
Left=5
Top=40
Width=94
Height=17
Caption="Что заменить"
}
Add(StrList,13375948,686,252)
{
}
Add(Hub,3522052,623,280)
{
OutCount=3
link(onEvent1,13375948:doLoad,[])
link(onEvent2,13114084:doReplace,[(655,293)(655,349)])
link(onEvent3,13375948:doSave,[(679,300)(679,293)])
}
карма: 11

0
Ответов: 287
Рейтинг: 5
#5: 2022-02-19 16:00:26 ЛС | профиль | цитата
sla8a вот сразу видно мастера.посмотрел и все пучком.
Еще вопрос.А как сделать что бы заменять сразу несколько выражений
карма: 0

0
Ответов: 35
Рейтинг: 0
#6: 2022-02-19 16:02:08 ЛС | профиль | цитата
Udokanec писал(а):
А при чем здесь doString?Файлы находит и обрабатывает.Только после каждой строки добавляет пустую строку.

аа ну после каждой строки это иза блока перебора масивов
удалив его после каждой строки не будет добавлять пустую строку

Add(MainForm,11479196,427,259)
{
Width=460
Height=147
}
Add(Button,1032059,77,196)
{
Left=335
Top=10
Width=100
Caption="Папка"
link(onClick,1584642:doBrowse,[])
}
Add(Button,1454278,217,196)
{
Left=335
Top=35
Width=100
Enabled=1
Caption="Заменить"
Point(doEnabled)
link(onClick,10891095:doEvent1,[])
}
Add(Hub,10891095,280,196)
{
OutCount=3
link(onEvent1,9717498:doSearch,[])
}
Add(Label,15810939,147,91)
{
Left=5
Top=10
Width=49
Height=17
Caption="Каталог:"
}
Add(Edit,8494145,168,196)
{
Left=130
Top=10
Width=195
Text=""
link(onChange,1454278:doEnabled,[])
}
Add(Browse,1584642,126,196)
{
Title="Select Folder"
NewDirButton=1
link(onBrowse,8494145:doText,[])
}
Add(FileSearch,9717498,315,196)
{
Ext="*.smali"
TimeType=1
link(onSearch,2039579:doValue,[])
link(onEndSearch,10740030:doString,[(359,209)(359,247)(303,247)(303,286)])
link(Dir,8494145:Text,[(328,180)(272,180)(272,236)(174,236)])
}
Add(Message,11449550,371,280)
{
Caption="Finish"
Icon=4
link(onMessage,11479196:doClose,[])
}
Add(FileStream,13593382,441,196)
{
link(onLoad,4445344:doConvert,[])
}
Add(Hub,1904592,546,196)
{
OutCount=5
link(onEvent1,13593382:doClose,[(571,202)(571,188)(431,188)(431,209)])
link(onEvent2,2400353:doDelete,[(578,209)(578,195)])
link(onEvent3,11697065:doClear,[])
link(onEvent4,13114084:doReplace,[(626,223)(626,230)])
link(onEvent5,11697065:doSave,[(579,230)(579,237)])
}
Add(StreamConvertor,4445344,497,196)
{
Mode=6
link(onResult,1904592:doEvent1,[])
}
Add(LineBreakEx,7935652,378,245)
{
Caption="fn"
Type=3
link(_Data,2039579:Value,[])
}
Add(Memory,2039579,378,196)
{
link(onData,13593382:doOpen,[])
}
Add(FileTools,2400353,602,175)
{
DelToRecycle=1
link(FileName,10872257:getVar,[])
}
Add(LineBreakEx,10872257,602,147)
{
Caption="fn"
Type=2
}
Add(Edit,7513133,665,119)
{
Left=130
Top=40
Width=195
Text=".field private static b:Z = false"
ClearAfterEnter=1
}
Add(StrList,11697065,791,203)
{
Point(doSave)
Point(EndIdx)
link(FileName,6243632:getVar,[])
}
Add(LineBreakEx,6243632,798,168)
{
Caption="fn"
Type=2
}
Add(FormatStr,10740030,315,280)
{
DataCount=1
Mask="Обработано %1 файлов"
link(onFString,11449550:doMessage,[])
link(Str1,9717498:Count,[])
}
Add(Replace,13114084,693,224)
{
link(onReplace,11697065:doAdd,[(758,230)(758,209)])
link(Sub_str,7513133:Text,[(706,170)(671,170)])
link(Dest,5554796:Text,[])
}
Add(Edit,5554796,707,112)
{
Left=130
Top=75
Width=190
Text=".field private static b:Z"
}
Add(Label,10384203,203,98)
{
Left=5
Top=75
Width=94
Height=17
Caption="На что заменить"
}
Add(Label,2813661,259,112)
{
Left=5
Top=40
Width=94
Height=17
Caption="Что заменить"
}

Udokanec писал(а):
sla8a вот сразу видно мастера.посмотрел и все пучком.
Еще вопрос.А как сделать что бы заменять сразу несколько выражений

согласен я как-то не обратил внимание что в схеме много лишнего
карма: 0

0
Ответов: 2270
Рейтинг: 677
#7: 2022-02-19 16:07:04 ЛС | профиль | цитата
Можно поставить несколько Replace (Замена текста в строке)

Add(Edit,7513133,728,266)
{
Left=130
Top=40
Width=195
Text=".field private static b:Z = false"
ClearAfterEnter=1
}
Add(Replace,13114084,686,343)
{
link(onReplace,2308753:doReplace,[])
link(Str,13375948:Text,[])
link(Sub_str,7513133:Text,[(699,324)(734,324)])
link(Dest,5554796:Text,[(706,332)(776,332)])
}
Add(Edit,5554796,770,266)
{
Left=130
Top=75
Width=190
Text=".field private static b:Z"
}
Add(StrList,13375948,686,252)
{
}
Add(Hub,3522052,623,280)
{
OutCount=3
link(onEvent1,13375948:doLoad,[])
link(onEvent2,13114084:doReplace,[(655,293)(655,349)])
link(onEvent3,13375948:doSave,[(679,300)(679,293)])
}
Add(Replace,2308753,798,343)
{
link(onReplace,7513883:doReplace,[])
}
Add(Replace,7513883,840,343)
{
link(onReplace,13375948:doText,[(942,349)(942,190)(674,190)(674,279)])
}

или воспользоваться MultiReplace (Множественная замена) в той же вкладке рядом расположен. В справке есть примеры по нем (выделить элемент, нажать F1).
карма: 11

1
Голосовали:Udokanec
Ответов: 287
Рейтинг: 5
#8: 2022-02-19 16:10:18 ЛС | профиль | цитата
Спасибо большое.Сегодня хоть спать спокойно буду.
карма: 0

0
Ответов: 287
Рейтинг: 5
#9: 2022-02-20 01:31:11 ЛС | профиль | цитата
В схеме уважаемого sla8a все отлично и скорость обработки приличная.Но Добавляет пустую строку в конце обрабатываемого файла.

Add(MainForm,11951074,469,392)
{
Width=463
Height=195
}
Add(Button,1032059,189,364)
{
Left=335
Top=10
Width=100
Caption="Папка"
link(onClick,1584642:doBrowse,[])
}
Add(Button,1454278,329,364)
{
Left=335
Top=35
Width=100
Enabled=1
Caption="Заменить"
Point(doEnabled)
link(onClick,9717498:doSearch,[])
}
Add(Label,15810939,287,294)
{
Left=5
Top=10
Width=49
Height=17
Caption="Каталог:"
}
Add(Edit,8494145,280,364)
{
Left=130
Top=10
Width=195
Text=""
link(onChange,1454278:doEnabled,[])
}
Add(Browse,1584642,238,364)
{
Title="Select Folder"
NewDirButton=1
link(onBrowse,8494145:doText,[])
}
Add(FileSearch,9717498,378,364)
{
Ext="*.xml"
link(onSearch,3522052:doEvent1,[])
link(onEndSearch,10740030:doString,[(420,377)(420,402)(366,402)(366,419)])
link(Dir,8494145:Text,[(391,348)(320,348)(320,406)(286,406)])
}
Add(Message,11449550,420,413)
{
Caption="Finish"
Icon=4
link(onMessage,11951074:doClose,[])
}
Add(FormatStr,10740030,378,413)
{
Mask="Обработано %1 файлов"
link(onFString,11449550:doMessage,[])
link(Str1,9717498:Count,[])
}
Add(Replace,13114084,630,420)
{
link(onReplace,13375948:doText,[(702,426)(702,289)(566,289)(566,342)])
link(Str,10199091:Var2,[(636,410)(615,410)])
link(Sub_str,5342305:Value,[(643,310)(678,310)])
link(Dest,8213571:Result,[(650,345)(720,345)])
}
Add(Label,10384203,329,294)
{
Left=5
Top=75
Width=94
Height=17
Caption="На что заменить"
}
Add(Label,2813661,371,294)
{
Left=5
Top=40
Width=94
Height=17
Caption="Что заменить"
}
Add(StrList,13375948,581,315)
{
Point(doLoad)
Point(doSave)
Point(EndIdx)
link(onChange,4685345:doSearch,[(621,321)(621,167)])
}
Add(Hub,3522052,476,364)
{
OutCount=4
link(onEvent1,13375948:doLoad,[(519,370)(519,349)])
link(onEvent2,8213571:doStrCat,[(509,377)(509,244)])
link(onEvent3,13114084:doReplace,[(525,384)(525,426)])
link(onEvent4,13375948:doSave,[(556,391)(556,356)])
}
Add(StrCat,8213571,714,238)
{
link(Str1,15048242:Value,[(720,216)(762,216)])
link(Str2,11257383:Value,[(727,223)(804,223)])
}
Add(BlockFind,4685345,630,161)
{
IncludeBlock=1
StartBlock=" package=""
EndBlock="" "
link(onSearch,5342305:doValue,[])
link(Text,10199091:Var1,[(636,149)(562,149)(562,397)])
}
Add(Memory,11257383,798,161)
{
Default=String(axe)
}
Add(Memory,15048242,756,161)
{
Default=String()
}
Add(Delete,6533868,714,161)
{
Count=3
Direction=1
link(onDelete,15048242:doValue,[])
}
Add(Memory,5342305,672,161)
{
Default=String()
link(onData,6533868:doDelete,[])
}
Add(GetDataEx,10199091,609,392)
{
link(Data,13375948:Text,[(615,380)(587,380)])
}

карма: 0

0
Разработчик
Ответов: 26161
Рейтинг: 2127
#10: 2022-02-20 05:02:13 ЛС | профиль | цитата
Udokanec писал(а):
В схеме уважаемого sla8a все отлично и скорость обработки приличная.Но Добавляет пустую строку в конце обрабатываемого файла.

Вот этот компонент в помощь, ставишь после Replace, удаляет из текста перевод строки справа (два символа), если он есть, те в конце:
Add(Trim,1976889,714,553)
{
Char="\r\n"
Mode=5
}


Редактировалось 3 раз(а), последний 2022-02-20 05:05:37
карма: 22

0
Ответов: 287
Рейтинг: 5
#11: 2022-02-20 15:16:25 ЛС | профиль | цитата
Можно поставить несколько Replace (Замена текста в строке)


Add(Edit,7513133,728,266)
{
Left=130
Top=40
Width=195
Text=".field private static b:Z = false"
ClearAfterEnter=1
}
Add(Replace,13114084,686,343)
{
link(onReplace,2308753:doReplace,[])
link(Str,13375948:Text,[])
link(Sub_str,7513133:Text,[(699,324)(734,324)])
link(Dest,5554796:Text,[(706,332)(776,332)])
}
Add(Edit,5554796,770,266)
{
Left=130
Top=75
Width=190
Text=".field private static b:Z"
}
Add(StrList,13375948,686,252)
{
}
Add(Hub,3522052,623,280)
{
OutCount=3
link(onEvent1,13375948:doLoad,[])
link(onEvent2,13114084:doReplace,[(655,293)(655,349)])
link(onEvent3,13375948:doSave,[(679,300)(679,293)])
}
Add(Replace,2308753,798,343)
{
link(onReplace,7513883:doReplace,[])
}
Add(Replace,7513883,840,343)
{
link(onReplace,13375948:doText,[(942,349)(942,190)(674,190)(674,279)])
}

Не получается сделать множественную замену.А MultiReplace (Множественная замена) мне не подходит
Add(MainForm,11951074,469,413)
{
Width=718
Height=210
}
Add(Button,1032059,189,364)
{
Left=335
Top=10
Width=100
Caption="Папка"
link(onClick,1584642:doBrowse,[])
}
Add(Button,1454278,329,364)
{
Left=335
Top=35
Width=100
Enabled=1
Caption="Заменить"
Point(doEnabled)
link(onClick,9717498:doSearch,[])
}
Add(Label,15810939,287,294)
{
Left=5
Top=10
Width=49
Height=17
Caption="Каталог:"
}
Add(Edit,8494145,280,364)
{
Left=130
Top=10
Width=195
Text=""
link(onChange,1454278:doEnabled,[])
}
Add(Browse,1584642,238,364)
{
Title="Select Folder"
NewDirButton=1
link(onBrowse,8494145:doText,[])
}
Add(FileSearch,9717498,378,364)
{
Ext="*.xml"
link(onSearch,3522052:doEvent1,[])
link(onEndSearch,10740030:doString,[(420,377)(420,402)(366,402)(366,440)])
link(Dir,8494145:Text,[(391,348)(320,348)(320,406)(286,406)])
}
Add(Message,11449550,420,434)
{
Caption="Finish"
Icon=4
link(onMessage,11951074:doClose,[])
}
Add(FormatStr,10740030,378,434)
{
Mask="Обработано %1 файлов"
link(onFString,11449550:doMessage,[])
link(Str1,9717498:Count,[])
}
Add(Replace,13114084,630,420)
{
link(onReplace,7986677:doReplace,[])
link(Str,10199091:Var2,[(636,410)(615,410)])
link(Sub_str,5342305:Value,[(643,310)(706,310)])
link(Dest,8213571:Result,[(650,345)(748,345)])
}
Add(Label,10384203,329,294)
{
Left=5
Top=75
Width=94
Height=17
Caption="На что заменить"
}
Add(Label,2813661,371,294)
{
Left=5
Top=40
Width=94
Height=17
Caption="Что заменить"
}
Add(StrList,13375948,581,315)
{
Point(doLoad)
Point(doSave)
Point(EndIdx)
link(onChange,9805861:doEvent1,[(621,321)(621,167)])
}
Add(Hub,3522052,476,364)
{
OutCount=4
link(onEvent1,13375948:doLoad,[(519,370)(519,349)])
link(onEvent2,1653610:doEvent1,[(570,377)(570,244)])
link(onEvent3,13114084:doReplace,[(525,384)(525,426)])
link(onEvent4,13375948:doSave,[(536,391)(536,356)])
}
Add(StrCat,8213571,742,238)
{
link(Str1,15048242:Value,[(748,216)(790,216)])
link(Str2,11257383:Value,[(755,223)(832,223)])
}
Add(BlockFind,4685345,658,161)
{
IncludeBlock=1
StartBlock=" package=""
EndBlock="" "
link(onSearch,5342305:doValue,[])
link(Text,12633930:Var3,[(664,154)])
}
Add(Memory,11257383,826,161)
{
Default=String(gar)
}
Add(Memory,15048242,784,161)
{
Default=String()
}
Add(Delete,6533868,742,161)
{
Count=3
Direction=1
link(onDelete,15048242:doValue,[])
}
Add(Memory,5342305,700,161)
{
Default=String()
link(onData,6533868:doDelete,[])
}
Add(GetDataEx,10199091,609,392)
{
link(Data,1953778:Var2,[])
}
Add(BlockFind,2033397,861,105)
{
IncludeBlock=1
StartBlock=" <provider android:authorities=""
EndBlock="" "
link(onSearch,14093193:doValue,[])
link(Text,12633930:Var1,[(867,93)(629,93)])
}
Add(Memory,14093193,903,105)
{
Default=String()
}
Add(Replace,7986677,700,420)
{
link(onReplace,1976889:doTrim,[])
link(Str,1953778:Var1,[(706,390)])
link(Sub_str,109337:Var2,[(713,367)(909,367)])
link(Dest,11383716:Result,[(720,388)(937,388)])
}
Add(StrCat,11383716,931,245)
{
link(Str1,109337:Var3,[(937,159)])
link(Str2,4234477:Value,[(944,184)(958,184)])
}
Add(GetDataEx,1953778,609,385)
{
link(Data,13375948:Text,[(615,380)(587,380)])
}
Add(Memory,4234477,952,105)
{
Default=String(_clone)
}
Add(GetDataEx,109337,903,154)
{
link(Data,14093193:Value,[])
}
Add(Trim,1976889,763,420)
{
Char="\r\n"
Mode=5
Point(Result)
link(onTrim,13375948:doText,[(832,426)(832,287)(562,287)(562,342)])
}
Add(GetDataEx,12633930,623,149)
{
Angle=3
link(Data,10199091:Var1,[(549,154)(549,397)])
}
Add(Hub,1653610,651,238)
{
link(onEvent1,8213571:doStrCat,[])
link(onEvent2,11383716:doStrCat,[])
}
Add(Hub,9805861,630,161)
{
link(onEvent1,4685345:doSearch,[])
link(onEvent2,2033397:doSearch,[(653,174)(653,111)])
}

Редактировалось 1 раз(а), последний 2022-02-20 15:21:10
карма: 0

0
Ответов: 2270
Рейтинг: 677
#12: 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 и курсором кликнуть на подсказке.
карма: 11

0
Ответов: 287
Рейтинг: 5
#13: 2022-05-29 05:35:36 ЛС | профиль | цитата
Помогите пожалуйста разобраться
Add(Hub,1904592,406,231)
{
InCount=2
OutCount=6
link(onEvent1,12718057:doClear,[(574,237)(574,251)])
link(onEvent3,9689096:doMultiReplace,[(469,251)(469,286)])
link(onEvent4,12718057:doSave,[(574,258)(574,272)])
}
Add(MultiReplace,9689096,518,280)
{
link(onResult,9347584:doSearch,[])
link(Text,11450791:Text,[(524,254)(517,254)])
link(ReplaceList,14923820:Text,[(531,261)(559,261)])
}
Add(StrList,14923820,553,189)
{
Strings=#17:61.145.124.238=-;|17:ad.api.kaffnet=-;|13:ad.mail.ru=-;|21:ad.myinstashot.com=-;|14:adc3-launch=-;|11:adbuddiz=-;|11:adcolony=-;|11:addapptr=-;|11:adincube=-;|9:adjust=-;|9:adkmob=-;|14:adknowledge=-;|11:admarvel=-;|8:admob=-;|8:Admob=-;|9:admost=-;|15:adnw_logging=-;|18:adsafeprotected=-;|8:adsdk=-;|9:adsert=-;|11:adserver=-;|12:adservice=-;|14:advertising=-;|9:adview=-;|14:adz.wattpad=-;|10:aerserv=-;|10:airpush=-;|10:altamob=-;|13:alta.eqmob=-;|18:amazon-adsystem=-;|12:amazonaws=-;|12:analytics=-;|13:appAdForce=-;|17:appboyappbrain=-;|10:appenda=-;|8:appia=-;|16:applifier.com=-;|11:applovin=-;|9:applvn=-;|10:appnext=-;|11:appnexus=-;|11:appodeal=-;|10:apprupt=-;|10:apsalar=-;|9:appsdt=-;|12:appsflyer=-;|19:audience_network=-;|12:avocarrot=-;|8:azure=-;|20:boxdigital/sdk/ad=-;|9:branch=-;|13:ca-app-pub=-;|32:certificate.mobile.yandex.net=-;|13:chartboost=-;|13:cloudfront=-;|42:code.google.com/p/android/issues/detail=-;|14:crashlytics=-;|18:csi.gstatic.com=-;|15:dsp.batmobil=-;|9:duapps=-;|14:firebaseapp=-;|9:flurry=-;|8:fyber=-;|30:google/android/gms/internal=-;|39:google.com/safebrowsing/clientreport=-;|28:googleapis.com/auth/games=-;|30:googleads.g.doubleclick.net=-;|20:googlesyndication=-;|17:graph.facebook=-;|13:greystripe=-;|9:heyzap=-;|12:hockeyapp=-;|9:hyprmx=-;|11:InlineAd=-;|9:inmobi=-;|14:inneractive=-;|15:instreamatic=-;|14:integralads=-;|13:ironsource=-;|8:jirbo=-;|10:jumptap=-;|10:kochava=-;|11:Leadbolt=-;|13:localytics=-;|9:loopme=-;|12:madnet.ru=-;|8:mdotm=-;|14:measurement=-;|12:mediabrix=-;|10:metrica=-;|18:millennialmedia=-;|9:mngads=-;|7:moat=-;|10:mobclix=-;|9:mobfox=-;|11:mobvista=-;|10:montexi=-;|9:moolah=-;|8:mopub=-;|16:mp.mydas.mobi=-;|13: my/target=-;|21:NativeInterstitial=-;|14:net.rayjump=-;|21:network_ads_common=-;|9:nexage=-;|18:onelouder/adlib=-;|8:openx=-;|13:pagead/ads=-;|20:plus1.wapstart.ru=-;|11:pubmatic=-;|12:pubnative=-;|18:r.my.com/mobile=-;|9:revmob=-;|23:sb.scorecardresearch=-;|14:smaato/SOMA=-;|11:startapp=-;|28:startup.mobile.yandex.net=-;|16:supersonicads=-;|13:tagmanager=-;|8:tapas=-;|9:tapjoy=-;|24:udm.scorecardresearch=-;|14:unity3d/ads=-;|11:unityads=-;|9:vdopia=-;|9:vungle=-;|12:www.dummy=-;|8:wzrkt=-;|8:xtify=-;|19:yandexadexchange=-;|10:zestadz=-;|0:|
}
Add(BlockFind,9347584,574,280)
{
ReplaceStr=""http://""
StartBlock=""https"
EndBlock="""
link(onSearch,6700105:doValue,[])
link(onEndSearch,469192:doReplace,[(618,293)(618,335)])
}
Add(Replace,469192,630,329)
{
DestStr=""http://""
link(onReplace,1976889:doTrim,[])
link(Sub_str,6700105:Value,[(643,324)(636,352)])
}
Add(Memory,6700105,630,280)
{
}
Add(Trim,1976889,679,329)
{
Char="\r\n"
Mode=5
link(onTrim,12718057:doAdd,[(720,335)(720,244)])
}
Add(StrList,11450791,511,189)
{
Strings=#36:.class public final Lc/d/b/a/e/a/bt;|25:.super Ljava/lang/Object;|10:.source ""|0:|0:|15:# static fields|45:.field public static final a:Lc/d/b/a/e/a/js;|52: .annotation system Ldalvik/annotation/Signature;|17: value = {|31: "Lc/d/b/a/e/a/js<",|33: "Ljava/lang/String;",|16: ">;"|9: }|19: .end annotation|10:.end field|0:|0:|16:# direct methods|45:.method public static constructor <clinit>()V|13: .locals 2|0:|62: const-string v0, "gads:native:engine_js_url_with_protocol"|0:|110: const-string v1, "https://googleads.g.doubleclick.net/mads/static/mad/sdk/native/production/native_ads.js"|0:|101: invoke-static {v0, v1}, Lc/d/b/a/e/a/js;->a(Ljava/lang/String;Ljava/lang/String;)Lc/d/b/a/e/a/js;|0:|45: const-string v0, "gads:sdk_core_location"|0:|110: const-string v1, "https://googleads.g.doubleclick.net/mads/static/mad/sdk/native/sdk-core-v40-loader.html"|0:|101: invoke-static {v0, v1}, Lc/d/b/a/e/a/js;->a(Ljava/lang/String;Ljava/lang/String;)Lc/d/b/a/e/a/js;|0:|25: move-result-object v0|0:|56: sput-object v0, Lc/d/b/a/e/a/bt;->a:Lc/d/b/a/e/a/js;|0:|48: const-string v0, "gads:sdk_core_js_location"|0:|117: const-string v1, "https://googleads.g.doubleclick.net/mads/static/mad/sdk/native/production/sdk-core-v40-impl.js"|0:|101: invoke-static {v0, v1}, Lc/d/b/a/e/a/js;->a(Ljava/lang/String;Ljava/lang/String;)Lc/d/b/a/e/a/js;|0:|15: return-void|11:.end method|
Point(doGetString)
Point(onGetString)
}
Add(Button,15072250,301,231)
{
Left=25
Top=25
link(onClick,6335563:doTimer,[])
}
Add(Memo,12718057,728,238)
{
Left=30
Top=100
Width=985
Height=465
FileName="1.txt"
ScrollBars=3
Point(doSave)
}
Add(Timer,6335563,343,231)
{
Interval=10
Enable=1
AutoStop=3
link(onTimer,1904592:doEvent1,[])
}
Суть такова в файле есть несколько строк вида const-string v3, "https://pagead2.googlesyndication.com/pagead/gen_204?id=gmob-apps"
поиск строк производится по словам из списка например googlesyndication
но при поиске и замене блока заменяется только одна строка-последняя что понятно т.к. doReplace подключен к onEndSearch.Куда Replace подключить по другому не знаю.Поставил таймер что бы перебирал все файлы и менял все файлы.Но это хрень собачья.Как переделать схему не соображу.Смог только такое творение нацарапать.

Редактировалось 4 раз(а), последний 2022-05-29 08:08:40
карма: 0

0
Ответов: 287
Рейтинг: 5
#14: 2022-05-29 15:37:22 ЛС | профиль | цитата
Решил по пробовать сделать на регулярных выражениях.Вроде бы все хорошо--но как всегда проблема.После замены обрезает файл.

Add(MainForm,2953706,21,105)
{
Width=566
Height=639
}
Add(Button,612857,588,301)
{
Left=35
Top=45
link(onClick,10891095:doEvent1,[])
}
Add(Memo,4901527,714,315)
{
Left=40
Top=110
Width=470
Height=455
ScrollBars=3
Point(doLoad)
link(Str,5839119:Result,[])
}
Add(RE_Replace,5839119,714,266)
{
Expression=""http.*://.*(61.145.124.238|ad.api.kaffnet|ad.mail.ru|ad.myinstashot.com|adc3-launch|adbuddiz|adcolony|addapptr|adincube|adjust|adkmob|adknowledge|admarvel|admob|Admob|admost|adnw_logging|adsafeprotected|adsdk|adsert|adserver|adservice|advertising|adview|adz.wattpad|aerserv|airpush|altamob|alta.eqmob|amazon-adsystem|amazonaws|analytics|appAdForce|appboy|appbrain|appenda|appia|applifier.com|applovin|applvn|appnext|appnexus|appodeal|apprupt|apsalar|appsdt|appsflyer|audience_network|avocarrot|azure|boxdigital/sdk/ad|branch|ca-app-pub|certificate.mobile.yandex.net|chartboost|cloudfront|code.google.com/p/android/issues/detail|crashlytics|csi.gstatic.com|doubleclick.net|dsp.batmobil|duapps|firebaseapp|flurry|fyber|g.doubleclick|google/android/gms/internal|google.com/safebrowsing/clientreport|googleapis.com/auth/games|googleads|googlesyndication|graph.facebook|greystripe|heyzap|hockeyapp|hyprmx|InlineAd|inmobi|inneractive|instreamatic|integralads|ironsource|jirbo|jumptap|kochava|Leadbolt|localytics|loopme|madnet.ru|mdotm|measurement|mediabrix|metrica|millennialmedia|mngads|moat|mobclix|mobfox|mobvista|montexi|moolah|mopub|mp.mydas.mobi|my/target|NativeInterstitial|net.rayjump|network_ads_common|nexage|onelouder/adlib|openx|pagead/ads|plus1.wapstart.ru|pubmatic|pubnative|r.my.com/mobile|revmob|sb.scorecardresearch|smaato/SOMA|startapp|startup.mobile.yandex.net|supersonicads|tagmanager|tapas|tapjoy|udm.scorecardresearch|unity3d/ads|unityads|vdopia|vungle|www.dummy|wzrkt|xtify|yandexadexchange|zestadz).*""
ReplaceStr=""http""
link(onReplace,4901527:doText,[(758,272)(758,307)(702,307)(702,342)])
link(SourceStr,12827230:Text,[])
}
Add(StrList,12827230,714,217)
{
Strings=#35:.class public final Lc/d/b/a/a/t/b;|25:.super Ljava/lang/Thread;|10:.source ""|0:|0:|17:# instance fields|47:.field public final synthetic c:Ljava/util/Map;|0:|0:|16:# direct methods|51:.method public constructor <init>(Ljava/util/Map;)V|13: .locals 0|0:|58: iput-object p1, p0, Lc/d/b/a/a/t/b;->c:Ljava/util/Map;|0:|53: invoke-direct {p0}, Ljava/lang/Thread;-><init>()V|0:|15: return-void|11:.end method|0:|0:|17:# virtual methods|27:.method public final run()V|13: .locals 7|0:|25: const-string v0, ". "|0:|36: const-string v1, "HttpUrlPinger"|0:|58: iget-object v2, p0, Lc/d/b/a/a/t/b;->c:Ljava/util/Map;|0:|88: const-string v3, "https://pagead2.googlesyndication.com/pagead/gen_204?id=gmob-apps"|0:|85: invoke-static {v3}, Landroid/net/Uri;->parse(Ljava/lang/String;)Landroid/net/Uri;|0:|25: move-result-object v3|0:|80: invoke-virtual {v3}, Landroid/net/Uri;->buildUpon()Landroid/net/Uri$Builder;|0:|25: move-result-object v3|0:|67: invoke-interface {v2}, Ljava/util/Map;->keySet()Ljava/util/Set;|0:|25: move-result-object v4|0:|74: invoke-interface {v4}, Ljava/util/Set;->iterator()Ljava/util/Iterator;|0:|25: move-result-object v4|0:|11: :goto_0|59: invoke-interface {v4}, Ljava/util/Iterator;->hasNext()Z|0:|18: move-result v5|0:|22: if-eqz v5, :cond_0|0:|73: invoke-interface {v4}, Ljava/util/Iterator;->next()Ljava/lang/Object;|0:|25: move-result-object v5|0:|37: check-cast v5, Ljava/lang/String;|0:|89: invoke-interface {v2, v5}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;|0:|25: move-result-object v6|0:|37: check-cast v6, Ljava/lang/String;|0:|143: invoke-virtual {v3, v5, v6}, Landroid/net/Uri$Builder;->appendQueryParameter(Ljava/lang/String;Ljava/lang/String;)Landroid/net/Uri$Builder;|0:|16: goto :goto_0|0:|11: :cond_0|76: invoke-virtual {v3}, Landroid/net/Uri$Builder;->build()Landroid/net/Uri;|0:|25: move-result-object v2|0:|72: invoke-virtual {v2}, Landroid/net/Uri;->toString()Ljava/lang/String;|0:|25: move-result-object v2|0:|16: :try_start_0|35: new-instance v3, Ljava/net/URL;|0:|71: invoke-direct {v3, v2}, Ljava/net/URL;-><init>(Ljava/lang/String;)V|0:|81: invoke-virtual {v3}, Ljava/net/URL;->openConnection()Ljava/net/URLConnection;|0:|25: move-result-object v3|0:|47: check-cast v3, Ljava/net/HttpURLConnection;|14: :try_end_0|86: .catch Ljava/lang/IndexOutOfBoundsException; {:try_start_0 .. :try_end_0} :catch_2|70: .catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_1|77: .catch Ljava/lang/RuntimeException; {:try_start_0 .. :try_end_0} :catch_0|0:|16: :try_start_1|73: invoke-virtual {v3}, Ljava/net/HttpURLConnection;->getResponseCode()I|0:|18: move-result v4|0:|21: const/16 v5, 0xc8|0:|25: if-lt v4, v5, :cond_1|0:|22: const/16 v5, 0x12c|0:|25: if-lt v4, v5, :cond_2|0:|11: :cond_1|89: invoke-static {v2}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;|0:|25: move-result-object v5|0:|54: invoke-virtual {v5}, Ljava/lang/String;->length()I|0:|18: move-result v5|0:|29: add-int/lit8 v5, v5, 0x41|0:|46: new-instance v6, Ljava/lang/StringBuilder;|0:|65: invoke-direct {v6, v5}, Ljava/lang/StringBuilder;-><init>(I)V|0:|58: const-string v5, "Received non-success response code "|0:|107: invoke-virtual {v6, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;|0:|90: invoke-virtual {v6, v4}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;|0:|42: const-string v4, " from pinging URL: "|0:|107: invoke-virtual {v6, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;|0:|107: invoke-virtual {v6, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;|0:|80: invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;|0:|25: move-result-object v4|0:|88: invoke-static {v1, v4}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I|14: :try_end_1|54: .catchall {:try_start_1 .. :try_end_1} :catchall_0|0:|11: :cond_2|16: :try_start_2|68: invoke-virtual {v3}, Ljava/net/HttpURLConnection;->disconnect()V|0:|15: return-void|0:|15: :catchall_0|21: move-exception v4|0:|68: invoke-virtual {v3}, Ljava/net/HttpURLConnection;->disconnect()V|0:|12: throw v4|14: :try_end_2|86: .catch Ljava/lang/IndexOutOfBoundsException; {:try_start_2 .. :try_end_2} :catch_2|70: .catch Ljava/io/IOException; {:try_start_2 .. :try_end_2} :catch_1|77: .catch Ljava/lang/RuntimeException; {:try_start_2 .. :try_end_2} :catch_0|0:|12: :catch_0|21: move-exception v3|0:|16: goto :goto_1|0:|12: :catch_1|21: move-exception v3|0:|11: :goto_1|78: invoke-virtual {v3}, Ljava/lang/Exception;->getMessage()Ljava/lang/String;|0:|25: move-result-object v4|0:|89: invoke-static {v2}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;|0:|25: move-result-object v5|0:|54: invoke-virtual {v5}, Ljava/lang/String;->length()I|0:|18: move-result v5|0:|29: add-int/lit8 v5, v5, 0x1b|0:|89: invoke-static {v4}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;|0:|25: move-result-object v6|0:|54: invoke-virtual {v6}, Ljava/lang/String;->length()I|0:|18: move-result v6|0:|24: add-int/2addr v6, v5|0:|46: new-instance v5, Ljava/lang/StringBuilder;|0:|65: invoke-direct {v5, v6}, Ljava/lang/StringBuilder;-><init>(I)V|0:|48: const-string v6, "Error while pinging URL: "|0:|11: :goto_2|107: invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;|0:|107: invoke-virtual {v5, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;|0:|107: invoke-virtual {v5, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;|0:|107: invoke-virtual {v5, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;|0:|80: invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;|0:|25: move-result-object v0|0:|113: invoke-static {v1, v0, v3}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I|0:|15: return-void|0:|12: :catch_2|21: move-exception v3|0:|94: invoke-virtual {v3}, Ljava/lang/IndexOutOfBoundsException;->getMessage()Ljava/lang/String;|0:|25: move-result-object v4|0:|89: invoke-static {v2}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;|0:|25: move-result-object v5|0:|54: invoke-virtual {v5}, Ljava/lang/String;->length()I|0:|18: move-result v5|0:|29: add-int/lit8 v5, v5, 0x20|0:|89: invoke-static {v4}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;|0:|25: move-result-object v6|0:|54: invoke-virtual {v6}, Ljava/lang/String;->length()I|0:|18: move-result v6|0:|24: add-int/2addr v6, v5|0:|46: new-instance v5, Ljava/lang/StringBuilder;|0:|65: invoke-direct {v5, v6}, Ljava/lang/StringBuilder;-><init>(I)V|0:|53: const-string v6, "Error while parsing ping URL: "|0:|16: goto :goto_2|11:.end method|
}
Add(Hub,10891095,637,301)
{
OutCount=3
link(onEvent1,4901527:doLoad,[(690,307)(690,349)])
link(onEvent2,5839119:doReplace,[(683,314)(683,272)])
}

карма: 0

0
Ответов: 793
Рейтинг: 168
#15: 2022-05-29 18:55:57 ЛС | профиль | цитата
Udokanec, Посмотрел схемы, почитал описание, ничего не понял.

Add(MainForm,2953706,112,147)
{
}
Add(Hub,1904592,224,147)
{
link(onEvent1,9689096:doMultiReplace,[])
link(onEvent2,12718057:doSave,[])
}
Add(MultiReplace,9689096,266,147)
{
link(onResult,469192:doReplace,[])
link(Text,11450791:Text,[])
link(ReplaceList,14923820:Text,[(279,110)(314,110)])
}
Add(StrList,14923820,308,63)
{
Strings=#17:61.145.124.238=-;|17:ad.api.kaffnet=-;|13:ad.mail.ru=-;|21:ad.myinstashot.com=-;|14:adc3-launch=-;|11:adbuddiz=-;|11:adcolony=-;|11:addapptr=-;|11:adincube=-;|9:adjust=-;|9:adkmob=-;|14:adknowledge=-;|11:admarvel=-;|8:admob=-;|8:Admob=-;|9:admost=-;|15:adnw_logging=-;|18:adsafeprotected=-;|8:adsdk=-;|9:adsert=-;|11:adserver=-;|12:adservice=-;|14:advertising=-;|9:adview=-;|14:adz.wattpad=-;|10:aerserv=-;|10:airpush=-;|10:altamob=-;|13:alta.eqmob=-;|18:amazon-adsystem=-;|12:amazonaws=-;|12:analytics=-;|13:appAdForce=-;|17:appboyappbrain=-;|10:appenda=-;|8:appia=-;|16:applifier.com=-;|11:applovin=-;|9:applvn=-;|10:appnext=-;|11:appnexus=-;|11:appodeal=-;|10:apprupt=-;|10:apsalar=-;|9:appsdt=-;|12:appsflyer=-;|19:audience_network=-;|12:avocarrot=-;|8:azure=-;|20:boxdigital/sdk/ad=-;|9:branch=-;|13:ca-app-pub=-;|32:certificate.mobile.yandex.net=-;|13:chartboost=-;|13:cloudfront=-;|42:code.google.com/p/android/issues/detail=-;|14:crashlytics=-;|18:csi.gstatic.com=-;|15:dsp.batmobil=-;|9:duapps=-;|14:firebaseapp=-;|9:flurry=-;|8:fyber=-;|30:google/android/gms/internal=-;|39:google.com/safebrowsing/clientreport=-;|28:googleapis.com/auth/games=-;|30:googleads.g.doubleclick.net=-;|20:googlesyndication=-;|17:graph.facebook=-;|13:greystripe=-;|9:heyzap=-;|12:hockeyapp=-;|9:hyprmx=-;|11:InlineAd=-;|9:inmobi=-;|14:inneractive=-;|15:instreamatic=-;|14:integralads=-;|13:ironsource=-;|8:jirbo=-;|10:jumptap=-;|10:kochava=-;|11:Leadbolt=-;|13:localytics=-;|9:loopme=-;|12:madnet.ru=-;|8:mdotm=-;|14:measurement=-;|12:mediabrix=-;|10:metrica=-;|18:millennialmedia=-;|9:mngads=-;|7:moat=-;|10:mobclix=-;|9:mobfox=-;|11:mobvista=-;|10:montexi=-;|9:moolah=-;|8:mopub=-;|16:mp.mydas.mobi=-;|13: my/target=-;|21:NativeInterstitial=-;|14:net.rayjump=-;|21:network_ads_common=-;|9:nexage=-;|18:onelouder/adlib=-;|8:openx=-;|13:pagead/ads=-;|20:plus1.wapstart.ru=-;|11:pubmatic=-;|12:pubnative=-;|18:r.my.com/mobile=-;|9:revmob=-;|23:sb.scorecardresearch=-;|14:smaato/SOMA=-;|11:startapp=-;|28:startup.mobile.yandex.net=-;|16:supersonicads=-;|13:tagmanager=-;|8:tapas=-;|9:tapjoy=-;|24:udm.scorecardresearch=-;|14:unity3d/ads=-;|11:unityads=-;|9:vdopia=-;|9:vungle=-;|12:www.dummy=-;|8:wzrkt=-;|8:xtify=-;|19:yandexadexchange=-;|10:zestadz=-;|0:|
}
Add(Replace,469192,329,147)
{
SubStr="https://"
DestStr="http://"
link(onReplace,12718057:doText,[])
}
Add(StrList,11450791,266,63)
{
Strings=#36:.class public final Lc/d/b/a/e/a/bt;|25:.super Ljava/lang/Object;|10:.source ""|0:|0:|15:# static fields|45:.field public static final a:Lc/d/b/a/e/a/js;|52: .annotation system Ldalvik/annotation/Signature;|17: value = {|31: "Lc/d/b/a/e/a/js<",|33: "Ljava/lang/String;",|16: ">;"|9: }|19: .end annotation|10:.end field|0:|0:|16:# direct methods|45:.method public static constructor <clinit>()V|13: .locals 2|0:|62: const-string v0, "gads:native:engine_js_url_with_protocol"|0:|110: const-string v1, "https://googleads.g.doubleclick.net/mads/static/mad/sdk/native/production/native_ads.js"|0:|101: invoke-static {v0, v1}, Lc/d/b/a/e/a/js;->a(Ljava/lang/String;Ljava/lang/String;)Lc/d/b/a/e/a/js;|0:|45: const-string v0, "gads:sdk_core_location"|0:|110: const-string v1, "https://googleads.g.doubleclick.net/mads/static/mad/sdk/native/sdk-core-v40-loader.html"|0:|101: invoke-static {v0, v1}, Lc/d/b/a/e/a/js;->a(Ljava/lang/String;Ljava/lang/String;)Lc/d/b/a/e/a/js;|0:|25: move-result-object v0|0:|56: sput-object v0, Lc/d/b/a/e/a/bt;->a:Lc/d/b/a/e/a/js;|0:|48: const-string v0, "gads:sdk_core_js_location"|0:|117: const-string v1, "https://googleads.g.doubleclick.net/mads/static/mad/sdk/native/production/sdk-core-v40-impl.js"|0:|101: invoke-static {v0, v1}, Lc/d/b/a/e/a/js;->a(Ljava/lang/String;Ljava/lang/String;)Lc/d/b/a/e/a/js;|0:|15: return-void|11:.end method|
Point(doGetString)
Point(onGetString)
}
Add(Memo,12718057,399,126)
{
Left=30
Top=100
Width=985
Height=465
Align=5
FileName="1.txt"
ScrollBars=3
Point(doSave)
}
Add(Button,15072250,168,147)
{
Left=25
Top=25
Align=2
link(onClick,1904592:doEvent1,[])
}

карма: 16

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