Вверх ↑
Ответов: 783
Рейтинг: 168
#1: 2023-08-15 06:42:48 ЛС | профиль | цитата
GAv писал(а):
задача открыть файл весом от 1 до 4.7 гигов разбить на куски и отправить по тцп на сервер, но у меня он даже не открывает файл 3 гигабайтный(

Используй для этого компонент SharedStream
Вот пример разбивает файл на части по 10 мб.

Add(MainForm,11176470,441,196)
{
Left=20
Top=105
Width=465
Height=89
Caption="Send big file"
Position=1
Point(onClose)
link(onClose,52372:doOpen,[])
}
Add(ODialog,1786215,203,119)
{
link(onExecute,9721491:doText,[])
}
Add(SharedStream,12437222,329,119)
{
CoreName="asd"
PageMem=160
Point(CountFileBlock)
Point(FileOffset)
link(onOpen,11047553:doOperation,[])
link(Offset,13481594:Result,[(349,110)(377,110)(377,180)(643,180)])
}
Add(Edit,9721491,245,119)
{
Left=5
Top=10
Width=325
Text=""
link(onChange,12437222:doOpen,[])
}
Add(Button,15010227,161,119)
{
Left=335
Top=10
Width=20
Font=[MS Sans Serif,8,1,0,1]
Cursor=2
TabOrder=-1
Caption="..."
Data=Integer(6)
link(onClick,1786215:doExecute,[])
}
Add(For,15201884,490,119)
{
IncludeEnd=1
link(onEvent,639348:doEvent1,[])
link(onStop,12437222:doClose,[(529,132)(529,104)(312,104)(312,139)])
link(End,11047553:Result,[(503,110)(482,110)(482,159)(433,159)])
}
Add(MathParse,13481594,637,119)
{
link(onResult,12437222:doRemapping,[(676,125)(676,97)(319,97)(319,132)])
link(X1,12437222:SizeMMF,[(643,110)(594,110)(594,173)(349,173)])
link(X2,12437222:FileOffset,[(650,103)(587,103)(587,166)(363,166)])
}
Add(TCP_Client,52372,504,217)
{
Port=130
IP="127.0.0.1"
DataType=3
}
Add(Hub,639348,602,119)
{
link(onEvent1,13481594:doCalc,[])
link(onEvent2,8314133:doPack,[(627,132)(627,188)(319,188)(319,237)])
}
Add(StreamPack,8314133,329,231)
{
DataCount=#8:filepart|0:|
link(onPack,52372:doSend,[])
link(filepart,12437222:Stream,[])
}
Add(Math,11047553,427,119)
{
OpType=1
Op2=1
link(onResult,15201884:doFor,[])
link(Op1,12437222:CountFileBlock,[(433,110)(419,110)(419,159)(356,159)])
}

карма: 15

0