Einzelnen Beitrag anzeigen

Volker Z.

Registriert seit: 3. Dez 2012
Ort: Augsburg, Bayern, Süddeutschland
419 Beiträge
 
Delphi XE4 Ultimate
 
#11

AW: Pressemitteilungs-Tool

  Alt 20. Mär 2013, 00:42
Hallo,

Zitat:
Wenn Delphi-Code gepostet wird, wäre es schön, wenn der in Delphi-Tags gesetzt wird, dann bekommt man auch kein Augenkrebs
@Sir Rufo

@Erutan:
Sorry, konnte ich nicht wissen, dass das Memo Teil einer mehrschichtigen Geschichte ist.
Anstatt mit Writeln zu arbeiten, würde ich mal einen Filestream in die Runde werfen:
Delphi-Quellcode:
interface

  TForm1 = class(TForm)
    // Deklarationen muss man sich halt denken, nur das Wesentliche
  private
    { Private-Deklarationen }
    procedure LoadFromFile (const Filename : string);
    procedure SaveToFile (const Filename : string);
  public
    { Public-Deklarationen }
  end;

implementation

procedure TForm1.LoadFromFile (const Filename : string);
var
  s : TFileStream;

  function Load (Stream : TFileStream) : string;
  var
    l : Integer;
    b : array of Char;
  begin
    Result := '';

    Stream.ReadBuffer (l, SizeOf (Integer));
    Inc (l);
    SetLength (b, l);
    try
      Stream.ReadBuffer (b [0], l - 1);
      Result := string (b);
    finally
      Finalize (s)
    end
  end;

begin
  s := TFileStream.Create ('c:\test.txt', fmOpenRead);
  try
    s.Seek (0, soFromBeginning);
    EditName.Text := Load (s);
    EditMail.Text := Load (s);
    EditPasswort.Text := Load (s);
    // etc.
  finally
    FreeAndNil (s)
  end
end;

procedure TForm1.SaveToFile (const Filename : string);
var
  s : TFileStream;

  procedure Save (Stream : TFileStream; const Str : string);
  var
    l : Integer;
  begin
    l := Length (Str);
    Stream.WriteBuffer (l, SizeOf (Integer));
    Stream.WriteBuffer (Str [1], l)
  end;

begin
  s := TFileStream.Create (Filename, fmCreate);
  try
    try
      Save (s, EditName.Text);
      Save (s, EditMail.Text);
      Save (s, EditPasswort.Text);
      // etc.
    except
      // Was auch immer zu tun ist wenn das Einlesen scheitert
    end;
  finally
    FreeAndNil (s)
  end
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
  LoadFromFile ('ein dateiname.erweiterung');
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
  SaveToFile ('ein dateiname.erweiterung')
end;
Gruß
Volker Zeller
  Mit Zitat antworten Zitat