Delphi-PRAXiS
Seite 3 von 4     123 4      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   FileSplitter: Probleme mit großen Dateien (https://www.delphipraxis.net/110825-filesplitter-probleme-mit-grossen-dateien.html)

Luckie 26. Mär 2008 12:29

Re: FileSplitter: Probleme mit großen Dateien
 
Zitat:

Zitat von StInkeSchuh
Die Teile berechnet er nun richtig, aber am Ende Kommen nur 1 Mega-Files heraus.

Die Größe der Teilstücke hatte er auch richtig angezeigt oder war die schon falsch?

MrKnogge 26. Mär 2008 15:07

Re: FileSplitter: Probleme mit großen Dateien
 
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:

Luckie 26. Mär 2008 17:34

Re: FileSplitter: Probleme mit großen Dateien
 
Dann liegt der Hund in der Split-Funktion begraben. :gruebel:

MrKnogge 26. Mär 2008 17:43

Re: FileSplitter: Probleme mit großen Dateien
 
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...

Luckie 26. Mär 2008 17:48

Re: FileSplitter: Probleme mit großen Dateien
 
Liste der Anhänge anzeigen (Anzahl: 1)
Danke für das Angebot. Sourcen im Anhang.

MrKnogge 26. Mär 2008 18:00

Re: FileSplitter: Probleme mit großen Dateien
 
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.

Luckie 26. Mär 2008 18:04

Re: FileSplitter: Probleme mit großen Dateien
 
Das hätte ich jetzt nicht gedacht, dass die Blockgröße einen Interger-Überlauf verursachen könnte. :shock:

Besten dank fürs Debuggen. :P

Luckie 29. Mär 2008 13:51

Re: FileSplitter: Probleme mit großen Dateien
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zu früh gefreut:
Zitat:

Leider musste ich feststellen, dass der Fehler nur teilweise behoben
ist. Er tritt allerdings statt bei 2048 MB jetzt erst bei 4096 MB auf.
Das heißt für meine Testdatei mit ca. 6 GB:

Größe eines Teils bis 4095 MB -> alles OK
4095 MB -> 2 Teile (OK)
4096 MB -> 0 Teile (fehlerhaft; wie in Version 5.7.0.3)
4097 MB -> 6665 Teile (fehlerhaft; wie in Version 5.7.0.3)
4098 MB -> 3333 Teile (fehlerhaft; wie in Version 5.7.0.3)
Aber Int64 müsste doch einen größeren Wertebereich haben oder?

Aktuelle Version im Anhang.

MrKnogge 29. Mär 2008 14:42

Re: FileSplitter: Probleme mit großen Dateien
 
Moin Luckie, der fehler liegt in deiner Funktion dlgfunc, diese übergibt nämlich bei 4096 MB für den Parameter Size den Wert 0 an CalcCntParts. Wo der fehler genau liegt, kann ich nicht sagen. (Habe nie viel in NonVCL gemacht)

Luckie 29. Mär 2008 15:05

Re: FileSplitter: Probleme mit großen Dateien
 
Hm. :gruebel:
Danke schon mal für den Hinweis. Mal sehen, ob ich da was finden kann.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:10 Uhr.
Seite 3 von 4     123 4      

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