AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Overview über Ordnerinhalt in HTML-Datei schreiben
Thema durchsuchen
Ansicht
Themen-Optionen

Overview über Ordnerinhalt in HTML-Datei schreiben

Ein Thema von Svenkan · begonnen am 2. Mai 2007 · letzter Beitrag vom 2. Mai 2007
Antwort Antwort
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, 16: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
CCRDude
(Gast)

n/a Beiträge
 
#2

Re: Overview über Ordnerinhalt in HTML-Datei schreiben

  Alt 2. Mai 2007, 17:09
Weil Deine Schleife nur der internen Variable etwas zuweist und nichts schreibt.

Delphi-Quellcode:
  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>';
  WriteLn(Datei, anfang);
  WriteLn(Datei, ende);
for count := 0 to Pred(LbOverview.Items.Count) do begin
      hcode:='<td align="center">'+sLineBreak+'<p align="center">[url="'+LbOverview.Items[count]+'"]'+LbOverview.Items[count]+'[/url]</td>';
      WriteLn(Datei, hcode);
   end;
  CloseFile(Datei); // Datei schließen
Nicht wirklich schön, aber halt auch nur auf die Schnelle umgestellt.
  Mit Zitat antworten Zitat
Svenkan

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

Re: Overview über Ordnerinhalt in HTML-Datei schreiben

  Alt 2. Mai 2007, 17:20
Ach..
Ist klar, dasses dann nicht klappt. ^^
Musste es jetzt noch n bisschen umstellen:
Delphi-Quellcode:
  AssignFile(Datei, (ExtractFilePath(ParamStr(0))+'.\splaene\overview.htm'));
  Rewrite(Datei); // Datei neu schreiben
  anfang:='<html>'+sLineBreak+'<head>'+sLineBreak+'<title>Stundenplanübersicht '+schule+'</title>'+sLineBreak+'</head>'+sLineBreak+'<body>'+sLineBreak+'<table width="100%">'+SLineBreak+'<tr>';
  b:=sLineBreak+'<td align="left"><FONT face=Arial COLOR=#000080 style="font-size: 8pt">Stand: '+str+'</FONT><font color=#000080 face=Arial size=5></font></td>'+sLineBreak+'<td align="right"><FONT face=Arial COLOR=#000080 style="font-size: 8pt">'+schule+'</td></tr></table>'+sLineBreak+'<table align="center" border="1" width="23%" style="border-collapse: collapse" bordercolorlight="#000000" bordercolordark="#000000">'+sLineBreak+'<tr>';
  WriteLn(Datei, anfang);
  WriteLn(Datei, b);
  for count := 0 to Pred(LbOverview.Items.Count) do begin
   hcode:='<td align="center">'+sLineBreak+'[url="'+LbOverview.Items[count]+'"]'+LbOverview.Items[count]+'[/url]</td>';
   WriteLn(Datei, hcode);
  end;
  ende:='</tr>'+sLineBreak+'</table>'+sLineBreak+'<p align="right"><font face=Arial size=1 color=#0000A0>
Geschrieben mit
'+programm+' von [email="svenkan@gmx.de"]Sven Kannenberg[/email]</font></p>'+sLineBreak+'</body>'+sLineBreak+'</html>';
  WriteLn(Datei, ende);
  CloseFile(Datei); // Datei schließen
Ist es möglich, dass anfangs schon die Einträge der Listbox wirklich nach Alphabet/Zahlen geordnet werden und nicht 11 vor 8 oder so steht?
Bei PHP muss man das irgendwie innem Array zusammenfassen und dann sortieren lassen.
Wie funktioniert das in Delphi?
Sven Kannenberg
  Mit Zitat antworten Zitat
CCRDude
(Gast)

n/a Beiträge
 
#4

Re: Overview über Ordnerinhalt in HTML-Datei schreiben

  Alt 2. Mai 2007, 19:10
Für normales alphabetisches Sortieren dürfte LbOverview.Items.Sort ausreichen... ein etwas intelligenteres Sortieren, daß das mit den Zahlen idealer macht (Du meinst wahrscheinlich ähnlich wie der Windows Explorer?) fällt mir nur noch CustomSort ein, dem kannst Du eine eigene Vergleichsroutine übergeben, in der Du sortieren kannst wie Du lustig bist.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:45 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz