Вверх ↑
Ответов: 8888
Рейтинг: 823
#1: 2018-02-28 23:25:33 ЛС | профиль | цитата
miver, нет, конечно, сначала в StrList, уже потом скопом на отрисовку


Add(MainForm,2953706,112,168)
{
}
Add(Button,13370250,112,119)
{
Left=15
Top=5
link(onClick,63447:doExecute,[])
}
Add(Label,10171826,448,224)
{
Left=95
Top=10
}
Add(InlineCode,12930845,245,126)
{
WorkPoints=#50:doOpen=Открывает текстовый файл для перебора строк|40:doStop=Останавливает перебор строк файла|
EventPoints=#55:onOpen=Выдает в поток очередную строку текстового файла|20:onEnd=Конец перебора|
VarPoints=#41:varString=содержит очередную строку файла|
DataPoints=#39:FileName=Полный путь к текстовому файлу|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|32:uses Windows, kol, Share, Debug;|0:|4:type|28: THiAsmClass = class(TDebug)|9: private|16: str: string;|19: FStop: boolean;|8: public|13: FileName,|22: onOpen: THI_Event;|25: onEnd: THI_Event; |0:|50: procedure doOpen(var _Data:TData; index:word);|50: procedure doStop(var _Data:TData; index:word);|53: procedure varString(var _Data:TData; index:word);|5: end;|0:|14:implementation|29:procedure THiAsmClass.doOpen;|3:var|14: F: TextFile;|13: fn: string;|34: BufIn : Array[0..65535] of Char;|5:begin|39: fn := ReadString(_Data, FileName,'');|34: if not FileExists(fn) then exit;|20: AssignFile(F, fn);|11: Reset(F);|23: SetTextBuf(F, BufIn);|17: FStop := False;|35: while not eof(F) and not FStop do|7: begin|19: Readln(F, str);|29: _hi_onEvent(onOpen, str);|6: end;|15: CloseFile(F);|27: _hi_onEvent(onEnd, ''); |4:end;|0:|29:procedure THiAsmClass.doStop;|5:begin|16: FStop := true;|4:end;|0:|32:procedure THiAsmClass.varString;|5:begin|23: dtString(_Data, str);|4:end;|0:|4:end.|
link(onOpen,11457593:doAdd,[])
link(onEnd,7207750:doEvent1,[(284,139)(284,146)])
}
Add(ODialog,63447,161,119)
{
Filter="All|*.txt"
link(onExecute,15194973:doEvent1,[])
}
Add(ListBox,2835655,392,161)
{
Left=10
Top=40
Width=365
Height=220
}
Add(StrList,11457593,350,126)
{
}
Add(Hub,7207750,294,140)
{
OutCount=3
link(onEvent1,16633772:doData,[(340,146)(340,188)])
link(onEvent2,1139286:doStop,[(319,153)(319,230)])
link(onEvent3,11457593:doClear,[(326,160)(326,139)])
}
Add(DoData,16633772,350,182)
{
link(onEventData,2835655:doText,[])
link(Data,11457593:Text,[])
}
Add(Hub,15194973,210,119)
{
link(onEvent1,1139286:doStart,[(235,125)(235,223)])
link(onEvent2,12930845:doOpen,[])
}
Add(TimeCounter,1139286,350,217)
{
link(onStop,12140088:doString,[])
}
Add(FormatStr,12140088,399,224)
{
Mask="Выдано %1 строк за %2 мсек"
link(onFString,10171826:doText,[])
link(Str1,2835655:Count,[])
}

Эти 311 Мб StrList спокойно загружает за пару секунд. У компа 8 Гб памяти, надо попробовать, сколько влезет в StrList
карма: 19

0