Delphi [Material] [erste Schritte] [Variablen] [Typen] [Datenstruktur] [Zuweisung] [Komponenten] [StyleGuide] [Kontrollstrukturen] [Fehler] [Debuggen] [Funktionen] [Prozeduren] [Grafik] [Ereignisse] [Programme] [Unit] [OOP] [Benutzung einer Klasse] [Projektverwaltung] [Muster] [Format] [String-Operationen] [Datei] [Dialoge] [Menü] [Datenbank] [WinAPI] [Zufallszahlen] [RE] [Exceptions] [alte Delphiseite]
Pfad: [Startseite] / [Fächer] / [Informatik] / [Delphi] / [Datei]
Hohenstaufen-Gymnasium
Kaiserslautern
Autor: mk
Letzte Änderung dieser Seite: 05.05.2006 12:04:00  93
Datei-Verwaltung

Beispiel 1

unit uDatei1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    bSchreibe: TButton;
    bLese: TButton;
    lbEin: TListBox;
    procedure bSchreibeClick(Sender: TObject);
    procedure bLeseClick(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.bSchreibeClick(Sender: TObject);
var
  stream : TFileStream;
  i      : integer;
  h      : byte;
begin
  stream := TFileStream.Create('abc.txt',fmCreate);
  for i := 1 to 16 do
  begin
    h := i;
    stream.Write(h,1);
  end;
  stream.Free;
end;

procedure TForm1.bLeseClick(Sender: TObject);
var
  stream : TFileStream;
  i      : integer;
  b      : byte;
begin
  lbEin.Clear;
  stream := TFileStream.Create('abc.txt',fmOpenRead);
  for i := 1 to stream.Size do
  begin
    stream.read(b,1);
    lbEin.Items.Add(IntToStr(b));
  end;
  stream.Free;
end;

end.

Links

Beispiel 2: pbm-P1-Datei in Memo einlesen

procedure TForm1.bLiesEinClick(Sender: TObject);
var
  datei   : TFileStream;
  ch      : char;
  i,j,w,h : integer;
  magic,width,height,zeile : string;
begin
  datei := TFileStream.Create('crypt5_fax.pbm',fmOpenRead);
  // 'magic number' lesen
  magic := '';
  datei.read(ch,1); magic := ch;
  datei.read(ch,1); magic := magic+ch;
  mAusgabe.Lines.Add(magic);
  // whitespaces überlesen
  repeat
    datei.read(ch,1);
  until not (ch in [#32,#8,#10,#13]);
  // width lesen
  width := '';
  while not (ch in [#32,#8,#10,#13]) do
  begin
    width := width+ch;
    datei.read(ch,1);
  end;
  w := StrToInt(width);
  mAusgabe.Lines.Add(IntToStr(w));
  // weitere whitespaces überlesen
  while ch in [#32,#8,#10,#13] do datei.read(ch,1);
  // height lesen
  height := '';
  while not (ch in [#32,#8,#10,#13]) do
  begin
    height := height+ch;
    datei.read(ch,1);
  end;
  h := StrToInt(height);
  mAusgabe.Lines.Add(IntToStr(h));
   // weitere whitespaces überlesen
  while ch in [#32,#8,#10,#13] do datei.read(ch,1);
  // Daten einlesen, ch enthält erstes Datum
  for j := 1 to h-1 do
  begin
    // Zeile einlesen
    zeile := '';
    for i := 1 to w do
    begin
      zeile := zeile+ch;
      repeat datei.read(ch,1); until not (ch in [#32,#8,#10,#13]);
    end;
    mAusgabe.Lines.Add(zeile);
  end;
  // letzte Zeile einlesen
  zeile := '';
  for i := 1 to w-1 do
  begin
    zeile := zeile+ch;
    repeat datei.read(ch,1); until not (ch in [#32,#8,#10,#13]);
  end;
  zeile := zeile+ch;
  mAusgabe.Lines.Add(zeile);
  // DEBUG-Informationen
  mAusgabe.Lines.Add('Position = '+IntToStr(datei.Position));
  mAusgabe.Lines.Add('Size = '+IntToStr(datei.Size));
  if datei.Position = datei.Size-1
  then
    mAusgabe.Lines.Add('Dateiende erreicht!');
  // Stream freigeben
  datei.Free;
end;

datei0.zip

Valid XHTML 1.0! lokal