procedure Tfrm_InstallVocTrainer.bbtn_installClick(Sender: TObject);
var
Target, UrlFile, Path :
String;
//Name eines Datei im Url-Pfad ausgeben
function ExtractUrlFileName(
Url:
String) :
String;
var SPos : Integer;
begin
SPos := Pos('
/',
Url);
if SPos <> 0
then
begin
Result := ExtractUrlFileName(Copy(
Url, SPos+1, Length(
Url)-1));
end
else
begin
Result :=
Url;
end;
end;
//Fehlgeschlagener Download -> Exception auslösen
function DownloadFile(AFrom, ATo :
String) : Boolean;
var
Answer : Boolean;
begin
Result := True;
Try
UrlDownloadToFile(
nil, Pchar(AFrom), PChar(ATo), 0,
nil);
Answer := FileExists(ATo);
if not Answer
then raise EDownloadError.Create('
Der Download konnte nicht beendet werden');
Except
on E : EDownloadError
do ShowMessage('
Download fehlgeschlagen:'+#13#10+
AFrom+'
nach'+#13#10+ATo)
else ShowMessage('
Download fehlgeschlagen:'+#1310+AFrom+'
nach'+#13#10+ATo);
Result := False;
End;
Application.ProcessMessages;
end;
procedure ReadIniFile(HelpIni :
String);
var
Ini : TIniFile;
loop, i : Integer;
Answer : Boolean;
begin
Ini := TIniFile.Create(HelpIni);
Try
Memo1.Lines.Add('
Download gestartet');
Memo1.Lines.Add('
');
i := Ini.ReadInteger('
D-Files','
FCount', 0);
//Wieviele Dateien
for loop := 1
to i
do
begin
UrlFile := Ini.ReadString('
D-Files', '
File'+IntToStr(loop), '
');
Answer := DownloadFile(UrlFile, Path + ExtractUrlFileName(UrlFile));
if Answer
then
begin
Memo1.Lines.Add('
Download erfolgreich');
end
else
begin
Memo1.Lines.Add('
Download von '+UrlFile+'
fehlgeschlagen');
end;
end;
Finally
Ini.Free;
End;
end;
begin
Memo1.Clear;
//leeres Edit abfangen
if ed_InstallDir.Text= '
'
then
ed_InstallDir.Text := GetProgDir;
Path := IncludeTrailingBackslash(ed_InstallDir.Text)+'
VokabelTrainer\';
ForceDirectories(Path);
if DownloadFile(HELPURL, Path+ExtractUrlFileName(HELPURL))
then
begin
Memo1.Lines.Add('
Hilfsdatei heruntergeladen');
ReadIniFile(Path+ExtractUrlFileName(HELPURl));
end;
end;