Einzelnen Beitrag anzeigen

Svenkan

Registriert seit: 10. Feb 2007
Ort: Bersenbrück
547 Beiträge
 
Delphi 7 Enterprise
 
#1

Overview über Ordnerinhalt in HTML-Datei schreiben

  Alt 2. Mai 2007, 17:24
Auf einer anderen Seite habe ich bereits den Tipp mit Verweis auf 'http://www.dsdt.info/tipps/?id=134' bekommen.
Mit dieser rekursiven Suche möchte ich zunächst alle HTM-Dateien im Ordner bestimmen. Für jede dieser Dateien soll dann ein Code geschrieben werden.
Ich habe bisher so weit umgeschrieben:

Delphi-Quellcode:
procedure ScanDir(const Directory: String);
var
  SR: TSearchRec;
begin
  if FindFirst(Directory + Mask, faAnyFile and not faDirectory, SR) = 0 then try
    repeat
    if NOT (SR.Name = 'overview.htm') then List.Add(SR.Name);
    until FindNext(SR) <> 0;
  finally
    FindClose(SR);
  end;

  if WithSubDirs then begin
    if FindFirst(Directory + '*.*', faAnyFile, SR) = 0 then try
      repeat
        if ((SR.attr and faDirectory) = faDirectory) and
           (SR.Name <> '.') and (SR.Name <> '..') then
          ScanDir(Directory + SR.Name + '\');
      until FindNext(SR) <> 0;
    finally
      FindClose(SR);
    end;
  end;
end;

begin
  List.BeginUpdate;
  try
    if ClearList then
      List.Clear;
    if Directory = 'then Exit;
    if Directory[Length(Directory)] <> '\then
      Directory := Directory + '\';
    ScanDir(Directory);
  finally
    List.EndUpdate;
  end;
end;
Abruf über Button:

Delphi-Quellcode:
procedure TForm1.BtWriteOverviewClick(Sender: TObject);
var path,s,anfang,ende,hcode: String;
    Datei: TextFile;
    count: Integer;
begin
  path:=ExtractFilePath(ParamStr(0))+'.\splaene';
  GetFilesInDirectory(path, '*.htm*', LbOverview.Items, False, True);
  LbOverview.Visible:=True;

  FOR count := 0 TO LbOverview.Items.Count-1 DO
  hcode:='<td align="center">'+sLineBreak+'<p align="center">[url="'+LbOverview.Items[count]+'"]'+LbOverview.Items[count]+'[/url]</td>';

  AssignFile(Datei, (ExtractFilePath(ParamStr(0))+'.\splaene\overview.htm'));
  Rewrite(Datei); // Datei neu schreiben
  anfang:='<table border="1" width="23%" style="border-collapse: collapse" bordercolorlight="#000000" bordercolordark="#000000">'+SLineBreak+'<tr>';
  ende:='</tr>'+SLineBreak+'</table>';
  s:=anfang+String(hcode)+ende;
  Write(Datei,s); // Datei schreiben
  CloseFile(Datei); // Datei schließen
end;
Nun soll zu den Einträgen in der Listbox jeweils ein HTML-Code in der Form
Code:
<td align="center"><p align="center">[url="klasse.htm"]Klasse[/url]</td>
geschrieben werden.
In meinem Code wird leider immer nur einer ausgegeben, nämlich das letzte Element der Liste.
Sven Kannenberg
  Mit Zitat antworten Zitat