Вверх ↑
Этот топик читают: Гость
Ответов: 26
Рейтинг: 0
#1: 2007-12-29 20:39:27 ЛС | профиль | цитата
Люди добрые, не посчитайте за наглость, просто очень нужно...
... может кто делал? может у кого есть схема расчета CRC16 с полиномом A001
поделитесь плиз...
заранее благодарен...
------------ Дoбавленo:

Если гора не идет к Магомеду - Магомед идет к горе...



#pas
unit CRC;

interface

function CRC16(mpbT: array of byte; cwSize: word): string;
//function CRC16(mpbT: array of byte; cwSize: word): word;

implementation

uses SysUtils;

const
mpbCRCHi: array[0..$FF] of byte=(
$00, $C1, $81, $40, $01, $C0, $80, $41, $01, $C0, $80, $41, $00, $C1, $81,
$40, $01, $C0, $80, $41, $00, $C1, $81, $40, $00, $C1, $81, $40, $01, $C0,
$80, $41, $01, $C0, $80, $41, $00, $C1, $81, $40, $00, $C1, $81, $40, $01,
$C0, $80, $41, $00, $C1, $81, $40, $01, $C0, $80, $41, $01, $C0, $80, $41,
$00, $C1, $81, $40, $01, $C0, $80, $41, $00, $C1, $81, $40, $00, $C1, $81,
$40, $01, $C0, $80, $41, $00, $C1, $81, $40, $01, $C0, $80, $41, $01, $C0,
$80, $41, $00, $C1, $81, $40, $00, $C1, $81, $40, $01, $C0, $80, $41, $01,
$C0, $80, $41, $00, $C1, $81, $40, $01, $C0, $80, $41, $00, $C1, $81, $40,
$00, $C1, $81, $40, $01, $C0, $80, $41, $01, $C0, $80, $41, $00, $C1, $81,
$40, $00, $C1, $81, $40, $01, $C0, $80, $41, $00, $C1, $81, $40, $01, $C0,
$80, $41, $01, $C0, $80, $41, $00, $C1, $81, $40, $00, $C1, $81, $40, $01,
$C0, $80, $41, $01, $C0, $80, $41, $00, $C1, $81, $40, $01, $C0, $80, $41,
$00, $C1, $81, $40, $00, $C1, $81, $40, $01, $C0, $80, $41, $00, $C1, $81,
$40, $01, $C0, $80, $41, $01, $C0, $80, $41, $00, $C1, $81, $40, $01, $C0,
$80, $41, $00, $C1, $81, $40, $00, $C1, $81, $40, $01, $C0, $80, $41, $01,
$C0, $80, $41, $00, $C1, $81, $40, $00, $C1, $81, $40, $01, $C0, $80, $41,
$00, $C1, $81, $40, $01, $C0, $80, $41, $01, $C0, $80, $41, $00, $C1, $81,
$40) ;

mpbCRCLo: array[0..$FF] of byte=(
$00, $C0, $C1, $01, $C3, $03, $02, $C2, $C6, $06, $07, $C7, $05, $C5, $C4,
$04, $CC, $0C, $0D, $CD, $0F, $CF, $CE, $0E, $0A, $CA, $CB, $0B, $C9, $09,
$08, $C8, $D8, $18, $19, $D9, $1B, $DB, $DA, $1A, $1E, $DE, $DF, $1F, $DD,
$1D, $1C, $DC, $14, $D4, $D5, $15, $D7, $17, $16, $D6, $D2, $12, $13, $D3,
$11, $D1, $D0, $10, $F0, $30, $31, $F1, $33, $F3, $F2, $32, $36, $F6, $F7,
$37, $F5, $35, $34, $F4, $3C, $FC, $FD, $3D, $FF, $3F, $3E, $FE, $FA, $3A,
$3B, $FB, $39, $F9, $F8, $38, $28, $E8, $E9, $29, $EB, $2B, $2A, $EA, $EE,
$2E, $2F, $EF, $2D, $ED, $EC, $2C, $E4, $24, $25, $E5, $27, $E7, $E6, $26,
$22, $E2, $E3, $23, $E1, $21, $20, $E0, $A0, $60, $61, $A1, $63, $A3, $A2,
$62, $66, $A6, $A7, $67, $A5, $65, $64, $A4, $6C, $AC, $AD, $6D, $AF, $6F,
$6E, $AE, $AA, $6A, $6B, $AB, $69, $A9, $A8, $68, $78, $B8, $B9, $79, $BB,
$7B, $7A, $BA, $BE, $7E, $7F, $BF, $7D, $BD, $BC, $7C, $B4, $74, $75, $B5,
$77, $B7, $B6, $76, $72, $B2, $B3, $73, $B1, $71, $70, $B0, $50, $90, $91,
$51, $93, $53, $52, $92, $96, $56, $57, $97, $55, $95, $94, $54, $9C, $5C,
$5D, $9D, $5F, $9F, $9E, $5E, $5A, $9A, $9B, $5B, $99, $59, $58, $98, $88,
$48, $49, $89, $4B, $8B, $8A, $4A, $4E, $8E, $8F, $4F, $8D, $4D, $4C, $8C,
$44, $84, $85, $45, $87, $47, $46, $86, $82, $42, $43, $83, $41, $81, $80,
$40) ;

function CRC16(mpbT: array of byte; cwSize: word): string;
//function CRC16(mpbT: array of byte; cwSize: word): word;
var
bCRCHi: byte;
bCRCLo: byte;
i: word;
j: byte;
begin
bCRCHi:=$FF;
bCRCLo:=$FF;

for i:=0 to cwSize-1 do begin
j:=bCRCHi xor mpbT[i];

bCRCHi:=bCRCLo xor mpbCRCHi[j];
bCRCLo:=mpbCRCLo[j] ;
end;

Result:=IntToHex((bCRCHi*$100 + bCRCLo),2);
if Length(Result)=3 then Result:='0'+Result;
end;

end.



Кто нибудь из местных гуру может это прикрутить как элемент??? или как нибудь???

карма: 1

0
файлы: 1code_8048.txt [2.3KB] [195]
Разработчик
Ответов: 26322
Рейтинг: 2147
#2: 2007-12-29 20:49:35 ЛС | профиль | цитата
N0D, а чем вот этот CRC16, из аплоада, не устраивает?

карма: 22

0
Ответов: 26
Рейтинг: 0
#3: 2007-12-29 20:49:35 ЛС | профиль | цитата
Кстати "Это" - расчет CRC16 табличным методом с переворачиванием итоговых байт, скармливаем массив данных и его длинну, и получаем результат.
Моя благодарность не будет знать границ если кто нибудь оформит "это" как элемент.
карма: 1

0
Разработчик
Ответов: 26322
Рейтинг: 2147
#4: 2007-12-29 20:56:18 ЛС | профиль | цитата
N0D с тем элементом можно все на HiAsm'e собрать. Ты попробуй, если не сработает, то будем думать дальше.
карма: 22

0
Ответов: 26
Рейтинг: 0
#5: 2007-12-29 21:43:34 ЛС | профиль | цитата
N0D, а чем вот этот http://hiasm.1gb.ru/xf//getfile/3772, из аплоада, не устраивает?

Посыпаю голову пеплом... плохо искал...
------------ Дoбавленo:

Скачал, попробовал, к сожалению это немного не то что нужно... Конретно этот элемент заточен для подсчета CRC16 для файла, все мои потуги скормить ему STR не увенчались успехом.
Может я что не то делаю? Может кто подскажет как надо?
карма: 1

0
Разработчик
Ответов: 26322
Рейтинг: 2147
#6: 2007-12-30 00:16:01 ЛС | профиль | цитата
N0D, дай последовательность байтов (пару, тройку) и результат.
карма: 22

0
Ответов: 9906
Рейтинг: 351
#7: 2007-12-30 00:55:09 ЛС | профиль | цитата

#sha
Add(MainForm,4317713,315,105)
{
Left=10
Top=10
Position=1
}
Add(InlineCode,7259037,189,105)
{
WorkPoints=#9:doConvert|
EventPoints=#8:onResult|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|21:uses kol,Share,Debug;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|0:|9: public|23: onResult:THI_Event;|47: procedure doConvert(var D:TData; idx:word);|5: end;|0:|14:implementation|0:|5:const|35: mpbCRCHi: array[0..$FF] of byte=(|82: $00, $C1, $81, $40, $01, $C0, $80, $41, $01, $C0, $80, $41, $00, $C1, $81,|82: $40, $01, $C0, $80, $41, $00, $C1, $81, $40, $00, $C1, $81, $40, $01, $C0,|82: $80, $41, $01, $C0, $80, $41, $00, $C1, $81, $40, $00, $C1, $81, $40, $01,|82: $C0, $80, $41, $00, $C1, $81, $40, $01, $C0, $80, $41, $01, $C0, $80, $41,|82: $00, $C1, $81, $40, $01, $C0, $80, $41, $00, $C1, $81, $40, $00, $C1, $81,|82: $40, $01, $C0, $80, $41, $00, $C1, $81, $40, $01, $C0, $80, $41, $01, $C0,|82: $80, $41, $00, $C1, $81, $40, $00, $C1, $81, $40, $01, $C0, $80, $41, $01,|82: $C0, $80, $41, $00, $C1, $81, $40, $01, $C0, $80, $41, $00, $C1, $81, $40,|82: $00, $C1, $81, $40, $01, $C0, $80, $41, $01, $C0, $80, $41, $00, $C1, $81,|82: $40, $00, $C1, $81, $40, $01, $C0, $80, $41, $00, $C1, $81, $40, $01, $C0,|82: $80, $41, $01, $C0, $80, $41, $00, $C1, $81, $40, $00, $C1, $81, $40, $01,|82: $C0, $80, $41, $01, $C0, $80, $41, $00, $C1, $81, $40, $01, $C0, $80, $41,|82: $00, $C1, $81, $40, $00, $C1, $81, $40, $01, $C0, $80, $41, $00, $C1, $81,|82: $40, $01, $C0, $80, $41, $01, $C0, $80, $41, $00, $C1, $81, $40, $01, $C0,|82: $80, $41, $00, $C1, $81, $40, $00, $C1, $81, $40, $01, $C0, $80, $41, $01,|82: $C0, $80, $41, $00, $C1, $81, $40, $00, $C1, $81, $40, $01, $C0, $80, $41,|82: $00, $C1, $81, $40, $01, $C0, $80, $41, $01, $C0, $80, $41, $00, $C1, $81,|14: $40) ;|0:|35: mpbCRCLo: array[0..$FF] of byte=(|82: $00, $C0, $C1, $01, $C3, $03, $02, $C2, $C6, $06, $07, $C7, $05, $C5, $C4,|82: $04, $CC, $0C, $0D, $CD, $0F, $CF, $CE, $0E, $0A, $CA, $CB, $0B, $C9, $09,|82: $08, $C8, $D8, $18, $19, $D9, $1B, $DB, $DA, $1A, $1E, $DE, $DF, $1F, $DD,|82: $1D, $1C, $DC, $14, $D4, $D5, $15, $D7, $17, $16, $D6, $D2, $12, $13, $D3,|82: $11, $D1, $D0, $10, $F0, $30, $31, $F1, $33, $F3, $F2, $32, $36, $F6, $F7,|82: $37, $F5, $35, $34, $F4, $3C, $FC, $FD, $3D, $FF, $3F, $3E, $FE, $FA, $3A,|82: $3B, $FB, $39, $F9, $F8, $38, $28, $E8, $E9, $29, $EB, $2B, $2A, $EA, $EE,|82: $2E, $2F, $EF, $2D, $ED, $EC, $2C, $E4, $24, $25, $E5, $27, $E7, $E6, $26,|82: $22, $E2, $E3, $23, $E1, $21, $20, $E0, $A0, $60, $61, $A1, $63, $A3, $A2,|82: $62, $66, $A6, $A7, $67, $A5, $65, $64, $A4, $6C, $AC, $AD, $6D, $AF, $6F,|82: $6E, $AE, $AA, $6A, $6B, $AB, $69, $A9, $A8, $68, $78, $B8, $B9, $79, $BB,|82: $7B, $7A, $BA, $BE, $7E, $7F, $BF, $7D, $BD, $BC, $7C, $B4, $74, $75, $B5,|82: $77, $B7, $B6, $76, $72, $B2, $B3, $73, $B1, $71, $70, $B0, $50, $90, $91,|82: $51, $93, $53, $52, $92, $96, $56, $57, $97, $55, $95, $94, $54, $9C, $5C,|82: $5D, $9D, $5F, $9F, $9E, $5E, $5A, $9A, $9B, $5B, $99, $59, $58, $98, $88,|82: $48, $49, $89, $4B, $8B, $8A, $4A, $4E, $8E, $8F, $4F, $8D, $4D, $4C, $8C,|82: $44, $84, $85, $45, $87, $47, $46, $86, $82, $42, $43, $83, $41, $81, $80,|14: $40) ;|0:|32:procedure THiAsmClass.doConvert;|3:var|15: bCRCHi: byte;|15: bCRCLo: byte;|11: s:string;|14: i,j:integer;|5:begin|14: bCRCHi:=$FF;|14: bCRCLo:=$FF;|19: s := ToString(D);|32: for i:=1 to length(s) do begin|28: j:=bCRCHi xor ord(s[i]);|35: bCRCHi:=bCRCLo xor mpbCRCHi[j];|25: bCRCLo:=mpbCRCLo[j] ;|6: end;|54: _hi_CreateEvent(D,@onResult, bCRCHi shl 8 + bCRCLo);|4:end;|0:|4:end.|
link(onResult,11700249:doConvert,[])
}
Add(Edit,4573438,126,105)
{
Width=392
Height=25
Align=2
link(onChange,7259037:doConvert,[])
}
Add(Convertor,11700249,252,105)
{
Mode=6
Digits=4
link(onResult,4317713:doCaption,[])
}
карма: 9

0
Разработчик
Ответов: 26322
Рейтинг: 2147
#8: 2007-12-30 01:15:20 ЛС | профиль | цитата
А вот, почти полный аналог приведенного кода (нет только выборочного размера, считает весь массив)



#sha
Add(MainForm,6651139,378,196)
{
Left=10
Top=10
Ctl3D=0
Position=1
}
Add(InlineCode,6605375,490,196)
{
WorkPoints=#7:doCRC16|
EventPoints=#8:onResult|
DataPoints=#8:IntArray|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|21:uses kol,Share,Debug;|0:|5:const|35: mpbCRCHi: array[0..$FF] of byte=(|82: $00, $C1, $81, $40, $01, $C0, $80, $41, $01, $C0, $80, $41, $00, $C1, $81,|82: $40, $01, $C0, $80, $41, $00, $C1, $81, $40, $00, $C1, $81, $40, $01, $C0,|82: $80, $41, $01, $C0, $80, $41, $00, $C1, $81, $40, $00, $C1, $81, $40, $01,|82: $C0, $80, $41, $00, $C1, $81, $40, $01, $C0, $80, $41, $01, $C0, $80, $41,|82: $00, $C1, $81, $40, $01, $C0, $80, $41, $00, $C1, $81, $40, $00, $C1, $81,|82: $40, $01, $C0, $80, $41, $00, $C1, $81, $40, $01, $C0, $80, $41, $01, $C0,|82: $80, $41, $00, $C1, $81, $40, $00, $C1, $81, $40, $01, $C0, $80, $41, $01,|82: $C0, $80, $41, $00, $C1, $81, $40, $01, $C0, $80, $41, $00, $C1, $81, $40,|82: $00, $C1, $81, $40, $01, $C0, $80, $41, $01, $C0, $80, $41, $00, $C1, $81,|82: $40, $00, $C1, $81, $40, $01, $C0, $80, $41, $00, $C1, $81, $40, $01, $C0,|82: $80, $41, $01, $C0, $80, $41, $00, $C1, $81, $40, $00, $C1, $81, $40, $01,|82: $C0, $80, $41, $01, $C0, $80, $41, $00, $C1, $81, $40, $01, $C0, $80, $41,|82: $00, $C1, $81, $40, $00, $C1, $81, $40, $01, $C0, $80, $41, $00, $C1, $81,|82: $40, $01, $C0, $80, $41, $01, $C0, $80, $41, $00, $C1, $81, $40, $01, $C0,|82: $80, $41, $00, $C1, $81, $40, $00, $C1, $81, $40, $01, $C0, $80, $41, $01,|82: $C0, $80, $41, $00, $C1, $81, $40, $00, $C1, $81, $40, $01, $C0, $80, $41,|82: $00, $C1, $81, $40, $01, $C0, $80, $41, $01, $C0, $80, $41, $00, $C1, $81,|14: $40) ;|0:|35: mpbCRCLo: array[0..$FF] of byte=(|82: $00, $C0, $C1, $01, $C3, $03, $02, $C2, $C6, $06, $07, $C7, $05, $C5, $C4,|82: $04, $CC, $0C, $0D, $CD, $0F, $CF, $CE, $0E, $0A, $CA, $CB, $0B, $C9, $09,|82: $08, $C8, $D8, $18, $19, $D9, $1B, $DB, $DA, $1A, $1E, $DE, $DF, $1F, $DD,|82: $1D, $1C, $DC, $14, $D4, $D5, $15, $D7, $17, $16, $D6, $D2, $12, $13, $D3,|82: $11, $D1, $D0, $10, $F0, $30, $31, $F1, $33, $F3, $F2, $32, $36, $F6, $F7,|82: $37, $F5, $35, $34, $F4, $3C, $FC, $FD, $3D, $FF, $3F, $3E, $FE, $FA, $3A,|82: $3B, $FB, $39, $F9, $F8, $38, $28, $E8, $E9, $29, $EB, $2B, $2A, $EA, $EE,|82: $2E, $2F, $EF, $2D, $ED, $EC, $2C, $E4, $24, $25, $E5, $27, $E7, $E6, $26,|82: $22, $E2, $E3, $23, $E1, $21, $20, $E0, $A0, $60, $61, $A1, $63, $A3, $A2,|82: $62, $66, $A6, $A7, $67, $A5, $65, $64, $A4, $6C, $AC, $AD, $6D, $AF, $6F,|82: $6E, $AE, $AA, $6A, $6B, $AB, $69, $A9, $A8, $68, $78, $B8, $B9, $79, $BB,|82: $7B, $7A, $BA, $BE, $7E, $7F, $BF, $7D, $BD, $BC, $7C, $B4, $74, $75, $B5,|82: $77, $B7, $B6, $76, $72, $B2, $B3, $73, $B1, $71, $70, $B0, $50, $90, $91,|82: $51, $93, $53, $52, $92, $96, $56, $57, $97, $55, $95, $94, $54, $9C, $5C,|82: $5D, $9D, $5F, $9F, $9E, $5E, $5A, $9A, $9B, $5B, $99, $59, $58, $98, $88,|82: $48, $49, $89, $4B, $8B, $8A, $4A, $4E, $8E, $8F, $4F, $8D, $4D, $4C, $8C,|82: $44, $84, $85, $45, $87, $47, $46, $86, $82, $42, $43, $83, $41, $81, $80,|14: $40) ;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|0:|9: public|26: onResult: THI_event;|25: IntArray:THI_Event;|53: procedure doCRC16(var _Data:TData; Index:word);|5: end;|0:|14:implementation|0:|30:procedure THiAsmClass.doCRC16;|20:var dt: TData;|20: Ind: TData;|21: Arr: PArray;|19: bCRCHi: byte;|19: bCRCLo: byte;|19: i: word;|19: j: byte;|21: Res: String;|5:begin|30: Arr := ReadArray(IntArray);|26: if Arr = nil then exit;|15: bCRCHi:=$FF;|15: bCRCLo:=$FF;|40: for i := 0 to Arr._Count - 1 do begin|23: dtInteger(ind,i);|36: if Arr._Get(ind,dt) then begin|45: j := bCRCHi xor byte(toInteger(dt));|42: bCRCHi := bCRCLo xor mpbCRCHi[j];|31: bCRCLo := mpbCRCLo[j];|10: end;|7: end;|43: Res:=Int2Hex((bCRCHi*$100 + bCRCLo), 4);|40: _hi_CreateEvent(_Data,@onResult,Res);|4:end;|0:|4:end.|
link(onResult,6743654:doText,[])
link(IntArray,16444849:Array,[])
}
Add(IntegerArray,16444849,490,140)
{
IntArray=['0'=11,'0'=22,'0'=33]
}
Add(Button,14809462,434,196)
{
Left=20
Top=15
Caption="CRC16"
link(onClick,6605375:doCRC16,[])
}
Add(Edit,6743654,546,196)
{
Left=100
Top=15
Width=80
Text=""
}


Galkov, как всегда, опередил
карма: 22

0
Ответов: 26
Рейтинг: 0
#9: 2008-01-09 18:31:37 ЛС | профиль | цитата
nesco - спасибо за код, выручил, все работает!!!

А вот в код Galkov закралась ошибочка, не верно считает сумму

для контроля даю значение и уже посчитанную (правильно) CRC16 c полиномом A001:

байт CRC16 перевернуто
======================
00h 40BFh BF40h
======================
01h 807Eh 7E80h
======================
02h 813Eh 3E81h
======================
03h 41FFh FF41h
======================
04h 83BEh BE83h
======================
05h 437Fh 7F43h
======================
06h 423Fh 3F42h
======================
07h 82FEh FE82h
======================
08h 86BEh BE86h
======================
09h 467Fh 7F46h
======================
0Ah 473Fh 3F47h
======================
0Bh 87FEh FE87h
======================
0Ch 45BFh BF45h
======================
0Dh 857Eh 7E85h
======================
0Eh 843Eh 3E84h
======================
0Fh 44FFh FF44h
======================

В любос случае ВСЕМ огромное спасибо за участие...
карма: 1

0
Ответов: 9906
Рейтинг: 351
#10: 2008-01-09 19:54:47 ЛС | профиль | цитата
N0D писал(а):
вот в код Galkov закралась ошибочка, не верно считает сумму

Видите ли N0D

У белых людей не принято сообщать эксперту диагноз, без приведения схемы эксперимента, его подтверждающего
О том, что говорят эксперты в таких случаях, Вы можете ознакомиться по следующим ссылкам:
http://forum.web-hack.ru/html/rules2.html
http://www.chiark.greenend.org.uk/~sgtatham/bugs-ru.html

Не вдаваясь в детали, могу сообщить, что Ваше заключение не соответствует действительности: считает именно то, что Вы и показали (для одного байта, конечно)
Тем более, что ошибке очень сложно "закрасться", если ничего нового не пишется, а производится копирование Вашего кода

карма: 9

0
Ответов: 26
Рейтинг: 0
#11: 2008-01-09 21:48:17 ЛС | профиль | цитата
Уважаемый Galkov, не принимайте мое замечание так близко к сердцу, я не имел намерений вас обидеть и тем более оскорбить.
Эта незначительная ошибка ни сколько ни уничижает ваших заслуг, и огромное Вам спасибо за оказанную помощь.

С моей стороны информация про ошибку действительно прозвучала невразумительно - исправляюсь:
Приведенный Вами, вышеуказанный код, в сообщении от 30 Dec 2007 00:55 без изменений и дополнений был скомпилирован в среде разработки HiAsm компилятором FPC.
При использовании, полученной в результате компилирования, программы в расчете CRC16 с полиномом A001, были получены следующие результаты:

для введенного значения "0" получен результат "BF54"
для введенного значения "1" получен результат "7E94"
для введенного значения "2" получен результат "3E95"
для введенного значения "3" получен результат "FF55"
для введенного значения "4" получен результат "BE97"

Сверяя полученыые результаты с достоверно извесными данными указанными мною в сообщении от 09 Jan 2008 18:31 - можно сделать вывод о неверности вычислений CRC16 с полиномом A001 данной программой.

Еще есть возражение по сказанному Вами:
Тем более, что ошибке очень сложно "закрасться", если ничего нового не пишется, а производится копирование Вашего кода


Ну во первых код не мой, а мною приведенный.
Во вторых не лукавьте, код был Вами модифицирован в строках:
обьявление цикла у вас "for i:=1 to length(s) do begin"
в оригинале "for i:=0 to cwSize-1 do begin"
строка получения результата у вас "_hi_CreateEvent(D,@onResult, bCRCHi shl 8 + bCRCLo)"
в оригинале "Result:=IntToHex((bCRCHi*$100 + bCRCLo),2)"
"if Length(Result)=3 then Result:='0'+Result"

Собственно в этих строках и заключен весь смысл вычисления.
Если бы нужно было просто скопировать я бы не просил помощи на форуме, а взял бы и скопировал. Но к сожалению я плохо знаю синтаксис языка и не знаю многих тонкостей Delphi, и поэтому я здесь.

Кстати у nesco все получилось, и работает, и считает правильно, хотя он тоже брал за основу мною приведенный код.
Разные люди - разные подходы - разные результаты.

И еще раз Вам говорю, не принимайте мое замечание так близко к сердцу. Людям свойственно ошибаться, это их нормальное состояние.

карма: 1

0
Ответов: 9906
Рейтинг: 351
#12: 2008-01-09 22:18:29 ЛС | профиль | цитата
N0D писал(а):
для введенного значения "1" получен результат "7E80"

Числовое значение символа "1" равно 49, или $31 в шестнадцатеричной
В той же схеме перед компиляцией введите а поле Edit строку "_1", а после компиляции и запуска - нажмите Del (чтобы стереть "_" и получить событие onChange)
Получится долгожданное ""7E80"

В HiAsm числовое значение 49 превращается в символ (строка длиной в один символ) "1" элементом Convertor с Mode=IntToChar
Как, естественно, и любые другие числа (точнее - их младший байт) в соответствующий символ

N0D писал(а):
не принимайте мое замечание так близко к сердцу, я не имел намерений вас обидеть и тем более оскорбить

Этого опасаться не следует - меня обидеть невозможно
Причина же в том, что я не могу себе позволить выложить пост, опираясь только на свои предположения об ошибке пользователя.
Хотя я и был на 99% уверен, что все происходило именно так, как Вы описали.
Теперь (и не раньше ) - могу, что и сделал.

Форма...
Так я их уже столько испробовал, с нулевым успехом
Так что, сейчас как раз тот счастливый и редкий случай, что ДОЕХАЛО. Какие уж тут обиды

карма: 9

0
Ответов: 26
Рейтинг: 0
#13: 2008-01-09 22:43:15 ЛС | профиль | цитата
Штож, я понял суть своих заблуждений, осознаю...

Получится долгожданное ""7E94"
возможно Вы имели ввиду "7E80"

В той же схеме перед компиляцией введите а поле Edit строку " 1", а после компиляции и запуска - нажмите Del
про фишку с слешем я не знал однако я пытался вводить значения по ASCII коду (зажать Alt, набрать на нумлок клавиатуре десятичное значение по таблице, потом отпустить Alt) но не вышло, теперь знаю почему. Учту на будущее.

Ну чтож, я рад что все разрешилось, мы друг друга поняли.
карма: 1

0
Ответов: 9906
Рейтинг: 351
#14: 2008-01-09 22:47:58 ЛС | профиль | цитата
ТОЧНО -- не с того поста цифирьку скопировал
карма: 9

0
Разработчик
Ответов: 26322
Рейтинг: 2147
#15: 2008-01-09 23:39:23 ЛС | профиль | цитата
N0D, только не пробуй "", не прокатит.
карма: 22

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)