Delphi-PRAXiS :: Das Forum für Fragen zu Delphi
Das Experten Forum für Delphi Programmierer
Hilfe für Borland Delphi gibts es hier im Forum
Delphi Quelltexte und Source Codes
 
Winter 2008 - lieben Dank an Julius für ds Bild
Delphi-PRAXiS :: Foren-ÜbersichtForen-Übersicht Delphi-PRAXiS Modul-ÜbersichtSite-Map Delphi-PRAXiS durchsuchenSuchen Delphi-PRAXiS Code-LibraryCode-Library Jetzt registrieren!Registrieren Login  
   
 
0
 
Delphi für Win32
Dateien mit 3, GB mit Delphi 3 beatbeiten/Editieren möglich?
Ein Delphi (Win32)-Thema von Coder.

Vorheriges Thema anzeigen  |  Nächstes Thema anzeigen
Neuen Beitrag schreiben Auf Beitrag antworten
als PDF-Datei herunterladenThema ausdrucken
 
Delphi-PRAXiS Forum - Übersicht -> Sonstige Fragen zu Delphi
Seite 1 von 1   [ 12 Beiträge ]  
 
 Autor 
 Nachricht 
 
Coder #1|Beitrag #933333Verfasst am: 29.08.2008, 16:36      Titel: Dateien mit 3, GB mit Delphi 3 beatbeiten/Editieren möglich? Antworten mit Zitat
Mitglied
Status: offline
Beiträge: 146
angemeldet: 27.02.2004
Wohnort: Osnabrück
Delphi 3 Professional

Sprache: Delphi (Win32)

Hallo, ich möchte 2 Dateien bearbeiten, die aber je ca. 3 GB groß sind.
Unter Delphi erhalte ich nur eine
Zitat:
Exception der Klasse EFOpenError.folgende Datei [Dateipfad+Name] kann nicht geöffnet werden
.
Wenn ich eine kleinere Datei (getestet mit 1,78 GB Datei) öffne habe ich keine Probleme.

Hab schon mit Delphi5 versucht und daher den Code mit int64 angepaßt. Erfolglos.
Gleiche Fehlermeldung.
Delphi-Quellcode: zusammenfalten | markieren
procedure TForm1.Button4Click(Sender: TObject);
var fn: TFileName;
  newSize: int64;
Siz,  i, v: integer;
  dd, t, s: string;
begin
if Edit1.Text = '' then exit;
     fn := Edit1.Text;
      with TFileStream.Create(fn, fmOpenReadWrite) do
      begin
        s := inttostr(Size);
        Free;
      end;
      Label5.Caption := 'Dateigröße: ' + s + ' Byte';
    end;
      Siz:=Strtoint64(dd);
end;


Woran liegt das?
hat das was mit Dateien mit weniger als 214483647 Bytes und TStream zu tun?
was kann ich tun?

Besonders, wenn ich später mal die SIZE vom TStream/ der Datei verändern möchte?

ICQ: 204141443
Delphi 3 Professional
nach oben nach unten
Benutzer-Profile anzeigen Private Nachricht senden
Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen im Forum zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Google zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Wikipedia zu suchen.
 
 
shmia #2|Beitrag #933339Verfasst am: 29.08.2008, 16:43      Titel: Re: Dateien mit 3, GB mit Delphi 3 beatbeiten/Editieren mögl Antworten mit Zitat
Mitglied
Status: offline
Beiträge: 4.017
angemeldet: 02.03.2004
Delphi 5 Professional

Die Eingabe des Dateinamens erfolgt über ein Edit-Feld und das ist schlecht,
denn wie leicht begeht man einen Tippfehler!!!
Also entweder einen OpenFileDialog benützen oder zumindest prüfen, ob die Datei überhaupt existiert.
Delphi-Quellcode: markieren
if Edit1.Text = '' then exit;
fn := Edit1.Text;
if not FileExists(fn) then raise Exception.CreateFmt('Datei <%s> existiert nicht', [fn]);  // <====
with TFileStream.Create(fn, fmOpenReadWrite) do
nach oben nach unten
Benutzer-Profile anzeigen Private Nachricht senden
Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen im Forum zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Google zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Wikipedia zu suchen.
 
 
Coder #3|Beitrag #933358Verfasst am: 29.08.2008, 17:12      Titel: Re: Dateien mit 3, GB mit Delphi 3 beatbeiten/Editieren mögl Antworten mit Zitat
Mitglied
Status: offline
Beiträge: 146
angemeldet: 27.02.2004
Wohnort: Osnabrück
Delphi 3 Professional

ist gegeben.
Ein weiterer Button fügt per
if Opendialgo.execute begin Edit1.text := OpenDialog1.Exename end;
den Dateinamen direkt in den Edit1.text ein.

Die Dateien existieren auch und haben kurze eindeutige Dateinamen und liegen ein einem kurzen Dateipfad (C:\Test\Datei1.dat)
Ebenso bietet die kleinere 1,7 GB Datei gleiche Vorausssetungen, aber damit funktionoiert es.

Es muß also an der Dateigröße von etvl. 3 GB liegen Sad

aber da muß es doch eine Lösung für geben?

was haben die Programmierer 1997 ode wenigstens 1999 gemacht?

ICQ: 204141443
Delphi 3 Professional
nach oben nach unten
Benutzer-Profile anzeigen Private Nachricht senden
Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen im Forum zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Google zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Wikipedia zu suchen.
 
 
grenzgaenger #4|Beitrag #933361Verfasst am: 29.08.2008, 17:21      Titel: Re: Dateien mit 3, GB mit Delphi 3 beatbeiten/Editieren mögl Antworten mit Zitat
ehem. Benutzer


damals war bei 2 GB maximal schluss ... Twisted Evil

propier es mal mit dem guten alten assign/reset/readln ... vielleicht hilfts ...

ist zwar seit d1 auch eine FS kappselung ... aber vielleicht etwas anders implementiert...
nach oben nach unten
Benutzer-Profile anzeigen Private Nachricht senden
Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen im Forum zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Google zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Wikipedia zu suchen.
 
 
Coder #5|Beitrag #933372Verfasst am: 29.08.2008, 18:21      Titel: Re: Dateien mit 3, GB mit Delphi 3 beatbeiten/Editieren mögl Antworten mit Zitat
Mitglied
Status: offline
Beiträge: 146
angemeldet: 27.02.2004
Wohnort: Osnabrück
Delphi 3 Professional

ja, hatte zuvor auch schon daran gedacht.

Delphi-Quellcode: markieren
var F: File;
Fs, S: String;
begin
     Assignfile(F, Edit1.text);
     reset (F);
     FS := inttostr(Filesize (f));
     Closefile (f);
End;


doch da kommt "I/O-Fehler 32"

("mit OK")

sonst nix Sad

was gibt's denn noch?


jemand meinte "Createfilex"
http://msdn.microsoft.com/en-us/library/aa912087.aspx

doch davon hab ich gar keine Ahnung. Sad

ICQ: 204141443
Delphi 3 Professional
nach oben nach unten
Benutzer-Profile anzeigen Private Nachricht senden
Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen im Forum zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Google zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Wikipedia zu suchen.
 
 
grenzgaenger #6|Beitrag #933373Verfasst am: 29.08.2008, 18:25      Titel: Re: Dateien mit 3, GB mit Delphi 3 beatbeiten/Editieren mögl Antworten mit Zitat
ehem. Benutzer


und was heisst #32? Was sagt die Glaskugel?
nach oben nach unten
Benutzer-Profile anzeigen Private Nachricht senden
Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen im Forum zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Google zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Wikipedia zu suchen.
 
 
himitsu #7|Beitrag #933374Verfasst am: 29.08.2008, 18:25      Titel: Re: Dateien mit 3, GB mit Delphi 3 beatbeiten/Editieren mögl Antworten mit Zitat
sehr aktives Mitglied
Alter: 29
Status: online
Beiträge: 6.609
angemeldet: 11.10.2003
Wohnort: Elbflorenz


solange man bei AssignFile/Reset/ReadLn enbenso bei den FileStreams die Angaben zur Dateigröße und der Dateipositon, sowie EOF ignoriert, dann ist die Dateigröße unbegrenzt (jedenfalls programmseitig).

Also sequentielles Lesen oder Schreiben sollte dennoch mit ReadLn/WriteLn/BlockRead/BlockWrite und TFileStream möglich sein.


mit ReadLn/WriteLn sollte aber insgesamt immernoch bei 2GB Schluß sein,
aber TFileStream arbeitet bekanntlich mit Int64 und wär demnach doch unbegrenzt. Grübelnd...

Und dann war da noch der junge Mann, der unbedingt Schriftsteller werden wollte.
Er wollte Emotionen wecken und die Leute zum weinen bringen.
Sein Traum wurde wahr ... er verfasst heute die Fehlermeldungen bei Microsoft!

 Zuletzt bearbeitet von himitsu am 29.08.2008, 18:26, insgesamt 1-mal bearbeitet.
nach oben nach unten
Benutzer-Profile anzeigen Private Nachricht senden
Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen im Forum zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Google zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Wikipedia zu suchen.
 
 
Coder #8|Beitrag #933381Verfasst am: 29.08.2008, 18:42      Titel: Re: Dateien mit 3, GB mit Delphi 3 beatbeiten/Editieren mögl Antworten mit Zitat
Mitglied
Status: offline
Beiträge: 146
angemeldet: 27.02.2004
Wohnort: Osnabrück
Delphi 3 Professional

ich hatte es mit TfileStream unter Delphi 5 Std versucht (D 3 kennt ja kein int64)
keine Veränderung.

das Blöde ist, daß ich nicht genug Platz auf der HDD hab um die Datei mit irgendwas in 2 GB und 1,5 GB zu splitten. Sonst würde ich das versuchen.

ICQ: 204141443
Delphi 3 Professional
nach oben nach unten
Benutzer-Profile anzeigen Private Nachricht senden
Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen im Forum zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Google zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Wikipedia zu suchen.
 
 
grenzgaenger #9|Beitrag #933427Verfasst am: 29.08.2008, 20:34      Titel: Re: Dateien mit 3, GB mit Delphi 3 beatbeiten/Editieren mögl Antworten mit Zitat
ehem. Benutzer


glaube fast, so einen thread gabs hier schon mal... denke die SuFu wird vom nutzen sein...

so weit ich mich erinnere, soll es glaub ich über die WinAPI klappen...


woher kommt denn die monster datei?
nach oben nach unten
Benutzer-Profile anzeigen Private Nachricht senden
Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen im Forum zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Google zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Wikipedia zu suchen.
 
 
0xF30FC7 #10|Beitrag #933456Verfasst am: 29.08.2008, 22:39      Titel: Re: Dateien mit 3, GB mit Delphi 3 beatbeiten/Editieren mögl Antworten mit Zitat
Mitglied
Status: offline
Beiträge: 119
angemeldet: 11.05.2008


Windows API ist Dein Freund:
Suche im Microsoft Developers NetworkCreateFile Suche im Microsoft Developers NetworkReadFile Suche im Microsoft Developers NetworkWriteFile Suche im Microsoft Developers NetworkSetFilePointer Suche im Microsoft Developers NetworkGetFileSize Suche im Microsoft Developers NetworkCloseHandle

Fürs Arbeiten mit großen Dateien (> 2GB) sind die Parameter lpDistanceToMoveHigh und lpFileSizeHigh von Relevanz und müssen mit angegeben werden. Ansonsten funktioniert der Zugriff auf Große Dateien exakt identisch mit dem Zugriff auf normale Dateien.
nach oben nach unten
Benutzer-Profile anzeigen Private Nachricht senden
Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen im Forum zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Google zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Wikipedia zu suchen.
 
 
Christian Seehase #11|Beitrag #933460Verfasst am: 29.08.2008, 23:12      Titel: Re: Dateien mit 3, GB mit Delphi 3 beatbeiten/Editieren mögl Antworten mit Zitat
Super-Moderator
Alter: 45
Beiträge: 10.822
angemeldet: 29.05.2002
Wohnort: Hamburg
Delphi 7 Professional

Moin Coder,

Coder hat folgendes geschrieben:
ich hatte es mit TfileStream unter Delphi 5 Std versucht (D 3 kennt ja kein int64)
keine Veränderung.


wenn ich mich recht entsinne, kann TFileStream in D5 auch nur bis 2GB grosse Dateien verarbeiten.
Da bleibt Dir wohl wirklich nur die, schon angesprochene, Variante, direkt die API-Funktionen zu benutzen.

Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
nach oben nach unten
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen im Forum zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Google zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Wikipedia zu suchen.
 
 
himitsu #12|Beitrag #933848Verfasst am: 31.08.2008, 07:31      Titel: Re: Dateien mit 3, GB mit Delphi 3 beatbeiten/Editieren mögl Antworten mit Zitat
sehr aktives Mitglied
Alter: 29
Status: online
Beiträge: 6.609
angemeldet: 11.10.2003
Wohnort: Elbflorenz


ansonsten gibt es hier in der DP auch einige private FileStream-Varianten

such dir einfach eine und ändere das Int64 durch etwas, was dein Delphi kennt (Comp?)

z.B.: http://www.delphipraxis.net/topic134059_mapped+streams.html
(find jetzt auf die Schnell keine Anderen, aber es gibt noch ein paar ... nja, meine NonClass-Variante würde ich dir wohl besser nicht empfehlen Angel )

Und dann war da noch der junge Mann, der unbedingt Schriftsteller werden wollte.
Er wollte Emotionen wecken und die Leute zum weinen bringen.
Sein Traum wurde wahr ... er verfasst heute die Fehlermeldungen bei Microsoft!
nach oben nach unten
Benutzer-Profile anzeigen Private Nachricht senden
Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen im Forum zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Google zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Wikipedia zu suchen.
 
Anzeige-Optionen:    
 
Delphi-PRAXiS Forum - Übersicht -> Sonstige Fragen zu Delphi Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1   [ 12 Beiträge ]  
 
  Neuen Beitrag schreiben Auf Beitrag antworten
als PDF-Datei herunterladenThema ausdrucken
 
   
Gehe zu:  
Du darfst keine Beiträge in dieses Forum schreiben.
Du darfst auf Beiträge in diesem Forum nicht antworten.
Du darfst Deine Beiträge in diesem Forum nicht bearbeiten.
Du darfst Deine Beiträge in diesem Forum nicht löschen.
Du darfst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten.
Du kannst Dateien in diesem Forum nicht herunterladen.


Impressum / Kontakt
Allgemeine Geschäftsbedingungen
Verhaltenskodex & FAQ

Delphi-PRAXiS :: Das Forum für Delphi-Programmierer
Das Experten Forum für Delphi ProgrammiererHilfe für Borland Delphi gibts es hier im ForumDelphi Quelltexte und Source CodesDelphi-PRAXiS :: Das Forum für DelphiWindows APIInternet und NetzwerkeVCL und Datenbanken
 

Delphi-PRAXiS V.2005 III
© 2002-2008 by Daniel R. Wolf
powered by phpBB © phpBB Group

Impressum / Kontakt Allgemeine Geschäftsbedingungen