Einzelnen Beitrag anzeigen

Benutzerbild von BrunoT
BrunoT

Registriert seit: 23. Jan 2003
Ort: Sandbeiendorf
360 Beiträge
 
Delphi 8 Professional
 
#6

Re: Datei im Speicher zeilenweise lesen

  Alt 12. Okt 2005, 08:55
Hi Luckie,

ich will mal für meinen Lösungsvoeschlag ein Beispiel anhängen:

Delphi-Quellcode:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    Memo1: TMemo;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
type
  Zeiger = ^tZeiger;
  tZeiger = record
    Nr:Integer;
    Str: string;
    Ptr: zeiger;
  end;
var
  StartZ, HilfPtr1,HilfPtr2: Zeiger;

procedure in_Liste(i:Integer;s: string);
begin
  New(HilfPtr1);
  if i=0 then
  Begin
    New(HilfPtr2);
    StartZ:=HilfPtr2;
  end;
  HilfPtr1^.Nr := i;
  HilfPtr1^.Str := s;
  HilfPtr2^.Ptr := HilfPtr1;
  HilfPtr2:=HilfPtr1;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  T: Textfile;
  s: string;
  i:integer;
begin
  i:=0;
  memo1.Clear;
  Assignfile(t, 'test.txt');
  reset(t);
  while not eof(t) do
  begin
    readln(t, s);
    in_Liste(i,s);
    inc(i);
  end;
  closefile(t);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  HilfPtr1 := StartZ;
  while (HilfPtr1 <> nil) do
  begin
    HilfPtr1 := HilfPtr1^.Ptr;
    if HilfPtr1 <> nil then
      Memo1.Lines.Add(HilfPtr1.Str);
  end;
end;

end.
///Der einzige "Nachteil" ist, dass die Textdatei von hinten nach vorn im Speicher liegt.
[edit] ich habe es jetzt umgedreht. Die Daten liegen jetzt in der richtigen Reihenfolge [/edit]
//Aber das lässt sich ja ändern.

mfg

BrunoT
Angehängte Dateien
Dateityp: zip quelle_153.zip (6,9 KB, 16x aufgerufen)
Dateityp: zip testprog_161.zip (200,6 KB, 13x aufgerufen)
Holger

EDV- Ende der Vernunft
Meine Calcedit-Kompo
  Mit Zitat antworten Zitat