Einzelnen Beitrag anzeigen

MrLolli

Registriert seit: 5. Aug 2008
8 Beiträge
 
#1

Anfänger braucht Hilfe, Java nach Delphi

  Alt 5. Aug 2008, 03:51
Hallo liebe Delphi-Praxis Mitglieder,

ich beschäftige mich seit einigen Wochen mit Delphi, und bräuchte Hilfe bei der Übersetzung eines kleinen Code-Schnippsels.

Zitat:
private int headerSize, keyIndex, prevEncrypted;
private byte[] sessionKey;

...

public void encryptHeader(byte[] packet)
{
for (int t = 0; t < headerSize; t++)
{
keyIndex %= sessionKey.length;
uint8 x = (packet[t] ^ sessionKey[keyIndex]) + prevEncrypted;
++keyIndex;
prevEncrypted = x;
packet[t] = x;
}
}
Was ich bisher habe:

Delphi-Quellcode:
procedure EncryptHeader(var packet, len: Integer);
var
  t, keyIndex, prevEncrypted: Integer;
  packetArray: Array of Byte;
begin
  SetLength(packetArray, len);
  move(packet, packetArray[1], len);

  for t := 1 to 4 do
  begin
    keyIndex := 40;
    x := (packetArray[t] ^ sessionkey[keyIndex]) + prevEncrypted;
    keyIndex := keyIndex + 1;

    prevEncrypted := x;
    packetArray[t] := x;
  end;
end;
headerSize ist grundsätzlich 4 und keyIndex 40 daher die feste Zuweisung.

Bei folgender Zeile komme ich nicht weiter, weil mir der Delphi Compiler meldet
[DCC Fehler] Unit1.pas(296): E2017 Zeigertyp erforderlich

Ich habe mich mit Zeigern bisher eigentlich gar nicht befasst, und wüsste nun nicht was ich hier ändern soll.

x := (packetArray[t] ^ sessionkey[keyIndex]) + prevEncrypted; Ebenfalls könnte ich mir vorstellen das "keyIndex := 40" nicht ganz stimmt, da der Wert in Java mit "%=" statt mit "=" übergeben wird.

Habe nun schon Nächte gegrübelt, aber komme bei dieser einen Funktion nicht weiter.

Bitte habt etwas Erbarmen mit einen Delphi-Anfänger, habe gleich ein etwas umfangreicheres Projekt zum Lernen gestartet

Grüße,
MrLolli
  Mit Zitat antworten Zitat