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?