Einzelnen Beitrag anzeigen

Der_Unwissende

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

Re: RichEdit.txt als Stream speichern

  Alt 10. Nov 2005, 09:26
Hey, im Prinzip ist der Code so richtig, aber es gibt natürlich (fast immer) Kleinigkeiten die man anmerken kann.
Fangen ich doch einfach mal an:
Als erstes stellt sich für mich die Frage warum du extra einen Stream benutzt, ich denke RichEdit1.Lines.LoadFromFile(OpenDialog1.Filename) ; sollte es auch tun.
Eine andere Sache die mir noch aufgefallen ist, ist dein etwas drastisches Abfangen von Fehlern. Immerhin ist das schließen des Forms doch ein wenig hart, nur weil ein Fehler aufgetreten ist.

Ansonsten würde ich dir zu einem try ... finally Block um den Stream raten, damit der immer freigegeben wird. Zudem solltest du die Restriktionen des Streams noch etwas erweitern

Delphi-Quellcode:
procedure TForm1.open1Click(Sender: TObject);
var Stream: TFileStream;
begin
 try
  if OpenDialog1.Execute then
   begin
    try
     Stream := TFileStream.Create(OpenDialog1.FileName, fmOpenRead or fmShareDenyWrite);
     RichEdit1.Lines.LoadFromStream(Stream);
    finally
     Stream.Free;
     Stream := nil;
    end;
   end;
 except
  Form1.Close;
 end;
end;

procedure TForm1.save1Click(Sender: TObject);
var Stream: TFileStream;
begin
 try
  if SaveDialog1.Execute then
   begin
    try
     Stream := TFileStream.Create(SaveDialog1.FileName, fmCreate or fmShareExclusive);
     RichEdit1.Lines.SaveToStream(Stream);
    finally
     Stream.Free;
     Stream := nil;
    end;
   end;
 except
  Form1.Close;
 end;
end;
[/quote]

Ja, zudem kann man (hier auch gemacht) die Variable weniger global setzen. Ist zwar "mehr arbeit" aber auch sauberer. Der eigentliche Vorteil liegt jedoch darin, dass lokale Variablen immer stärker gebunden werden, also Namenskonflikte sind eher auszuschließen.

Gruß Der Unwissende
  Mit Zitat antworten Zitat