AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

VBA Script in Delphi umsetzen

Ein Thema von BUllweih · begonnen am 3. Dez 2013 · letzter Beitrag vom 4. Dez 2013
Antwort Antwort
Seite 4 von 4   « Erste     234
BUllweih

Registriert seit: 17. Jul 2007
Ort: Medard
17 Beiträge
 
Delphi XE7 Enterprise
 
#31

AW: VBA Script in Delphi umsetzen

  Alt 4. Dez 2013, 09:09
Hallo,

Also wenn ich aus

Delphi-Quellcode:
  For i := 1 To length(Data) do
   begin
     lCRC32 := (((lCRC32 shr 8) And $FFFFFF) Xor
       Crc32Table1[(lCRC32 and $FF) xor Ord(Data[i])]);
   end;
mache

Delphi-Quellcode:
  For i := 1 To length(Data) do
   begin
     lCRC32 := (((lCRC32 shr 32) And $FFFFFF) Xor
       Crc32Table1[(lCRC32 and $FF) xor Ord(Data[i])]);
   end;
bekomme ich das Ergebnis was auch VB bringt.

MfG
Michael
Michael

Geändert von BUllweih ( 4. Dez 2013 um 09:29 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.252 Beiträge
 
Delphi 10.4 Sydney
 
#32

AW: VBA Script in Delphi umsetzen

  Alt 4. Dez 2013, 09:24
Wenn ich mich nicht täusche, müsste das aber
Delphi-Quellcode:
  For i := 1 To length(Data) do
   begin
     lCRC32 := Crc32Table1[(lCRC32 and $FF) xor Ord(Data[i])];
   end;
entsprechen, oder?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
BUllweih

Registriert seit: 17. Jul 2007
Ort: Medard
17 Beiträge
 
Delphi XE7 Enterprise
 
#33

AW: VBA Script in Delphi umsetzen

  Alt 4. Dez 2013, 09:28
Wenn ich das tue bekomme ich wieder kompletten Käse gegenüber VB raus.
Michael
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.252 Beiträge
 
Delphi 10.4 Sydney
 
#34

AW: VBA Script in Delphi umsetzen

  Alt 4. Dez 2013, 09:31
Dann habe ich wohl einen Denkfehler gemacht. Aber sehr merkwürdig, das Ganze
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
38.368 Beiträge
 
Delphi 10.4 Sydney
 
#35

AW: VBA Script in Delphi umsetzen

  Alt 4. Dez 2013, 09:46
Delphi-Quellcode:
  For i := 1 To length(Data) do
   begin
     lCRC32 := (((lCRC32 shr 32) And $FFFFFF) Xor
       Crc32Table1[(lCRC32 and $FF) xor Ord(Data[i])]);
   end;
Dann solltest du dringend mal das VBScript reparieren.

((lCRC32 shr 32) And $FFFFFF) ist immer 0, denn lCRC32 ist 32 Bit und wenn man da den Inhalt um 32 Bit verschiebt, dann ist es leer, womit ein Großteil des CRCs verloren geht.
Vermute ich zwar weniger, aber scheint hier nahezuliegen, also im Problemfall könnte SHR auf die 32 allergisch reagieren und da eine Verschiebung von 0 machen.

Wie sieht es damit aus?
Delphi-Quellcode:
  For i := 1 To length(Data) do
   begin
     lCRC32 := ((lCRC32 And $FFFFFF) Xor
       Crc32Table1[(lCRC32 and $FF) xor Ord(Data[i])]);
   end;

[edit]
Das VBS ist Schrott und rechnet falsch.
Das liegt an der fehlerhaften Klammersetzung
Code:
  For i = 1 To Len(Data)
      lCRC32 = (((lCRC32 And &HFFFFFF00 \ &H100) And &HFFFFFF) Xor _
      Crc32Table((lCRC32 And &HFF) Xor AscW(Mid(Data, i, 1))))
Das, was ich schon profezeit hatte. Bei (lCRC32 And &HFFFFFF00 \ &H100) wird zuerst / und dann AND aufgelöst.
Also (lCRC32 And (&HFFFFFF00 \ &H100)) , bzw. (lCRC32 And &H00FFFFFF) , statt dem beabsichtigten ((lCRC32 And &HFFFFFF00) \ &H100) .



Entweder du reparierst die defekte VBS-Funktion oder du solltest diese Funktion umbenennen und im Delphi dann eine "gleich" falsch rechnende Funktion verwenden.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014

Geändert von himitsu ( 4. Dez 2013 um 09:56 Uhr)
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
5.650 Beiträge
 
Delphi 10 Seattle Enterprise
 
#36

AW: VBA Script in Delphi umsetzen

  Alt 4. Dez 2013, 10:36
Was bräuchte man denn, um als VBA-Laie das überhaupt zu testen und zu debuggen?

Eine normale Office-Installation? Irgendwas von einem aktuellen Visual Studio aus?
  Mit Zitat antworten Zitat
Morphie

Registriert seit: 27. Apr 2008
Ort: Rahden
630 Beiträge
 
#37

AW: VBA Script in Delphi umsetzen

  Alt 4. Dez 2013, 10:52
Im Prinzip reicht ein Texteditor und eine Textdatei mit der Dateiendung .vbs
Ansonsten ja, eine Office-Installation reicht... Oder eben ein Visual Studio 6.0 für VB6 (alles was danach kam ist .NET und nicht mit diesem Code kompatibel)
  Mit Zitat antworten Zitat
BUllweih

Registriert seit: 17. Jul 2007
Ort: Medard
17 Beiträge
 
Delphi XE7 Enterprise
 
#38

AW: VBA Script in Delphi umsetzen

  Alt 4. Dez 2013, 10:52
Ich habe die Scripte von diesen Panel in Excel eingebaut und Teste dort alles.
Michael
Finde heraus was Du nicht gut kannst. Dann lass es bleiben.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
38.368 Beiträge
 
Delphi 10.4 Sydney
 
#39

AW: VBA Script in Delphi umsetzen

  Alt 4. Dez 2013, 11:05
Ob/wie man VBScripts debuggen kann, weiß ich auch nicht,

aber das Rechenergebnis kann man hiermit testen
http://www.zorc.breitbandkatze.de/crc.html

So wie es aussieht, sollte es eine ganz normale CRC32-Implementierung werden, mit dem Polynom $4C11DB7, aber sie wurde im VBScript fehlerhaft implementiert.
Zumindestens wenn ich mir die ersten Ergebnisse des Delphi-Codes ansehe. Denn die Webseite liefert das selbe Ergebnis wie testuser->B9851374 .

Wenn das VBScript korrekt gewesen wäre, hätte man hier garnichts neuentwickeln müssen, da viele fertige CRC32-Funktionen für Delphi schon mit diesem Polynom arbeiten oder dieses öfters einstellbar ist.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014

Geändert von himitsu ( 4. Dez 2013 um 11:08 Uhr)
  Mit Zitat antworten Zitat
BUllweih

Registriert seit: 17. Jul 2007
Ort: Medard
17 Beiträge
 
Delphi XE7 Enterprise
 
#40

AW: VBA Script in Delphi umsetzen

  Alt 4. Dez 2013, 11:19
Ob/wie man VBScripts debuggen kann, weiß ich auch nicht,

aber das Rechenergebnis kann man hiermit testen
http://www.zorc.breitbandkatze.de/crc.html

So wie es aussieht, sollte es eine ganz normale CRC32-Implementierung werden, mit dem Polynom $4C11DB7, aber sie wurde im VBScript fehlerhaft implementiert.
Zumindestens wenn ich mir die ersten Ergebnisse des Delphi-Codes ansehe. Denn die Webseite liefert das selbe Ergebnis wie testuser->B9851374 .

Wenn das VBScript korrekt gewesen wäre, hätte man hier garnichts neuentwickeln müssen, da viele fertige CRC32-Funktionen für Delphi schon mit diesem Polynom arbeiten oder dieses öfters einstellbar ist.
Genau diese Hoffnung hatte ich ja am Anfang gehabt.
Dachte es sei eine ganz normale CRC32 Funktion, war aber Leider auf dem Holzweg.

Aber da diese Vermurkste Version schon in so vielen Panels verbaut ( Programmiert ) ist, muss ich wohl oder
übel das etwas andere Model in Delphi einbinden um nicht alles Plattformen updaten zu müssen. ( Was bei der Menge und Standorte nicht geht )

Also erst mal vielen Dank für die großartige Hilfe Eurer Seits.

MfG
Michael aka Bulli
Michael
Finde heraus was Du nicht gut kannst. Dann lass es bleiben.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 +2. Es ist jetzt 12:21 Uhr.
Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf