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 2 von 2     12   
endeffects

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

Re: vb function zu delphi konvertieren

  Alt 30. Jun 2004, 10:42
also ich hab die schleifen nu schon mehrmals durchgezählt
da ist meines dafürhaltens kein end; zu viel *gg

ich hab vorher halt überwiegend mit php gearbeitet,
da mußte man auf solche dinge keine rücksicht nehmen

tut mir leid sakura *gg*, das ist erst mein 5ter Tag mit Delphi
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#12

Re: vb function zu delphi konvertieren

  Alt 30. Jun 2004, 10:44
Zitat von endeffects:
also ich hab die schleifen nu schon mehrmals durchgezählt
da ist meines dafürhaltens kein end; zu viel *gg
Es sind nicht die Schleifen, es ist Dein if-then-else-end; Siehe Generalissimos Code

Zitat von endeffects:
tut mir leid sakura *gg*, das ist erst mein 5ter Tag mit Delphi
Herzlich willkommen im Mekka der Programmierer

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

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#13

Re: vb function zu delphi konvertieren

  Alt 30. Jun 2004, 10:45
Zitat von sakura:
crc:= Trunc(crc /2);
Noch eine kleine Optimierung (statt die FPU zu bemühen, kann man auch Integerarithmetik verwenden):
Delphi-Quellcode:
crc:= crc div 2;
// alternativ kann man auch um ein Bit nach rechts schieben
crc := crc shr 1;
PS: FPU = floating processing unit = Flieskomma-Prozessor, könnte man auch zu den Akronymen aufnehmen
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#14

Re: vb function zu delphi konvertieren

  Alt 30. Jun 2004, 10:47
Zitat von shmia:
Noch eine kleine Optimierung (statt die FPU zu bemühen, kann man auch Integerarithmetik verwenden):
Stimmt, aber zu meiner Verteidigung muss ich sagen, daß der VB-Code auch auf Real-Division (/) und nicht auf Integer-Division (\) basierte Und wir wollten den Code ja korrekt übersetzen und keine Vermutungen starten

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

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

Re: vb function zu delphi konvertieren

  Alt 30. Jun 2004, 10:55
ihr seid einfach viel zu schnell *gg*,
also ersteinmal danke euch allen für die
rasche hilfe, an der funktion selbst meckert
der compiler nun auf jeden fall nicht mehr *gg*

wenn ich allerdings mit showmessage(calccrc('123456)');
über ein onclick verfahren die funktion aufrufe
dann heißt es an dieser stelle inkompatible typen:
'string' und 'integer', aber: calccrc(strng: string):integer;
übergeben wird doch strng als string und ausgegeben
werden soll eine integer zahl (crc die als solche definiert ist)
  Mit Zitat antworten Zitat
Benutzerbild von Smokey
Smokey

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

Re: vb function zu delphi konvertieren

  Alt 30. Jun 2004, 11:07
eben.
Deine funktion liefert nen Integer zurück und Showmessage erwartet nen String.
Also musst du dein Resultat von integer nach String konvertieren (mit intToStr() )

Die gemütlichen php Zeiten bei denen Datentypen relativ egal waren sind nun vorbei
Greif dir ein gutes Stück Fleisch auf deinem Weg nach draussen !!!
  Mit Zitat antworten Zitat
endeffects

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

Re: vb function zu delphi konvertieren

  Alt 30. Jun 2004, 11:13
du bist soooo fies *gg*

also nocheinmal sehr vielen lieben Dank für die Hilfe =))
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#18

Re: vb function zu delphi konvertieren

  Alt 30. Jun 2004, 11:31
Zitat von Smokey:
Die gemütlichen php Zeiten bei denen Datentypen relativ egal waren sind nun vorbei
Warte noch ein bisschen, und Du wirst Dich aufregen, daß andere Sprache so schlampig (nicht flexibel ) sind, was es die Datentypenbehandlung betrifft.

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

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

Re: vb function zu delphi konvertieren

  Alt 30. Jun 2004, 12:12
na hoffentlich dauert das nicht zu lange *gg

irgendwo steckt allerdings noch der wurm drin,
die funktion schaut bei mir nun so aus:

Code:
function calccrc(strng: string): integer;
var
  crc, ch, i, j: integer;
begin
  CRC := 0;
  for i := 1 to Length(Strng)-1 do
  begin
    ch := Ord(strng[i]);
//hier hab ich geprüft ob ch und crc die richtigen werte haben
//für ch ist das der fall, crc liefert allerdings andere werte
    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);
      ch:= Trunc(crc /2);
    end;
  end;
  result:= crc;
end;
showmessage(intToStr(calccrc('123'))); müßte eigentlich
den wert 17812 liefern, erhalten tu ich aber 47105
meine funktionierende php lösung sah damals so aus:

Code:
   $packetlen = strlen($packet)-1;
   for ($i=$packetlen; $i > 0; $i--) {
      $ch = ord(substr($packet, $h++, 1));
      for($j=0; $j <= 7; $j++) {
         if (($crc ^ $ch) & 1) {
            $crc = ($crc / 2) ^ 40961;
         } else {
            $crc = $crc / 2;
         } 
         $ch = $ch / 2;
      }
   }
   
   return $crc;
allerdings hatte ich auch hier ewig mit der
inneren for schleife gekämpft bis ich letztendlich
den richtigen wert zurückgegeben bekommen habe
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#20

Re: vb function zu delphi konvertieren

  Alt 30. Jun 2004, 12:17
Der Unterschied:

Code:
function calccrc(strng: string): integer;
var
  crc, ch, i, j: integer;
begin
  CRC := 0;
  for i := 1 to Length(Strng)-1 do
  begin
    ch := Ord(strng[i]);
//hier hab ich geprüft ob ch und crc die richtigen werte haben
//für ch ist das der fall, crc liefert allerdings andere werte
    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);
      ch:= Trunc([color=#ff0000]crc[/color] /2);
    end;
  end;
  result:= crc;
end;
Code:
   $packetlen = strlen($packet)-1;
   for ($i=$packetlen; $i > 0; $i--) {
      $ch = ord(substr($packet, $h++, 1));
      for($j=0; $j <= 7; $j++) {
         if (($crc ^ $ch) & 1) {
            $crc = ($crc / 2) ^ 40961;
         } else {
            $crc = $crc / 2;
         } 
         $ch = [color=#ff0000]$ch[/color] / 2;
      }
   }
   
   return $crc;
......
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 18:34 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