AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Dateien erstellen

Ein Thema von Meflin · begonnen am 3. Sep 2003 · letzter Beitrag vom 11. Sep 2003
Antwort Antwort
Seite 3 von 4     123 4      
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#21

Re: Dateien erstellen

  Alt 3. Sep 2003, 20:41
Wie groß kann man die datei dann machen? Irgendwann kommt:

Zitat:
[Fehler] Unit1.pas(41): Überlauf bei Konvertierung oder arithmetischer Operation
  Mit Zitat antworten Zitat
kasi

Registriert seit: 18. Aug 2003
10 Beiträge
 
Delphi 5 Enterprise
 
#22

Re: Dateien erstellen

  Alt 3. Sep 2003, 21:24
LongInt ist 32 Bit mit Vorzeichen also 2 GB

Wenn größer sein muß
Code:
procedure DoCreateFile2(Filename: string; Size: Int64);
var
  FS: TFileStream;

begin
FS := TFileStream.Create(Filename, fmCreate);
try
  FileSeek(FS.Handle, Size, 0);
  Win32Check(SetEndOfFile(FS.Handle));
finally
  FS.Free;
end;
end;
So ist THandleStream.setSize auch implementiert

Aufruf (10 GB )
Code:
DoCreateFile2(Application.ExeName+'.test', Int64(1024*1024*1024)*10);
KASI
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#23

Re: Dateien erstellen

  Alt 3. Sep 2003, 21:29
Cool!
Danke, wie groß werden sie dort maximal.
  Mit Zitat antworten Zitat
kasi

Registriert seit: 18. Aug 2003
10 Beiträge
 
Delphi 5 Enterprise
 
#24

Re: Dateien erstellen

  Alt 3. Sep 2003, 21:38
9.223.372.036.854.775.808 Byte

also ca. 9000 Terabyte-Platten
Werde es in 100 Jahren mal testen

KASI
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#25

Re: Dateien erstellen

  Alt 3. Sep 2003, 22:26
Hmmm... einfach die Size zu setzen

Ist auch ne Idee
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#26

Re: Dateien erstellen

  Alt 3. Sep 2003, 22:29
Die Dateigröäße steht nicht im Header der Datei. Wenn dann muß der Eintrag im Dateisystem manipuliert werden.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#27

Re: Dateien erstellen

  Alt 4. Sep 2003, 07:25
OK! Vielen Dank.
  Mit Zitat antworten Zitat
Dannyboy

Registriert seit: 4. Aug 2003
Ort: Delphi-Heaven
418 Beiträge
 
Delphi 7 Personal
 
#28

Re: Dateien erstellen

  Alt 4. Sep 2003, 13:54
Ich denke, die Größe einer Datei wird berechnet. Das erklärt auch, warum
man zuschauen kann, wie die Anzeige der Größe steigt, wenn man einen
Ordner > 10 GB (z.B.) rechts klickt und auf Eigenschaften geht.
Sie steht nicht im Header!

Ich wollte auch mal sehen, wie schnell ich meine Platte zumüllen kann,
dazu habe ich die Funktionen BlockRead und Blockwrite verwendet.
Das ging sehr schnell, weil ich 5 Mio Byte per Block in die Datei geschrieben habe.
Probier's einfach mal aus. 8)

Denk daran, dass Du einen Runtime-Error kriegst, sollte Deine Datei die
4GB überschreiten. Da haut Dir Windows ganz gewaltig auf die Finger!
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#29

Re: Dateien erstellen

  Alt 4. Sep 2003, 13:59
chewies methode arbeitet zuverlässig und schnell, da so große dateien nicht erstellt werden müssen (die dateien werden wohl selten größer als 1mb). deshalb werde ich auch bei dieser methode bleiben!
Leo S.
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#30

Re: Dateien erstellen

  Alt 4. Sep 2003, 16:58
Die Geschwindigkeit und die Speicherauslastung kannst du ja über die Konstante BytesPerBlock regulieren..

Außerdem: NTFS (zumindest die Version ab 2000, wies bei NT ist, weiß ich nicht) unterstützen Dateien > 4 GB.
Einige API-Funktionen zum Dateeihandling nehmen für die Position des Dateizeigers 2 32Bit-Werte.
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 4     123 4      


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 22:42 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