![]() |
AW: VBA Script in Delphi umsetzen
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. |
AW: VBA Script in Delphi umsetzen
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.
|
AW: VBA Script in Delphi umsetzen
Habe die DIM als long deklariert und die Ausgabe ist noch genauso wie vorher.
Langsam drehe ich mit dem VB durch.:pale::pale: |
AW: VBA Script in Delphi umsetzen
..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 |
AW: VBA Script in Delphi umsetzen
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; |
AW: VBA Script in Delphi umsetzen
Zitat:
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)
Delphi-Quellcode:
liefert in delphi und VB auch das selbe Ergebnis?
Hex(123456789, 8);
|
AW: VBA Script in Delphi umsetzen
Ja, ergibt ein VB und Delphi das selbe.
|
AW: VBA Script in Delphi umsetzen
Welche Delphi-Version setzt du ein? Ich frage wegen Unicode.
|
AW: VBA Script in Delphi umsetzen
Zitat:
<EDIT> Nochmal eine Frage ... Sicherheitshalber: Zitat:
</EDIT> |
AW: VBA Script in Delphi umsetzen
Ich setze Delphi 6 ein.
Und ja die Ausgaben waren vom VB Script. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:52 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