Sign in Join
Wiki copytemporary

Revision 1 of 2, by WikiArchive on 11-4-2026. The page as it is now.

csv to html/de

│ Deutsch (de) │


Zurück zur Seite Code Beispiele.

Umsetzen einer CSV-Datei in eine HTML-Datei.
Verarbeiten der CSV-Datei:

pascal
unit uVerarbeiten;
    
    unit uEinlesen;
    
    {$mode objfpc}{$H+}
    {$IMPLICITEXCEPTIONS OFF}
    
    interface
    
    uses
      SysUtils, FileUtil;
    
    function subCSVDateiEinlesenUndVerarbeiten(const strNameQuellDatei: string;
      const chrDelimiter: char; const strNameZielDatei: string;
      const strRegistertitel: string; const bytHTMLHeader: byte): boolean;
    
    
    implementation
    
    const
      conSpaltenAnfang = '<td>';
      conSpaltenEnde = '</td>';
      conZeilenAnfang = '<tr>';
      conZeilenEnde = '</tr>';
      conTabellenAnfang = '<table align="center">';
      conTabellenEnde = '</table>';
      conAbsatzAnfang = '<p>';
      conAbsatzEnde = '</p>';
    
    var
      datQuellDatei: TextFile; // CSV-Datei
      datZielDatei: TextFile;  // HTML-Datei
    
    
    procedure subCSS;
    begin
      WriteLn(datZielDatei, '<style type="text/css">');
    
      WriteLn(datZielDatei, '  table');
      WriteLn(datZielDatei, '  {');
      WriteLn(datZielDatei, '    border-collapse:collapse;');
      WriteLn(datZielDatei, '    border-style: solid;');
      WriteLn(datZielDatei, '    border-color: black;');
      WriteLn(datZielDatei, '    border-with: 1px;');
      WriteLn(datZielDatei, '    background-color: #CCCCCF;');
      WriteLn(datZielDatei, '    padding: 0.0cm;');
      WriteLn(datZielDatei, '    text-align: center;');
      WriteLn(datZielDatei, '  }');
    
      WriteLn(datZielDatei, '  td');
      WriteLn(datZielDatei, '  {');
      WriteLn(datZielDatei, '    border-top: solid;');
      WriteLn(datZielDatei, '    border-right: solid;');
      WriteLn(datZielDatei, '    border-bottom: solid;');
      WriteLn(datZielDatei, '    border-left: solid;');
      WriteLn(datZielDatei, '    border-with: 1px;');
      WriteLn(datZielDatei, '    padding: 0.1cm;');
      WriteLn(datZielDatei, '  }');
    
      WriteLn(datZielDatei, '</style>');
    end;
    
    function funSpaltenZaehlen(const strUebergabe: string;
      const chrDelimiter: char): integer;
    var
      intI: integer;
    
    begin
    
      funSpaltenZaehlen := 0;
      for intI := 1 to Length(strUebergabe) do
        if strUebergabe[intI] = chrDelimiter then
          Inc(funSpaltenZaehlen);
    
    end;
    
    // ----------------------------------------
    // Unterprogramme für die HTML-Datei Anfang
    // ----------------------------------------
    
    procedure subHTMLTagSchreiben(const strTag: string; const blnZeilenumbruch: boolean);
    begin
      if blnZeilenumbruch = False then
        Write(datZielDatei, strTag)
      else
        WriteLn(datZielDatei, strTag);
    end;
    
    
    
    procedure subHTMLAusgabeDateiSchliessen;
    begin
      Close(datZielDatei);
    end;
    
    
    
    procedure subHTML4Kopf(const strRegistertitel: string);
    begin
      writeln(datZielDatei, '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"');
      writeln(datZielDatei, '"http://www.w3.org/TR/html4/loose.dtd">');
      writeln(datZielDatei, '<html>');
      writeln(datZielDatei, '<head>');
      writeln(datZielDatei, '<title>' + strRegistertitel + '</title>');
      subCSS;
      writeln(datZielDatei, '</head>');
      writeln(datZielDatei, '<body>');
      writeln(datZielDatei, '');
    end;
    
    
    
    procedure subHTML5Kopf(const strRegistertitel: string);
    begin
      Append(datZielDatei);  // Setzt den Dateizeiger auf das Ende der Datei
      writeln(datZielDatei, '<!DOCTYPE HTML>');
      writeln(datZielDatei, '<html>');
      writeln(datZielDatei, '<head>');
      writeln(datZielDatei, '<title>' + strRegistertitel + '</title>');
      subCSS;
      writeln(datZielDatei, '</head>');
      writeln(datZielDatei, '<body>');
      writeln(datZielDatei, '');
    
    end;
    
    
    
    procedure subHTMLFuss;
    begin
      writeln(datZielDatei, '</body> ');
      writeln(datZielDatei, '</html>');
    end;
    
    
    
    procedure subHTMLAusgabeDateiErstellen(const strAusgabedatei: string);
    begin
      AssignFile(datZielDatei, strAusgabedatei);
      ReWrite(datZielDatei); // Erstellt die Datei bzw. überschreibt eine vorhandene Datei
      Append(datZielDatei);  // Setzt den Dateizeiger auf das Ende der Datei
    end;
    
    
    
    procedure subHTMLSpaltenErstellen(const strUebergabe: string; const chrDelimiter: char);
    var
      intI: integer = 0;
      intLaenge: integer = 0;
      strZelle: string = '';
    
    begin
    
      // Leere Zeilen werden übersprungen
      intLaenge := Length(strUebergabe);
      if intLaenge < 1 then
        exit;
    
      subHTMLTagSchreiben(conZeilenAnfang, True);
      subHTMLTagSchreiben(conSpaltenAnfang, False);
    
      for intI := 1 to intLaenge do
      begin
    
        if strUebergabe[intI] = chrDelimiter then
        begin
          Write(datZielDatei, strZelle);
          strZelle := '';
          subHTMLTagSchreiben(conSpaltenEnde, False);
          subHTMLTagSchreiben(conSpaltenAnfang, False);
        end
        else
          strZelle := strZelle + strUebergabe[intI];
    
      end;
    
      Write(datZielDatei, strZelle);
    
      subHTMLTagSchreiben(conSpaltenEnde, True);
      subHTMLTagSchreiben(conZeilenEnde, True);
    
    end;
    
    
    
    // --------------------------------------
    // Unterprogramme für die HTML-Datei Ende
    // --------------------------------------
    
    
    
    function subCSVDateiEinlesenUndVerarbeiten(const strNameQuellDatei: string;
      const chrDelimiter: char; const strNameZielDatei: string;
      const strRegistertitel: string; const bytHTMLHeader: byte): boolean;
    var
      strText: string = '';
    
    begin
    
      Result := False;
    
      // Prüft, ob ein gültiger HTML-Header gewählt wurde
      if (bytHTMLHeader < 4) or (bytHTMLHeader > 5) then
        exit;
    
      // Prüft, ob die Quelldatei existiert
      if not FileExists(strNameQuellDatei) then
        exit;
    
      // Prüft, ob die Quelldatei Daten enthält
      if filesize(strNameQuellDatei) = 0 then
        exit;
    
      // Öffnet die Quelldatei
      AssignFile(datQuellDatei, strNameQuellDatei);
      // Setzt den Dateizeiger auf den Anfang der Datei
      Reset(datQuellDatei);
    
      // Erstellen der HTML-Datei - Anfang
      subHTMLAusgabeDateiErstellen(strNameZielDatei);
      case bytHTMLHeader of
        4: subHTML4Kopf(strRegistertitel);
        5: subHTML5Kopf(strRegistertitel);
      end;
    
      subHTMLTagSchreiben(conAbsatzAnfang, True);
      subHTMLTagSchreiben(conTabellenAnfang, True);
    
      repeat
        ReadLn(datQuellDatei, strText);
        subHTMLSpaltenErstellen(strText, chrDelimiter);
      until EOF(datQuellDatei);
    
      subHTMLTagSchreiben(conTabellenEnde, True);
      subHTMLTagSchreiben(conAbsatzEnde, True);
      subHTMLFuss;
      subHTMLAusgabeDateiSchliessen;
      // Erstellen der HTML-Datei - Ende
    
      // Schliesst die Quelldatei
      CloseFile(datQuellDatei);
    
      Result := True;
    
    end;
    
    end.

Aufrufen des Unterprogramms:

pascal
begin
      
      ...
      
      uVerarbeiten.subCSVDateiEinlesenUndVerarbeiten('Unbenannt 1.csv', ',',
        'Ausgabe.html', 'Testseite', 5);
      
      ...
      
    end;

From the Free Pascal wiki, page "csv to html/de", as the Internet Archive kept it on 2024-08-04. Copyright stays with the author who wrote it, according to the old wiki's Licensing page. If you have concerns about this material, message the admin.