Einzelnen Beitrag anzeigen

mrhyde

Registriert seit: 3. Jan 2008
4 Beiträge
 
Delphi 2006 Professional
 
#3

Re: VB Code zu Delphi - Probleme mit Bytearray

  Alt 2. Feb 2008, 14:34
Erstmal danke DeddyH für deine Antwort.

Ja, das mit dem Array hab ich auch schon probiert, nur das Problem ist, dass ich wie im VB Besipiel 2 Zeichen in 1 Byte quetschen muss.
Ich weiss nicht wie es VB intern funktioniert, weil ja die Typkonvertierung der Variablen dort autom. geschieht - auf jedenfalls geht es dort. Nur wenn ich das Ganze in Delphi umschreiben möchte, dann bringt er mir einen Fehler.

Anbei mal mein Delphi Code:

Delphi-Quellcode:
procedure ByteCrc(data:byte;var crc:word);
var i:BYTE;
Begin
    for i:=0 to 7 do
    begin
    if (( data and $01) xor ( crc and $0001) <> 0 ) then
        begin
        crc:=crc shr 1; //1 Pos nach rechts schieben
        crc:=crc xor $A001;
        end
    else crc:=crc shr 1;
    data:=data shr 1;
    end;
end;

function StringCrc(s:shortstring):word;
var len,i:integer;
begin
    result:=0;
    len:=length(s);
    for i:=1 to len do
      if i mod 2 = 0 then //alle 2 Zeichen
        ByteCrc(ord(s[i]),result); // CRC Byteweise bilden << Hier sollten 2 Zeichen als Byte der Prozedur ByteCRC übergeben werden.
end;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var s:shortstring;
    h:word;
begin
    s:=edit1.Text;

    h:=StringCrc(s);
    Edit2.Text:=IntToHex(h,4);

end;
Ich weiss es hört sich komisch an mit 2 Zeichen in einem Byte, aber in VB funktionierts.
Vielleicht weisst jemand weiter.
  Mit Zitat antworten Zitat