Вверх ↑
Ответов: 199
Рейтинг: 2
#1: 2020-02-28 23:48:51 ЛС | профиль | цитата
опираясь на схему выше я нарисовал свою версию!

Add(ODialog,10674497,238,147)
{
 Title="Выберите первый файл из которого будут браться данные (обычно меньшего размера)"
 FileName="Smal File"
 Point(FileName)
 Point(StartDir)
 link(onExecute,2572774:doEvent1,[])
}
Add(Button,3689589,154,147)
{
 Left=20
 Top=15
 Caption="открыть"
 Data=Integer(2)
 link(onClick,10674497:doExecute,[])
}
Add(FileStream,9688510,623,147)
{
 Point(doCopyFromStream)
 Point(doPosition)
 link(onLoad,14359500:doConvert,[])
}
Add(Hub,2572774,294,147)
{
 link(onEvent1,10840077:doOpen,[])
 link(onEvent2,14513411:doData,[(320,160)(320,183)(191,183)(191,237)])
}
Add(Memory,11703586,490,147)
{
 link(onData,12724113:doExecute,[])
}
Add(StreamConvertor,16504213,441,147)
{
 link(onResult,11703586:doValue,[])
}
Add(Str_Enum,13111172,546,203)
{
 Delimiter=""
 Step=4
 OnlyDivGroup=1
 Point(doStep)
 link(onEnum,11910285:doEvent1,[(611,209)(611,195)])
 link(onEndEnum,2051083:doMessage,[(586,216)(586,230)])
 link(String,11703586:Value,[(552,197)(496,197)])
}
Add(UpDown,2676460,550,44)
{
 Left=25
 Top=50
 Max=10000
 Min=1
 Position=2
 link(onPosition,3001206:doText,[])
}
Add(Edit,3001206,599,44)
{
 Left=55
 Top=50
 Width=55
 Text="2"
 DataType=2
 link(onChange,5136752:doOperation,[(645,50)(645,48)])
}
Add(Button,16338415,471,42)
{
 Left=115
 Top=50
 Caption="Сброс"
 Data=Integer(1)
 link(onClick,2676460:doPosition,[(533,48)(533,50)])
}
Add(If_else,14449337,770,280)
{
 link(onTrue,7222106:doWork1,[])
 link(Op1,1355591:Var3,[(776,258)])
 link(Op2,3291717:Var2,[])
}
Add(ODialog,12724113,553,147)
{
 Title="Выберите файл в котором будет осуществляться поиск (большего размера)"
 FileName="big File"
 Point(FileName)
 Point(StartDir)
 link(onExecute,9688510:doOpen,[])
}
Add(FileStream,10840077,364,147)
{
 Point(doCopyFromStream)
 Point(doPosition)
 link(onLoad,16504213:doConvert,[])
}
Add(StreamConvertor,14359500,700,147)
{
 link(onResult,13772072:doValue,[])
}
Add(Memory,13772072,770,147)
{
 link(onData,13111172:doEnum,[(1058,153)(1058,453)(417,453)(417,209)])
}
Add(Str_Enum,13010220,770,203)
{
 Delimiter=""
 Step=4
 OnlyDivGroup=1
 Point(doStep)
 Point(onBreak)
 link(onEnum,14449337:doCompare,[(814,209)(814,247)(758,247)(758,286)])
 link(onEndEnum,10117152:doSave,[(883,216)(883,314)])
 link(String,13772072:Value,[])
}
Add(Hub,3222337,707,42)
{
 link(onEvent1,12081085:In,[])
 link(onEvent2,7255199:In,[])
}
Add(LineBreak,11634685,700,217)
{
 Caption="kolbyte"
 link(Out,13010220:doStep,[])
 Primary=[12081085,35,-175]
}
Add(LineBreak,2663816,469,217)
{
 Caption="kolbyte"
 link(Out,13111172:doStep,[])
 Primary=[7255199,266,-168]
}
Add(ProgressBar,8086589,336,224)
{
 Top=725
 Width=1166
 Align=4
 Color=-16777196
 ProgressColor=-16777203
 Point(doMax)
 Point(doAlign)
}
Add(DoData,14513411,203,231)
{
 Data=Integer(0)
 link(onEventData,8086589:doMax,[])
 link(Data,10840077:Size,[(209,190)(377,190)])
}
Add(Memo,10117152,917,280)
{
 Left=5
 Top=160
 Width=574
 Height=563
 FileName="result.txt"
 Point(doSave)
 link(Str,12212569:Var2,[])
}
Add(Math,5136752,651,42)
{
 OpType=2
 Op2=2
 link(onResult,3222337:doEvent1,[])
}
Add(Message,2051083,595,224)
{
 Message="нет"
 link(Caption,2491382:Var,[(608,217)(629,217)])
}
Add(Edit,6708119,672,280)
{
 Left=438
 Top=61
 link(Str,1355591:Var2,[])
}
Add(GetDataEx,1355591,672,253)
{
 Angle=3
 link(Data,13111172:Part,[(559,258)])
}
Add(Timer,10829687,623,280)
{
 Interval=1
 link(onTimer,6708119:doText,[])
}
Add(Edit,16631102,994,217)
{
 Left=438
 Top=100
 link(Str,12212569:Var3,[(1000,205)])
}
Add(GetDataEx,3291717,777,252)
{
 link(Data,13010220:Part,[])
}
Add(Timer,2903065,938,217)
{
 Interval=1
 link(onTimer,16631102:doText,[])
}
Add(GetDataEx,12212569,917,200)
{
 Angle=3
 link(Data,3291717:Var3,[(893,205)(893,257)])
}
Add(MultiElement,7222106,819,280)
{
 link(onEvent1,10117152:doAdd,[])
}
BEGIN_SDK
  Add(EditMulti,5322272,21,21)
  {
   EventCount=1
   WorkCount=1
   Width=839
   Height=480
   link(doWork1,13476937:doCase,[(75,27)(75,119)])
  }
  Add(Case,14145324,168,175)
  {
   Value=Integer(0)
   link(onNextCase,12328190:doCase,[(207,181)(207,182)])
  }
  Add(Case,4945535,263,172)
  {
   Value=Integer(0)
   link(onNextCase,13669208:doCase,[(299,178)(299,179)])
  }
  Add(Case,2535646,298,113)
  {
   Value=String(FFFFFFFFFFFF)
   link(onNextCase,14441929:doCase,[(337,119)(337,123)])
  }
  Add(Case,8809833,393,117)
  {
   Value=String(FFFFFFFFFFFFFFFF)
   link(onNextCase,15540060:doCase,[])
  }
  Add(Case,8214757,123,176)
  {
   Value=Integer(0)
   link(onNextCase,14145324:doCase,[(161,182)(161,181)])
  }
  Add(Case,4076065,358,173)
  {
   Value=Integer(0)
   link(onNextCase,9508854:doCase,[])
  }
  Add(Case,3342197,256,113)
  {
   Value=String(FFFFFFFFFF)
   link(onNextCase,2535646:doCase,[])
  }
  Add(Case,14441929,344,117)
  {
   Value=String(FFFFFFFFFFFFFF)
   link(onNextCase,8809833:doCase,[])
  }
  Add(Case,8048628,214,113)
  {
   Value=String(FFFFFFFF)
   link(onNextCase,3342197:doCase,[])
  }
  Add(Case,15540060,435,117)
  {
   Value=String(FFFFFFFFFFFFFFFFFF)
   link(onNextCase,11655530:doCase,[])
  }
  Add(Case,2581323,172,113)
  {
   Value=String(FFFFFF)
   link(onNextCase,8048628:doCase,[])
  }
  Add(Case,11655530,477,117)
  {
   Value=String(FFFFFFFFFFFFFFFFFFFF)
   link(onNextCase,8214757:doCase,[(521,123)(521,161)(111,161)(111,182)])
  }
  Add(Case,13476937,130,113)
  {
   Value=String(FFFF)
   link(onNextCase,2581323:doCase,[])
  }
  Add(Case,9508854,428,173)
  {
   Value=Integer(0)
   link(onNextCase,9599004:doCase,[(477,179)(477,185)])
  }
  Add(Case,12328190,214,176)
  {
   Value=Integer(0)
   link(onNextCase,4945535:doCase,[(258,182)(258,178)])
  }
  Add(Case,13669208,302,173)
  {
   Value=Integer(0)
   link(onNextCase,4076065:doCase,[])
  }
  Add(Case,1606944,560,175)
  {
   Value=Integer(0)
   link(onNextCase,5322272:onEvent1,[(726,181)(726,27)])
  }
  Add(Case,9599004,494,179)
  {
   Value=Integer(0)
   link(onNextCase,1606944:doCase,[(543,185)(543,181)])
  }
END_SDK
Add(LineBreak,13240121,602,91)
{
 Type=1
 link(Data,3001206:Text,[(608,83)(605,83)])
 Primary=[2491382,21,105]
}
Add(CounterEx,499113,273,196)
{
 link(onNext,8086589:doPosition,[(324,202)(324,230)])
}
Add(Hub,11910285,686,189)
{
 link(onEvent1,13010220:doEnum,[(756,195)(756,209)])
 link(onEvent2,3412102:In,[])
}
Add(LineBreak,15361016,224,196)
{
 Caption="Bar"
 link(Out,499113:doNext,[])
 Primary=[3412102,490,0]
}


отсюда вопрос как сделать чтобы она в реальном времени показывала ход процесса?
и как ускорить процесс? потому что если работать с мегабайтными файлами требуется действительно приличное время ожидания!
если решите попробовать то подсовывайте файлы для начала не больше 10кб. иначе вы на долго ее повесите!
мне кажется что-то в моей схеме не правильно!
карма: 0

0
Редактировалось 2 раз(а), последний 2020-02-29 00:43:46