![]() |
vb function zu delphi konvertieren
hallo =),
ich möchte gerne eine vb funktion zu delphi konvertieren und bekomm nun allerdings ständig fehlermeldungen vom compiler mit denen ich nichts anfangen kann
Code:
in der zeile: "ch:= Ord(Copy(strng, i +1, 1));" heißt
function calccrc(strng: string; lenstr: integer): integer;
var crc, ch, i, j: integer; begin for i:= 0 to lenstr -1 do ch:= Ord(Copy(strng, i +1, 1)); for j:= 0 to 7 do if ((crc Xor ch) And 1) Then crc:= (int((crc /2)) Xor 40961) else crc:= Int(crc / 2); end; ch:= Int(ch / 2); end; end; result:= crc; end; es z.b. inkompatible typen in "if ((crc Xor ch) And 1) Then" Ausdruck muss Boolean sein crc:= (int((crc /2)) Xor 40961) Operation ist auf Operantentyp nicht anwendbar crc:= Int(crc / 2); inkompatible typen Integer und extented usw. hat jemand beim überfliegen meines versuches in delphi vielleicht ein paar gundsetzliche fehler gefunden? die orginal funktion:
Code:
Function CALCCRC(strng$, lenstr)
Dim crc As Long Dim ch As Long Dim i As Long Dim j As Long For i = 0 To lenstr - 1 ch = Asc(Mid(strng$, i + 1, 1)) For j = 0 To 7 If ((crc Xor ch) And 1) Then crc = (Int((crc / 2)) Xor 40961) Else crc = Int(crc / 2) End If ch = Int(ch / 2) Next j Next i CALCCRC = crc End Function |
Re: vb function zu delphi konvertieren
Code:
Das sollte es sein ;)
function calccrc(strng: string[color=#ff0009][s]; lenstr: integer[/s][/color]): integer;
var crc, ch, i, j: integer; begin [color=#ff0009]CRC := 0;[/color] for i := [color=#ff0009]1 to Length(Strng)[/color] do ch := [color=#ff0009]Ord(strng[I]);[/color] for j := 0 to 7 do if ((crc Xor ch) And 1)[color=#ff0009] <> 0[/color] Then crc:= ([color=#ff0009]Trunc(crc /2)[/color] Xor 40961) else crc:= [color=#ff0009]Trunc(crc /2)[/color]; end; ch:= [color=#ff0009]Trunc(crc /2)[/color]; end; end; result:= crc; end; ...:cat:... |
Re: vb function zu delphi konvertieren
oh das ging aber schnell, dankeschön =)
und es scheint auch schon fast zu funktionieren *gg* aber in der zeile "ch:= Trunc(crc /2);" meckert der compiler noch einmal: "Dekleration erwartet, aber Bezeichner 'ch' gefunden" Ich denke mal das das end if auf der vb funktion noch nicht richtig umgesetzt ist |
Re: vb function zu delphi konvertieren
Ich sehe gerade, daß Dir die Pascal-Syntax noch gar nicht liegt, da fehlen ein paar begins
Code:
:!: Beachte das durchgestrichene Semikolon nach der Else-Anweisung ;)
function calccrc(strng: string): integer;
var crc, ch, i, j: integer; begin CRC := 0; for i := 1 to Length(Strng) do [color=#ff0000]begin[/color] ch := Ord(strng[I]); for j := 0 to 7 do [color=#ff0000]begin[/color] if ((crc Xor ch) And 1) <> 0 Then crc:= (Trunc(crc /2) Xor 40961) else crc:= Trunc(crc /2)[s][color=#ff0000];[/color][/s] end; ch:= Trunc(crc /2); end; end; result:= crc; end; ...:cat:... |
Re: vb function zu delphi konvertieren
nun meckert er nur noch an der Stelle
"result:= crc;" und meint "Deklaration erwartet, aber Bezeichner 'result' gefunden" :gruebel: |
Re: vb function zu delphi konvertieren
Args, die VBler :wall:
Okay, kurzer Exkurs in die If-Then-Else Welt von Pascal ;) In der Regeln geht mit jedem END ein BEGIN (es gibt wenige Ausnahmen). Du hast getippt:
Delphi-Quellcode:
Hier hast Du ein END ohne BEGIN. Es gibt zwei Möglichkeiten. Da Du nur eine Anweisung je Zweig hast, lasse die BEGIN-END Blöcke weg (heutzutage manchmal abwertend beurteilt)
if ..... then
Anweisung else Anweisung end;
Delphi-Quellcode:
oder Du schreibst schöne Blöcke. Ist imho besser zu lesen.
if .... then
Anweisung else Anweisung;
Delphi-Quellcode:
...:cat:...
if .... then
BEGIN Anweisung(en); END else BEGIN Anweisung(en); END; |
Re: vb function zu delphi konvertieren
dann hast du vor dem result := crc ein end; zuviel.
vermutlich genau an der stelle wo sakura dein ; durchgestrichen hat und nen end hingeklemmt hat :wink: <edit> oh das end war ja schon da. Also dein fehler, aber mit Sakuras if-then lektion bekommste das schon hin 8) <edit> |
Re: vb function zu delphi konvertieren
Zitat:
|
Re: vb function zu delphi konvertieren
verdammt, zulangsam gewesen :stupid:
|
Re: vb function zu delphi konvertieren
Man seid ihr alle fix :roll: :mrgreen:
...:cat:... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:50 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz