Forum: Win32/Win64 API (native code)
by MrKnogge,
29. Mär 2008
Moin,
die Rechnung lautete zwar 4096 * 1024 * 1024 aber der Hintergrund bleibt ja der gleiche, da die beiden Konstanten im Bereich von 0 bis + ~4,2Mrd liegen nutzt Delphi einen vorzeichenlosen 32Bit Bereich. Ich war bisher immer der Meinung, dass der Compiler sich nach der "Ziel-Variable" richtet.
Forum: Win32/Win64 API (native code)
by MrKnogge,
29. Mär 2008
Diese Variante geht auch. Warum Delphi ein problem dabei hat, verstehe ich auch nicht.
In diesem Fall steht in SizeOfParts die Größe der Parts wie sie im Editfeld steht.
Ich vermute stark, dass Delphi ein Problem beim Multiplizieren von Integer-Konstanten hat.
Folgendes funktioniert nämlich:
SizeOfParts := GetDlgItemInt(hDlg, IDC_EDT_SIZE, Translated, False) * round(1024.0) *...
Forum: Win32/Win64 API (native code)
by MrKnogge,
29. Mär 2008
Ich habs gefunden :wall:
Hätte mir eigentlich auch eher auffallen müssen, gleiches hatte ich nämlich als ich mir die Dummy-Datei zum splitten erzeugt habe.
Mach einfach aus:
SizeOfParts := GetDlgItemInt(hDlg, IDC_EDT_SIZE, Translated, False) * 1024 * 1024;
dies hier:
Forum: Win32/Win64 API (native code)
by MrKnogge,
29. Mär 2008
Ich hab jetzt nochmal etwas nachgesehen, der Fehler kommt aus GetDlgItemInt (Zeile 519).
Forum: Win32/Win64 API (native code)
by MrKnogge,
26. Mär 2008
Kein Problem, ich erhalte bei BytesToRead einen Überlauf. BytesToRead, BytesRead, BytesWritten sind noch Integer.
Mit Int64 funktioniert es, allerdings etwas langsam, rund 1-2 Sekunden pro Prozent. Könnte man das etwas beschleuigen, in dem man die Blöckgröße etwas vergrößert? Bei mir ist die knapp über 1MB.
Forum: Win32/Win64 API (native code)
by MrKnogge,
26. Mär 2008
Kannst du den aktuellen Source mal anhängen, oder mir schicken ?
Dann jag ichs mal durch den debugger, ich glaub sonst sucht man sich da einen Wolf...
Forum: Win32/Win64 API (native code)
by MrKnogge,
26. Mär 2008
Nein, es erscheint alles korrekt, sowohl Größe als auch Teilstücke, deswegen war ich ja verwundert als ich mir mein C:\ angeschaut habe :spin2:
Forum: Win32/Win64 API (native code)
by MrKnogge,
25. Mär 2008
@StInkeSchuh
Wie groß hast du die Teile festgelegt, Probleme treten wohl nur bei größer als 2047MB auf.
Forum: Win32/Win64 API (native code)
by MrKnogge,
25. Mär 2008
Nun zeigt er bei 2500 MB schon mal 3 Teile an, teilt die Datei aber in lauter 1024 KB große Dateien :shock:
Forum: Win32/Win64 API (native code)
by MrKnogge,
25. Mär 2008
Abend Luckie,
ich habe gerade eine 7GB große Testdatei erstellt und erhalte folgendes Phänomen:
Ich wähle die Dateigröße 2000 MB und im Editfeld darunter erscheint "4", wenn ich aber 2500 MB einstelle möchte dein tool die Datei in 4294967293 Teile teilen. Und dies tritt ab 2048 MB auf.
Forum: Win32/Win64 API (native code)
by MrKnogge,
25. Mär 2008
Moin Michael,
hast du mal eine dummy-Datei in der erwähnten Größe erstellt und deinen Filesplitter damit durch den debugger gejagt ?