Вверх ↑
Этот топик читают: Гость
Ответов: 248
Рейтинг: 5
#1: 2022-01-17 15:39:53 ЛС | профиль | цитата
Добрый день Всем.Подскажите ,пожалуйста,есть папка в ней много вложенных друг в друга под папок,как перебрать их что бы добраться до файлов содержащихся в них.Не изменяя структуру
карма: 0

0
vip
#1.1контекстная реклама от партнеров
Ответов: 350
Рейтинг: 50
#2: 2022-01-17 16:34:02 ЛС | профиль | цитата
Udokanec писал(а):
как перебрать их что бы добраться до файлов содержащихся в них


Add(MainForm,2953706,161,84)
{
Width=583
Height=699
link(onCreate,9872589:doBrowse,[])
}
Add(Memo,1397626,392,126)
{
Width=567
Height=660
Align=5
ScrollBars=3
}
Add(Browse,9872589,217,98)
{
link(onBrowse,15139213:doSearch,[])
}
Add(FileSearch,15139213,273,98)
{
link(onSearch,11812865:doAdd,[])
link(onEndSearch,9728458:doData,[(326,111)(326,153)])
}
Add(StrList,11812865,336,98)
{
}
Add(DoData,9728458,336,147)
{
link(onEventData,1397626:doText,[])
link(Data,11812865:Text,[])
}

карма: 9

0
Ответов: 248
Рейтинг: 5
#3: 2022-01-18 00:30:50 ЛС | профиль | цитата
Так просто?Старею.
карма: 0

0
Ответов: 248
Рейтинг: 5
#4: 2022-01-20 15:04:32 ЛС | профиль | цитата
Подскажите,пожалуйста,где я накосячил.При небольших файлах прекрасно работает,но если попадается файл килобайт 40 то программа виснет и вырубается
Add(Button,7091212,371,224)
{
Top=625
Width=840
Height=35
Align=4
Flat=0
link(onClick,14744309:doEnum,[])
}
Add(ArrayEnum,14744309,434,224)
{
link(onItem,1494109:doSleepMks,[])
link(onEndEnum,11804175:doMessage,[(482,237)(482,286)])
link(Array,10828110:Array,[])
}
Add(Sleep,1494109,490,224)
{
Delay=2500
link(onSleep,14799399:doEvent1,[])
}
Add(Hub,14799399,532,224)
{
OutCount=3
link(onEvent1,15052181:doLoad,[(590,230)(590,314)])
link(onEvent2,15052181:doSave,[(578,237)(578,321)])
link(onEvent3,13347052:doProcessMessages,[])
}
Add(Application,13347052,644,238)
{
}
Add(Message,11804175,497,280)
{
Point(onOK)
link(onOK,2953706:doClose,[(543,293)(543,335)(177,335)(177,111)])
}
Add(StrMask,4053873,581,420)
{
Point(doMask)
link(onTrue,10223121:doData,[])
}
Add(ArrayEnum,14754293,623,364)
{
link(onItem,4053873:doCompare,[(671,370)(671,412)(571,412)(571,426)])
link(Array,15052181:Array,[])
}
Add(DoData,10223121,630,427)
{
link(onEventData,15052181:doDelete,[(674,433)(674,381)(583,381)(583,300)])
link(Data,14754293:Index,[])
}
Add(Hub,13026352,476,357)
{
InCount=2
link(onEvent1,8703861:doData,[(508,363)(508,433)])
link(onEvent2,14754293:doEnum,[])
}
Add(DoData,8703861,518,427)
{
link(onEventData,4053873:doMask,[])
link(Data,11647286:Text,[])
}
Add(Edit,11647286,518,385)
{
Left=40
Top=15
Width=265
Height=25
link(onEnter,13026352:doEvent1,[(562,398)(562,384)(455,384)(455,363)])
}
Add(Memo,15052181,609,280)
{
Left=35
Top=95
Width=755
Height=535
ScrollBars=3
Point(doLoad)
Point(doSave)
link(onChange,13026352:doEvent2,[(646,286)(646,356)(467,356)(467,370)])
link(FileName,14744309:Item,[(622,268)(440,268)])
}
Add(MainForm,2953706,189,84)
{
Width=856
Height=699
link(onCreate,9872589:doBrowse,[])
}
Add(Browse,9872589,245,98)
{
link(onBrowse,15139213:doSearch,[])
}
Add(FileSearch,15139213,301,98)
{
link(onSearch,11812865:doAdd,[])
link(onEndSearch,9728458:doData,[(354,111)(354,153)])
}
Add(StrList,11812865,364,98)
{
}
Add(DoData,9728458,364,147)
{
link(onEventData,10828110:doText,[])
link(Data,11812865:Text,[])
}
Add(Memo,10828110,420,126)
{
Left=40
Top=70
Width=745
Height=35
Visible=1
ScrollBars=3
}
карма: 0

0
Ответов: 4575
Рейтинг: 728
#5: 2022-01-20 23:09:40 ЛС | профиль | цитата
Если файл загружается в Memo - то там ограничен размер буфера, по умолчанию в 32 кб.
карма: 26

0
Ответов: 1962
Рейтинг: 127
#6: 2022-01-20 23:47:01 ЛС | профиль | цитата
Udokanec
Чтобы не было ограничений надо добавить сточку Control.MaxTextSize:=MaxInt;
в код Memo:
.........
Control.OnChange := _OnChange;
if _prop_Ctl3D = 0 then
Control.Style:= Control.Style and not ws_BORDER;
inherited;
Control.Text := _prop_Strings;
Control.SubClassName := 'obj_MemoControl';
Control.MaxTextSize:=MaxInt; // Добавить!
end;
а в RichEdit:
........
Text := _prop_Strings;
// RE_AutoURLDetect := true;
RE_FmtStandard;
RE_FmtAutoColor := true;
RE_Font.FontName := Control.Font.FontName;
RE_Font.Color := Control.Font.Color;
OnRE_URLClick := _OnURLDetect;
Control.MaxTextSize:=MaxInt; // Добавить!
end;
end;

Редактировалось 3 раз(а), последний 2022-01-20 23:50:10
карма: 5

0
Разработчик
Ответов: 25999
Рейтинг: 2104
#7: 2022-01-20 23:49:45 ЛС | профиль | цитата
flint2, я тебя прошу, на будущее -- не ставь никогда теги в кодах.

--- Добавлено в 2022-01-20 23:57:22

Странно, но в KOL ничего подобного про Мемо не написано. Если только Memo считать "simple edit control", но он вроде считается как "multiline edit control"
KOL писал(а):
property MaxTextSize: DWORD read GetMaxTextSize write SetMaxTextSize;
{* |<#richedit>
This property valid also for simple edit control, not only for RichEdit.
But for usual edit control, maximum text size available is 32K. For
RichEdit, limit is 4Gb. By default, RichEdit is limited to
32767 bytes (to set maximum size available to 2Gb, assign MaxInt value
to a property). Also, to get current text size of RichEdit, use property
TextSize or RE_TextSize[ ]. }

flint2, ты Memo лично проверял?

--- Добавлено в 2022-01-21 00:19:11

Сейчас проверил Memo без исправлений, загрузив в него файл 5,4Мб, спокойно залез. Откуда вы это взяли, что ограничение для Memo 32Кб? Я помню, что грузил в него и 100Мб. Еще раз проверил и грузнул в него 43Мб. Да, долго, но загрузился весь и сохранился тем же размером.

--- Добавлено в 2022-01-21 00:25:01

RichEdit поправил, проверил, все работает. Обновление на SVN

--- Добавлено в 2022-01-21 00:36:11

Я могу, конечно, и в Memo воткнуть для успокоения души, но надо ли? Тест говорит, что не надо.

Редактировалось 6 раз(а), последний 2022-01-21 00:36:11
карма: 22
Если что-то хочешь сделать хорошо -- сделай сам!
0
Ответов: 1962
Рейтинг: 127
#8: 2022-01-21 01:11:50 ЛС | профиль | цитата
flint2, ты Memo лично проверял?

Нет, умозрительно.
А сейчас проверил!
Попробуй чего либо набрать в Мемо при уже загруженном большом файле(у меня для проверки 3,98 МБ).
У тебя работает?
И при 1,63 МБ. не работает. Порог срабатывания не буду искать.

P.S. С добавлением заработало.

Редактировалось 4 раз(а), последний 2022-01-21 01:29:48
карма: 5

0
Разработчик
Ответов: 25999
Рейтинг: 2104
#9: 2022-01-21 04:30:59 ЛС | профиль | цитата
flint2 писал(а):
Попробуй чего либо набрать в Мемо

Странное поведение -- писать пишет, а редактировать не дает. Сейчас обновлю.

--- Добавлено в 2022-01-21 04:32:45

Обновил Memo на SVN.

Редактировалось 1 раз(а), последний 2022-01-21 04:32:45
карма: 22
Если что-то хочешь сделать хорошо -- сделай сам!
0
Ответов: 248
Рейтинг: 5
#10: 2022-01-21 11:42:47 ЛС | профиль | цитата
Обновил SVN.Теперь Memo и RichEdit заново в прогу устанавливать?

--- Добавлено в 2022-01-21 12:01:21

По моему тут дело не в Memo.Где то в коде я натупил.Вот только где

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

0
Ответов: 350
Рейтинг: 50
#11: 2022-01-21 13:22:19 ЛС | профиль | цитата
Udokanec, А что ты пытаешься сделать?
Удалить строчки соответствующих маске из файлов, находящихся в определённом каталоге?
Или что-то другое?
Как по мне, так это делается совсем по-другому.
карма: 9

0
Ответов: 248
Рейтинг: 5
#12: 2022-01-21 14:30:47 ЛС | профиль | цитата
Да мне надо удалить строки содержащие определенные символы.В папке окло 10-14 тысяч файлов.Если в файле встречается одно- два совпадения то прога отрабатывает без проблем.А если встречается с десяток совпадений то виснет.Фантазии хватило только на такую схему.
карма: 0

0
Ответов: 350
Рейтинг: 50
#13: 2022-01-21 16:37:29 ЛС | профиль | цитата
Udokanec, Скопируй несколько своих файлов в отдельный каталог и попробуй эту схему.
Add(MainForm,11479196,567,385)
{
Width=479
Height=116
}
Add(Button,1032059,217,294)
{
Left=280
Top=5
Width=70
Caption="Browse..."
link(onClick,1584642:doBrowse,[])
}
Add(Button,1454278,357,294)
{
Left=280
Top=35
Width=105
Enabled=1
Caption="Delete all!"
Point(doEnabled)
link(onClick,10891095:doEvent1,[])
}
Add(Hub,10891095,420,294)
{
OutCount=3
link(onEvent1,13867272:doString,[(508,300)(508,244)])
link(onEvent2,9717498:doSearch,[])
link(onEvent3,10740030:doString,[(445,314)(445,412)])
}
Add(Label,15810939,308,91)
{
Left=5
Top=10
Width=49
Height=17
Caption="Directory:"
}
Add(Edit,8494145,308,294)
{
Left=80
Top=5
Width=195
Text=""
link(onChange,1454278:doEnabled,[])
}
Add(Browse,1584642,266,294)
{
Title="Select Folder"
NewDirButton=1
link(onBrowse,8494145:doText,[])
}
Add(FileSearch,9717498,455,301)
{
Ext="*.smali"
link(onSearch,2039579:doValue,[])
link(Dir,8494145:Text,[(468,285)(412,285)(412,334)(314,334)])
}
Add(Message,11449550,511,406)
{
Caption="Finish"
Icon=4
link(onMessage,11479196:doClose,[])
}
Add(FileStream,13593382,581,301)
{
link(onLoad,4445344:doConvert,[])
}
Add(Hub,1904592,700,301)
{
OutCount=5
link(onEvent1,13593382:doClose,[(725,307)(725,293)(571,293)(571,314)])
link(onEvent2,2400353:doDelete,[(732,314)(732,300)])
link(onEvent3,11697065:doClear,[(872,321)(872,335)])
link(onEvent4,3352677:doEnum,[])
link(onEvent5,11697065:doSave,[(725,335)(725,356)])
}
Add(StreamConvertor,4445344,637,301)
{
Mode=6
link(onResult,1904592:doEvent1,[])
}
Add(LineBreakEx,7935652,518,350)
{
Caption="fn"
Type=3
link(_Data,2039579:Value,[])
}
Add(Memory,2039579,518,301)
{
link(onData,13593382:doOpen,[])
}
Add(FileTools,2400353,756,280)
{
DelToRecycle=1
link(FileName,10872257:getVar,[])
}
Add(LineBreakEx,10872257,756,252)
{
Caption="fn"
Type=2
}
Add(Label,3474344,357,91)
{
Left=5
Top=40
Width=49
Height=17
Caption="Characters:"
}
Add(Edit,7513133,560,189)
{
Left=80
Top=35
Width=195
Text=".line"
ClearAfterEnter=1
}
Add(StrMask,1905835,826,322)
{
Point(doMask)
link(onFalse,7947407:doReplace,[])
}
Add(StrList,11697065,945,322)
{
Point(doSave)
link(FileName,6243632:getVar,[])
}
Add(Str_Enum,3352677,756,322)
{
Delimiter="\r\n"
link(onEnum,1905835:doCompare,[])
}
Add(LineBreakEx,6243632,952,287)
{
Caption="fn"
Type=2
}
Add(FormatStr,13867272,560,238)
{
DataCount=1
Mask="*%1*"
link(onFString,1905835:doMask,[(795,244)(795,335)])
link(Str1,7513133:Text,[])
}
Add(FormatStr,10740030,455,406)
{
Mask="Найдено %1 файлов"
link(onFString,11449550:doMessage,[])
link(Str1,9717498:Count,[])
}
Add(Replace,7947407,882,322)
{
SubStr="\n"
link(onReplace,11697065:doAdd,[])
}

Если не получится, вышли свой файл для примера и скажи строчку с каким символом удалять.

Udokanec, Схему изменил. Смотри личку.

Редактировалось 3 раз(а), последний 2022-01-22 12:00:46
карма: 9

1
Голосовали:Udokanec
13
Сообщение
...
Прикрепленные файлы
(файлы не залиты)