AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Dateien mit 3, GB mit Delphi 3 beatbeiten/Editieren möglich?
Thema durchsuchen
Ansicht
Themen-Optionen

Dateien mit 3, GB mit Delphi 3 beatbeiten/Editieren möglich?

Ein Thema von Coder · begonnen am 29. Aug 2008 · letzter Beitrag vom 31. Aug 2008
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Coder
Coder

Registriert seit: 27. Feb 2004
Ort: Bochum
206 Beiträge
 
Delphi 3 Professional
 
#1

Dateien mit 3, GB mit Delphi 3 beatbeiten/Editieren möglich?

  Alt 29. Aug 2008, 17:36
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:
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, Intel 2x 2,4Ghz, 3 GB-Graka, Sound-onBrd, --
außerdem D2S, D3Pro, D4S, D5S, D6S, D7S + Indy, Lazarus, VB5Std, VC++5Pro, Tasm4+5 - was braucht man mehr?
-
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#2

Re: Dateien mit 3, GB mit Delphi 3 beatbeiten/Editieren mögl

  Alt 29. Aug 2008, 17:43
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:
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
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von Coder
Coder

Registriert seit: 27. Feb 2004
Ort: Bochum
206 Beiträge
 
Delphi 3 Professional
 
#3

Re: Dateien mit 3, GB mit Delphi 3 beatbeiten/Editieren mögl

  Alt 29. Aug 2008, 18:12
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

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, Intel 2x 2,4Ghz, 3 GB-Graka, Sound-onBrd, --
außerdem D2S, D3Pro, D4S, D5S, D6S, D7S + Indy, Lazarus, VB5Std, VC++5Pro, Tasm4+5 - was braucht man mehr?
-
  Mit Zitat antworten Zitat
grenzgaenger
(Gast)

n/a Beiträge
 
#4

Re: Dateien mit 3, GB mit Delphi 3 beatbeiten/Editieren mögl

  Alt 29. Aug 2008, 18:21
damals war bei 2 GB maximal schluss ...

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...
  Mit Zitat antworten Zitat
Benutzerbild von Coder
Coder

Registriert seit: 27. Feb 2004
Ort: Bochum
206 Beiträge
 
Delphi 3 Professional
 
#5

Re: Dateien mit 3, GB mit Delphi 3 beatbeiten/Editieren mögl

  Alt 29. Aug 2008, 19:21
ja, hatte zuvor auch schon daran gedacht.

Delphi-Quellcode:
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

was gibt's denn noch?


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

doch davon hab ich gar keine Ahnung.
ICQ: 204141443
Delphi 3 Professional, Intel 2x 2,4Ghz, 3 GB-Graka, Sound-onBrd, --
außerdem D2S, D3Pro, D4S, D5S, D6S, D7S + Indy, Lazarus, VB5Std, VC++5Pro, Tasm4+5 - was braucht man mehr?
-
  Mit Zitat antworten Zitat
grenzgaenger
(Gast)

n/a Beiträge
 
#6

Re: Dateien mit 3, GB mit Delphi 3 beatbeiten/Editieren mögl

  Alt 29. Aug 2008, 19:25
und was heisst #32?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Dateien mit 3, GB mit Delphi 3 beatbeiten/Editieren mögl

  Alt 29. Aug 2008, 19:25
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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Coder
Coder

Registriert seit: 27. Feb 2004
Ort: Bochum
206 Beiträge
 
Delphi 3 Professional
 
#8

Re: Dateien mit 3, GB mit Delphi 3 beatbeiten/Editieren mögl

  Alt 29. Aug 2008, 19:42
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, Intel 2x 2,4Ghz, 3 GB-Graka, Sound-onBrd, --
außerdem D2S, D3Pro, D4S, D5S, D6S, D7S + Indy, Lazarus, VB5Std, VC++5Pro, Tasm4+5 - was braucht man mehr?
-
  Mit Zitat antworten Zitat
grenzgaenger
(Gast)

n/a Beiträge
 
#9

Re: Dateien mit 3, GB mit Delphi 3 beatbeiten/Editieren mögl

  Alt 29. Aug 2008, 21:34
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?
  Mit Zitat antworten Zitat
Fridolin Walther

Registriert seit: 11. Mai 2008
Ort: Kühlungsborn
446 Beiträge
 
Delphi 2009 Professional
 
#10

Re: Dateien mit 3, GB mit Delphi 3 beatbeiten/Editieren mögl

  Alt 29. Aug 2008, 23:39
Windows API ist Dein Freund:
MSDN-Library durchsuchenCreateFile MSDN-Library durchsuchenReadFile MSDN-Library durchsuchenWriteFile MSDN-Library durchsuchenSetFilePointer MSDN-Library durchsuchenGetFileSize MSDN-Library durchsuchenCloseHandle

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.
Fridolin Walther
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 04:57 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