AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi 1 Megabyte von einer großen Datei einlesen?
Thema durchsuchen
Ansicht
Themen-Optionen

1 Megabyte von einer großen Datei einlesen?

Ein Thema von R0BIN · begonnen am 14. Okt 2006 · letzter Beitrag vom 14. Okt 2006
Antwort Antwort
R0BIN

Registriert seit: 13. Okt 2006
54 Beiträge
 
#1

1 Megabyte von einer großen Datei einlesen?

  Alt 14. Okt 2006, 00:38
Hi,


wie kann ich z.B. nur den ersten Megabyte einer 12 Megabyte Datei einlesen und ausgeben lassen...z.B. in einem Memo!

R0BIN
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#2

Re: 1 Megabyte von einer großen Datei einlesen?

  Alt 14. Okt 2006, 00:44
Wiederum lautet das Zauberwort TFileStream ...

Florian
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
R0BIN

Registriert seit: 13. Okt 2006
54 Beiträge
 
#3

Re: 1 Megabyte von einer großen Datei einlesen?

  Alt 14. Okt 2006, 00:46
ja weiß ich, hab das probiert, denke aber das ist falsch

Delphi-Quellcode:

procedure TForm1.Button4Click(Sender: TObject);

var LStream: TFileStream;
    LBuffer: String;
    laenge : integer;
begin
  laenge := 1024 * 1024 * 1;
  SetLength(LBuffer, laenge);
  LStream := TFileStream.Create(Edit1.Text, fmOpenRead);
  LStream.Read(LBuffer[1], laenge);


  LStream.Free;
  memo1.text := LBuffer;
end;
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: 1 Megabyte von einer großen Datei einlesen?

  Alt 14. Okt 2006, 01:29
Moin Robin,

also mal abgesehen vom fehlenden try/finally, um das Freigeben des FileStreams abzusichern, sieht das für die gegebene Aufgabenstellung korrekt aus.
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
  Mit Zitat antworten Zitat
Benutzerbild von Sunlight7
Sunlight7

Registriert seit: 17. Sep 2006
Ort: Sonnensystem, Zentral
1.522 Beiträge
 
Delphi 5 Standard
 
#5

Re: 1 Megabyte von einer großen Datei einlesen?

  Alt 14. Okt 2006, 01:40
Zitat von Florian Bernd:
Wiederum lautet das Zauberwort TFileStream ...
Und wiedermal frag ich, warum mit den FileStreams abquälen?
Windows: Ja - Microsoft: Nein -> www.ReactOS.org
  Mit Zitat antworten Zitat
R0BIN

Registriert seit: 13. Okt 2006
54 Beiträge
 
#6

Re: 1 Megabyte von einer großen Datei einlesen?

  Alt 14. Okt 2006, 08:27
Danke, es scheint wirklich zu gehen, weiß nicht wo gestern der Fehler drin war....
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#7

Re: 1 Megabyte von einer großen Datei einlesen?

  Alt 14. Okt 2006, 08:48
Zitat von Sunlight7:
Zitat von Florian Bernd:
Wiederum lautet das Zauberwort TFileStream ...
Und wiedermal frag ich, warum mit den FileStreams abquälen?
Womit quälst Du Dich denn?

@ROBIN: Es fehlt eine Kleinigkeit: Wenn die Datei doch nicht groß genug ist, arbeitet die Routine nicht korrekt:
Delphi-Quellcode:
procedure TForm1.Button4Click(Sender: TObject);
var
  LStream: TFileStream;
  LBuffer: String;
  laenge : integer;

begin
  laenge := 1024 * 1024 * 1;
  SetLength(LBuffer, laenge);
  LStream := TFileStream.Create(Edit1.Text, fmOpenRead);
  Try
    laenge := LStream.Read(LBuffer[1], laenge); // Read liefert die Anzahl wirklich gelesener Bytes
    SetLength (LBuffer, laenge); // Hier wird die Bufferlänge korrigiert
  Finally
    LStream.Free;
  End;
  memo1.text := LBuffer;
end;
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Antwort Antwort


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 03:37 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