| Криптография | - RSRepair |
RSRepair
Краткое описание
Компонент служит для восстановления данных кодами Рида-Соломона (255,223,16)
Параметры
Методы
События
Свойства
Данные
Пример
Add(MainForm,2953706,84,119)
{
Width=531
Height=712
Caption="Correction Errors"
Position=1
link(onCreate,14113634:doPart,[])
}
Add(StrList,15922455,490,266)
{
Strings=#29:Нет необходимости в коррекции|17:Ошибки исправлены|20:Коррекция невозможна|31:Неправильная длина блока данных|28:Неправильная длина блока CRC|0:|
Point(doGetString)
Point(onGetString)
link(onGetString,5861790:doString,[])
}
Add(Button,13514000,238,189)
{
Left=200
Top=645
TabOrder=-1
Caption="Encode"
link(onClick,15853410:doEncode,[(292,195)(292,230)])
}
Add(FormatStr,5861790,539,273)
{
DataCount=1
Mask="== %1 =="
link(onFString,9712893:doWork2,[])
}
Add(Button,5887242,238,231)
{
Left=260
Top=645
TabOrder=-1
Caption="Decode"
link(onClick,15853410:doDecode,[])
}
Add(Message,16698352,609,273)
{
}
Add(Label,15501990,112,210)
{
Left=5
Top=10
Width=506
Height=17
Font=[MS Sans Serif,8,1,128,1]
Caption="Пример восстановления данных RS-кодами (255,223,16)"
AutoSize=1
Alignment=2
}
Add(Memo,10056829,315,105)
{
Left=5
Top=35
Width=500
Height=115
ScrollBars=2
}
Add(Memo,10335671,609,119)
{
Left=5
Top=220
Width=500
Height=115
ScrollBars=2
}
Add(MT_MultiData,3328707,490,133)
{
Count=3
link(onData1,12260171:doConvert,[(541,139)(541,83)])
link(onData2,10335671:doText,[])
link(onData3,11749085:doEvent1,[(548,153)(548,223)])
}
Add(Memo,13816342,658,196)
{
Left=5
Top=360
Width=500
Height=115
ScrollBars=2
}
Add(Memo,4823845,490,210)
{
Left=5
Top=500
Width=500
Height=115
ScrollBars=2
}
Add(If_else,940537,378,308)
{
Type=5
Op2=Integer(1)
link(onTrue,15922455:doGetString,[])
link(onFalse,6498024:doSeparateMT,[(426,321)(426,342)])
}
Add(FormatStr,5485714,539,336)
{
DataCount=1
Mask="== %1 ==\r\n"
link(onFString,9712893:doWork3,[(585,342)])
}
Add(HubEx,9712893,581,273)
{
link(onEvent,16698352:doMessage,[])
}
Add(Convertor,1073502,490,336)
{
Mode=16
Word_1="ошибка обнаружена и исправлена"
Word_2="ошибки обнаружено и исправлено"
Word_5="ошибок обнаружено и исправлено"
link(onResult,5485714:doString,[])
}
Add(RSRepair,15853410,315,224)
{
LengthDataBlock=128
link(onEncode,6155545:doValue,[(363,230)(363,139)])
link(onDecode,10918612:doTrim,[])
link(onInfo,940537:doCompare,[(363,244)(363,314)])
link(DataEncode,10056829:Text,[])
link(DataDecode,10335671:Text,[(328,187)(615,187)])
link(ChkSumDecode,6155545:Value1,[(335,180)(447,180)])
}
Add(Application,3174591,140,63)
{
}
Add(FilePartElm,14113634,140,133)
{
Mode=0
Point(Part)
link(onPart,5715878:doPart,[])
link(FileName,2247906:Var2,[])
}
Add(FilePartElm,5715878,189,133)
{
Mode=2
link(onPart,5191773:doString,[])
link(FileName,2247906:Var3,[(195,110)])
}
Add(FormatStr,5191773,238,133)
{
Mask="%1%2.sha"
link(onFString,10056829:doLoad,[])
link(Str1,14113634:Part,[(244,121)(208,121)(208,178)(146,178)])
}
Add(GetDataEx,2247906,140,105)
{
link(Data,3174591:AppFileName,[])
}
Add(Edit,15489254,609,77)
{
Left=5
Top=175
Width=500
Cursor=1
TabOrder=-1
Text=""
}
Add(StreamConvertor,12260171,560,77)
{
Mode=5
link(onResult,15489254:doText,[])
}
Add(MT_MultiMem,6155545,441,133)
{
Count=1
link(onData,3328707:doSeparateMT,[])
}
Add(Trim,10918612,441,231)
{
Char="/0"
link(onTrim,4823845:doText,[])
}
Add(MT_MultiData,6498024,441,336)
{
From=1
Count=1
link(onData1,1073502:doConvert,[])
}
Add(Label,2203238,119,217)
{
Left=205
Top=155
Width=86
Height=17
Caption="Исходный текст"
}
Add(Label,2359183,128,224)
{
Left=140
Top=340
Width=241
Height=17
Caption="Блок текста для получения контрольных сумм"
}
Add(Label,1956899,135,230)
{
Left=200
Top=480
Width=98
Height=17
Caption="Оставшийся текст"
}
Add(Label,134362,143,237)
{
Left=180
Top=620
Width=160
Height=17
Caption="Восстановленный блок текста"
}
Add(Label,9877906,152,244)
{
Left=185
Top=200
Width=128
Height=17
Caption="Блок контрольных сумм"
}
Add(Hub,11749085,574,217)
{
link(onEvent1,13816342:doText,[])
link(onEvent2,8175064:doMessage,[(623,230)(623,258)])
}
Add(Message,8175064,658,252)
{
Message="Исправьте что-либо в "блоке текста для получения контрольных сумм""
Caption=" "
}
Замечания
Обновление элемента: [svn]RSRepair.pas[/svn]
BB-code статьи для вставки
Всего комментариев: 0
(комментарии к статье еще не добавлены)