AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

vb function zu delphi konvertieren

Ein Thema von endeffects · begonnen am 30. Jun 2004 · letzter Beitrag vom 30. Jun 2004
Antwort Antwort
Seite 1 von 2  1 2      
endeffects

Registriert seit: 27. Jun 2004
450 Beiträge
 
#1

vb function zu delphi konvertieren

  Alt 30. Jun 2004, 10:52
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:
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;
in der zeile: "ch:= Ord(Copy(strng, i +1, 1));" heißt
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
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#2

Re: vb function zu delphi konvertieren

  Alt 30. Jun 2004, 10:57
Code:
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;
Das sollte es sein

......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
endeffects

Registriert seit: 27. Jun 2004
450 Beiträge
 
#3

Re: vb function zu delphi konvertieren

  Alt 30. Jun 2004, 11:06
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
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#4

Re: vb function zu delphi konvertieren

  Alt 30. Jun 2004, 11:17
Ich sehe gerade, daß Dir die Pascal-Syntax noch gar nicht liegt, da fehlen ein paar begins

Code:
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;
Beachte das durchgestrichene Semikolon nach der Else-Anweisung

......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
endeffects

Registriert seit: 27. Jun 2004
450 Beiträge
 
#5

Re: vb function zu delphi konvertieren

  Alt 30. Jun 2004, 11:31
nun meckert er nur noch an der Stelle
"result:= crc;" und meint "Deklaration
erwartet, aber Bezeichner 'result' gefunden"
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#6

Re: vb function zu delphi konvertieren

  Alt 30. Jun 2004, 11:35
Args, die VBler

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:
if ..... then
   Anweisung
else
   Anweisung
end;
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)
Delphi-Quellcode:
if .... then
  Anweisung
else
  Anweisung;
oder Du schreibst schöne Blöcke. Ist imho besser zu lesen.
Delphi-Quellcode:
if .... then
BEGIN
  Anweisung(en);
END
else
BEGIN
  Anweisung(en);
END;
......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Benutzerbild von Smokey
Smokey

Registriert seit: 10. Nov 2003
Ort: Puerto de la Cruz
158 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: vb function zu delphi konvertieren

  Alt 30. Jun 2004, 11:37
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

<edit> oh das end war ja schon da. Also dein fehler, aber mit Sakuras if-then lektion bekommste das schon hin 8) <edit>
Greif dir ein gutes Stück Fleisch auf deinem Weg nach draussen !!!
  Mit Zitat antworten Zitat
Generalissimo

Registriert seit: 28. Aug 2003
187 Beiträge
 
Delphi 6 Enterprise
 
#8

Re: vb function zu delphi konvertieren

  Alt 30. Jun 2004, 11:39
Zitat von sakura:
Ich sehe gerade, daß Dir die Pascal-Syntax noch gar nicht liegt, da fehlen ein paar begins

Code:
function calccrc(strng: string): integer;
var
  crc, ch, i, j: integer;
begin
  CRC := 0;
  for i := 1 to Length(Strng) do
  begin
    ch := Ord(strng[I]);
    for j := 0 to 7 do
    begin
      if ((crc Xor ch) And 1) <> 0 Then
        crc:= (Trunc(crc /2) Xor 40961)
      else
        crc:= Trunc(crc /2)[color=#ff0000];[/color]
      [s][color=#ff0000]end;[/color][/s]
      ch:= Trunc(crc /2);
    end;
  end;
  result:= crc;
end;
ein end; zuviel
  Mit Zitat antworten Zitat
Generalissimo

Registriert seit: 28. Aug 2003
187 Beiträge
 
Delphi 6 Enterprise
 
#9

Re: vb function zu delphi konvertieren

  Alt 30. Jun 2004, 11:40
verdammt, zulangsam gewesen
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#10

Re: vb function zu delphi konvertieren

  Alt 30. Jun 2004, 11:41
Man seid ihr alle fix

......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:04 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz