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 3 von 4     123 4   
BUllweih

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

AW: VBA Script in Delphi umsetzen

  Alt 3. Dez 2013, 15:06
Im VBA Script darf ich ja nix ändern. So ist das in ca. 200 Touchpanels programmiert.

Ich Versuche nur dieses Script in Delphi zu portieren um die Passwortvergabe
über das Programm zu ermöglichen.

Die Firma die das Programm mal in VB geschrieben hat existiert nicht mehr.
Das Prog ist defekt und läuft nicht mehr. (keine Quellen ausser das blöde Script)
Und ich habe kein VB sondern nur Delphi.

Jetzt versuche ich das Prog in Delphi umzusetzen.
Michael
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#22

AW: VBA Script in Delphi umsetzen

  Alt 3. Dez 2013, 15:10
Dennoch kannst du doch im Script die Änderung mal machen, um zu sehen ob dann die Ausgabe "gleich falsch" wie in Delphi ist. Dann lässt sich das umgekehrt lösen.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
BUllweih

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

AW: VBA Script in Delphi umsetzen

  Alt 3. Dez 2013, 15:18
Habe die DIM als long deklariert und die Ausgabe ist noch genauso wie vorher.
Langsam drehe ich mit dem VB durch.
Michael
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.752 Beiträge
 
Delphi 10.4 Sydney
 
#24

AW: VBA Script in Delphi umsetzen

  Alt 3. Dez 2013, 15:30
..da die CRD32 Tabelle statisch ist, d.h. unabhängig von den übergebenen Daten,
kannst Du diese aus dem VBA Programm abspeichern und im Delphi-Programm einlesen
und verwenden.

Ist nicht das Gelbe vom Ei - aber sollte funktionieren.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
BUllweih

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

AW: VBA Script in Delphi umsetzen

  Alt 3. Dez 2013, 15:45
Das habe ich jetzt mal gemacht und die Tabelle mit den Werten vom VBA Script gefüttert.

Das Lustigste ist das es immer noch nicht geht.

Delphi-Quellcode:
var
  Form1: TForm1;
  Crc32Table : array[0..255] of integer =
  (0,1996959894,-301047508,-1727442502,124634137,1886057615,-379345611,-1637575261,249268274,2044508324,-522852066,
-1747789432,162941995,2125561021,-407360249,-1866523247,498536548,1789927666,-205950648,-2067906082,450548861,
1843258603,-187386543,-2083289657,325883990,1684777152,-43845254,-1973040660,335633487,1661365465,-99664541,
-1928851979,997073096,1281953886,-715111964,-1570279054,1006888145,1258607687,-770865667,-1526024853,901097722,
1119000684,-608450090,-1396901568,853044451,1172266101,-589951537,-1412350631,651767980,1373503546,-925412992,
-1076862698,565507253,1454621731,-809855591,-1195530993,671266974,1594198024,-972236366,-1324619484,795835527,
1483230225,-1050600021,-1234817731,1994146192,31158534,-1731059524,-271249366,1907459465,112637215,-1614814043,
-390540237,2013776290,251722036,-1777751922,-519137256,2137656763,141376813,-1855689577,-429695999,1802195444,
476864866,-2056965928,-228458418,1812370925,453092731,-2113342271,-183516073,1706088902,314042704,-1950435094,
-54949764,1658658271,366619977,-1932296973,-69972891,1303535960,984961486,-1547960204,-725929758,1256170817,
1037604311,-1529756563,-740887301,1131014506,879679996,-1385723834,-631195440,1141124467,855842277,-1442165665,
-586318647,1342533948,654459306,-1106571248,-921952122,1466479909,544179635,-1184443383,-832445281,1591671054,
702138776,-1328506846,-942167884,1504918807,783551873,-1212326853,-1061524307,-306674912,-1698712650,62317068,
1957810842,-355121351,-1647151185,81470997,1943803523,-480048366,-1805370492,225274430,2053790376,-468791541,
-1828061283,167816743,2097651377,-267414716,-2029476910,503444072,1762050814,-144550051,-2140837941,426522225,
1852507879,-19653770,-1982649376,282753626,1742555852,-105259153,-1900089351,397917763,1622183637,-690576408,
-1580100738,953729732,1340076626,-776247311,-1497606297,1068828381,1219638859,-670225446,-1358292148,906185462,
1090812512,-547295293,-1469587627,829329135,1181335161,-882789492,-1134132454,628085408,1382605366,-871598187,
-1156888829,570562233,1426400815,-977650754,-1296233688,733239954,1555261956,-1026031705,-1244606671,752459403,
1541320221,-1687895376,-328994266,1969922972,40735498,-1677130071,-351390145,1913087877,83908371,-1782625662,
-491226604,2075208622,213261112,-1831694693,-438977011,2094854071,198958881,-2032938284,-237706686,1759359992,
534414190,-2118248755,-155638181,1873836001,414664567,-2012718362,-15766928,1711684554,285281116,-1889165569,
-127750551,1634467795,376229701,-1609899400,-686959890,1308918612,956543938,-1486412191,-799009033,1231636301,
1047427035,-1362007478,-640263460,1088359270,936918000,-1447252397,-558129467,1202900863,817233897,-1111625188,
-893730166,1404277552,615818150,-1160759803,-841546093,1423857449,601450431,-1285129682,-1000256840,1567103746,
711928724,-1274298825,-1022587231,1510334235,755167117);


implementation

{$R *.dfm}

Function Skr_CRC32(Data :String) : String;
function Hex(data: longint; width: word): string;
  (* pads with leading zeroes to reach specified width; use width=0 for tight fit *)
  const
    HexChars: array[0..$F] of char = '0123456789ABCDEF';
  var
    txt: string;
  begin
    txt := '';
    repeat
      insert(HexChars[data and $F],txt,1);
      data := data shr 4;
    until data=0;
    while length(txt) < width do
      insert('0',txt,1);
    Hex:= txt;
  end;

var
  i, iBit : integer ;
  lCRC32 : integer;
  txt : string;
begin
  lCRC32 := $FFFFFFFF;
  For i := 1 To length(Data) do
   begin

      lCRC32 := ((lCRC32 shr 8) And $FFFFFF) Xor
       Crc32Table[(lCRC32 and $FF) xor Ord(Data[i])];

   end;
  result := Hex(lCRC32 Xor $FFFFFFFF,8);
end;
Michael
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.016 Beiträge
 
Delphi 12 Athens
 
#26

AW: VBA Script in Delphi umsetzen

  Alt 3. Dez 2013, 15:55
Das Lustigste ist das es immer noch nicht geht.
Es gibt ein Problem in der Berechnung der Tabelle und vermutlich das gleiche "Problem" gibt es auch in der CRC-Berechnung.

Meine Vermutlung liegt, erfahrungsgemäß, bei der Vorzeichenbehandlung.

Die Berechnungen selber liesen sich ja "leicht" übersetzen, aber dann müssen hier auch vergleichbare Typen (Anzahl der Bits, mit oder ohne Vorzeichen) und vergleichbare Rechenoperationen vorhanden sein.

ShortInt($FF aka -1) div 2 = $00 (0)
Byte($FF aka 255) div 2 = $7F (127)

ShortInt($F0 aka -16) div 2 = $F8 (-8)
Byte($F0 aka 240) div 2 = $78 (120)




Hex(123456789, 8); liefert in delphi und VB auch das selbe Ergebnis?
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu ( 3. Dez 2013 um 16:01 Uhr)
  Mit Zitat antworten Zitat
BUllweih

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

AW: VBA Script in Delphi umsetzen

  Alt 3. Dez 2013, 16:00
Ja, ergibt ein VB und Delphi das selbe.
Michael
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 11 Alexandria
 
#28

AW: VBA Script in Delphi umsetzen

  Alt 3. Dez 2013, 16:15
Welche Delphi-Version setzt du ein? Ich frage wegen Unicode.
Hinter dir gehts abwärts und vor dir steil bergauf ! (Wolfgang Ambros)
  Mit Zitat antworten Zitat
Benutzerbild von x000x
x000x

Registriert seit: 21. Jan 2004
Ort: Bei Hamburg
308 Beiträge
 
Delphi XE2 Professional
 
#29

AW: VBA Script in Delphi umsetzen

  Alt 3. Dez 2013, 17:01
String = karlos
Vom VBA
Code:
0 77073096 EE0E612C 990951BA 76DC419 706AF48F ...
Von Delphi
Code:
00000000 77073096 EE0E612C 2D02EF8E 076DC419 ...
Also wenn ich mit der geposteten Version von DeddyH die CRC Table erstelle, dann habe ich die gleichen Werte wie du in der obigen Ausgabe (die lt. deinem Kommentar ja von VBA stammen). Also der erste Teil der Funktion scheint dann doch zu passen?! Nur wie kommst du auf diese seltsamen Delphi-Ausgaben

<EDIT>
Nochmal eine Frage ... Sicherheitshalber:
test -> 7A635C01
hugo ->6A0D2BDA
karlos -> F1BFB3B6
inge -> FEB506DD
Sind das die Werte die das VBA erzeugt oder die Werte die dein Delphi-Programm erzeugt?
</EDIT>
Peter
-= Gruss Peter =-
-= alias x000x =-

Geändert von x000x ( 3. Dez 2013 um 17:17 Uhr)
  Mit Zitat antworten Zitat
BUllweih

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

AW: VBA Script in Delphi umsetzen

  Alt 3. Dez 2013, 17:44
Ich setze Delphi 6 ein.
Und ja die Ausgaben waren vom VB Script.
Michael
  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 +1. Es ist jetzt 21:01 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