AGB  ·  Datenschutz  ·  Impressum  







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

Datei lesen auf "einmal"

Ein Thema von sniper_w · begonnen am 22. Apr 2006 · letzter Beitrag vom 28. Apr 2006
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von sniper_w
sniper_w

Registriert seit: 12. Dez 2004
Ort: Wien, Österriech
893 Beiträge
 
Delphi 6 Enterprise
 
#1

Datei lesen auf "einmal"

  Alt 22. Apr 2006, 17:39
Ich möchte eine Datei "auf einmal" einlesen. So in etwa:
Delphi-Quellcode:
var FilePointer:Pointer;
begin
  FilePointer := LoadFileAufEinmal( FileName:string );
Katura Haris
Es (ein gutes Wort) ist wie ein guter Baum, dessen Wurzel fest ist und dessen Zweige in den Himmel reichen.
  Mit Zitat antworten Zitat
markusj

Registriert seit: 9. Dez 2005
Ort: Kandel
408 Beiträge
 
#2

Re: Datei lesen auf "einmal"

  Alt 22. Apr 2006, 17:40
???
Ich versteh nicht was du willst, lege dir aber mal einen TMemoryStream oder ein TFileStream nahe^^

mfG

Markus
Markus
  Mit Zitat antworten Zitat
Benutzerbild von sniper_w
sniper_w

Registriert seit: 12. Dez 2004
Ort: Wien, Österriech
893 Beiträge
 
Delphi 6 Enterprise
 
#3

Re: Datei lesen auf "einmal"

  Alt 22. Apr 2006, 17:43
Das ganze binäre Inhalt einer Datei von HD zur RAM und ein Pointer auf den Anfang.
Katura Haris
Es (ein gutes Wort) ist wie ein guter Baum, dessen Wurzel fest ist und dessen Zweige in den Himmel reichen.
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Datei lesen auf "einmal"

  Alt 22. Apr 2006, 17:51
nimm einfach einen TMemoryStream und verwende die Methode LoadFromStream. Der Memorystream müsste dann noch ein property "memory" (oder so ähnlich) haben womit du einen pointer auf die Daten bekommst.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
markusj

Registriert seit: 9. Dez 2005
Ort: Kandel
408 Beiträge
 
#5

Re: Datei lesen auf "einmal"

  Alt 22. Apr 2006, 17:53
Zonk!!!

Der TMemoryStream muss mit LoadFromfile gefüllt werden!!!
Ansonsten kann man schon ganz bequem auf die einzelnen Werte zugreifen ... read & readBuffer!
Oder du nimmst deinen Pointer, der unter Memory zu finden ist.

mfG
Markus
Markus
  Mit Zitat antworten Zitat
elliott

Registriert seit: 3. Apr 2006
17 Beiträge
 
Delphi 2005 Personal
 
#6

Re: Datei lesen auf "einmal"

  Alt 27. Apr 2006, 18:38
Zitat von sniper_w:
Ich möchte eine Datei "auf einmal" einlesen. So in etwa:
Delphi-Quellcode:
var FilePointer:Pointer;
begin
  FilePointer := LoadFileAufEinmal( FileName:string );
Wenn du das so haben willst, dann musst du schon selbst diese Funktion "LoadFileAufEinmal" schreiben.
Das macht man mit FileOpen, dann mit FileSeek die Groesse der Datei holen, dann einen Speicherplatz mit GetMem (über den gewünschten pointer) reservieren und zum Schluss noch mit FileRead die Datei "AufEinmal" einlesen.......
  Mit Zitat antworten Zitat
Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#7

Re: Datei lesen auf "einmal"

  Alt 27. Apr 2006, 18:44
Zitat von markusj:
Zonk!!!

Der TMemoryStream muss mit LoadFromfile gefüllt werden!!!
HI,
warum? Also ich hab erst vorhin LoadFromStream verwendet und wüßte jetzt nicht warum ich LoadFromFile hätte verwenden sollen. Der Sinn von Streams ist es gerade, dass sie durchaus von dem konkreten Speicherort (RAM, File, kommt aus dem Netz) abstrahieren können. Sollte es doch ein guten Grund geben nur LoadFromFile zu nehmen, müsste ich wohl einigen Kunden etwas erklären (also hoffe ich doch mal dass es den auch weiterhin nicht gibt!)

Gruß Der Unwissende
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#8

Re: Datei lesen auf "einmal"

  Alt 27. Apr 2006, 18:59
Zumal .LoadFromFile nix anderes tut als nen FileStream zu erstellen und den ganzen Inhalt der Datei in den Speicher zu kopieren^^
  Mit Zitat antworten Zitat
shmia

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

Re: Datei lesen auf "einmal"

  Alt 27. Apr 2006, 19:00
In einem Rutsch in einen String laden:
Delphi-Quellcode:
function FileToString(const FileName: string): AnsiString;
var
  fs: TFileStream;
  Len: Integer;
begin
  fs := TFileStream.Create(FileName, fmOpenRead or fmShareDenyWrite);
  try
    Len := fs.Size;
    SetLength(Result, Len);
    if Len > 0 then
      fs.ReadBuffer(Result[1], Len);
  finally
    fs.Free;
  end;
end;
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von idontwantaname
idontwantaname

Registriert seit: 31. Aug 2004
Ort: Traiskirchen
575 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: Datei lesen auf "einmal"

  Alt 27. Apr 2006, 19:00
@Der_Unwissende: Naja, irgendwie muss man ja die Datei in der Speicher holen, oder ??
Oliver Hanappi
  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 23:53 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