Einzelnen Beitrag anzeigen

torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#1

Datei kann nicht geschrieben werden - Warum und wie ändern?

  Alt 26. Okt 2006, 18:46
Hallo Wissende,

ich habe ein Freeware-Tool geschrieben, welches aus TextDateien automatisiert HTML-Dateien macht. Bei mir lief auf meinen Testsystemen und auf der Entwicklungsumgebung alles super.

Nun habe ich aber von einem User eine EMail erhalten, die besagt, dass bei ihm sehr oft die Meldung kommt, dass die Datei nicht geschrieben werden kann. Wie kann ich das Abfangen, bzw. das Speichern der Datei/en doch IMMER sicherstellen?

Diese Routine ist eine von beiden, die macht was ich will:
Delphi-Quellcode:
procedure TForm1.GenerateFile(Filename:String;LoadatWeb:boolean;ArtikelNumber:integer);
var
  myList,HtmlList,list:TStringlist;
  i:integer;
  str_head,str_content:string;
begin
  myList:=TStringlist.Create;
  myList.LoadFromFile(Filename);
  ed_head.Text:=myList.Strings[0];
  str_head:=myList.Strings[0];
  myList.Delete(0);
  mem_txt.Lines.Assign(myList);

  list:=TStringList.Create;
  list.Assign(myList);
  for i:=0 to list.count-1 do
    begin
      if i<list.Count-1 then list.Strings[i]:=list.Strings[i]+ '
'
    end;
  str_content:=List.Text;

  HtmlList:=TStringlist.Create;

  HtmlList.Add('<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">');
  HtmlList.Add('<html>');
  HtmlList.Add('<head>');
  HtmlList.Add('<link rel="stylesheet" href="../css/'+cmb_css_file.Text+'" type="text/css" />');

  HtmlList.Add('</head>');
  HtmlList.Add('<body>');
  HtmlList.Add('');
  HtmlList.Add('<h3>'+str_head+'</h3>');
  HtmlList.Add('');
  HtmlList.Add('

'+str_content+'</p>');
  HtmlList.Add('');
  if (LoadatWeb=false) and (complete.chk_hist_back.Checked) then
    HtmlList.Add('

[url="javascript:history.back()"]Zurück[/url]</p>
');
  HtmlList.Add('');
  HtmlList.Add('</body>');
  HtmlList.Add('</html>');
  HtmlList.SaveToFile(Pvw_Path + 'artikel_id_'+inttostr(ArtikelNumber)+'.html');
  if LoadatWeb then
    web.Navigate(Pvw_Path + 'artikel_id_'+inttostr(ArtikelNumber)+'.html');
  myList.Free;
  HtmlList.Free;
end;
Danke für Tipps. Ich will nicht nur die Fehlermeldung unterdrücken, sondern auch sicherstellen, dass das Speichern wirklich klappt. SaveToFile gibt leider keinen Wert zurück. Hat jemand einen Vorschlag?
Danke
Tom
  Mit Zitat antworten Zitat