Entwickler-Ecke

Dateizugriff - html Datei bearbeiten


Jas DA - Do 08.05.03 13:07
Titel: html Datei bearbeiten
Ist es mit einem Delphi Programm möglich eine html-Datei zu öffnen und an einer bestimmten Position Zeilen einzufügen bzw. zu löschen ? Wenn ja, wie mache ich das am besten ?


Klabautermann - Do 08.05.03 15:00

Hallo,

HTML-Datein sind auch nur Text Dateien. Du kannst sie wie jede andere Textdatei auch bearbeiten (Stichworte: TEXTFILE, ASSIGNFILE, RESET, APPEND, CLOSEFILE, ReadLn, WriteLn, IORESULT). Das schwierige wird das Finden der Stelle an der du arbeten willst. Dafür musst du den HTML-Code Interpretieren.

Gruß
Klabautermann


Jas DA - Do 08.05.03 20:02

Kann ich denn irgendwie sagen, dass in der Datei dann z.B. in Zeile 5 angefangen wird etwas neues nineinzuschreiben ? Also gibt es die Möglichkeit in Textdateien ein paar Zeilen zu überspringen ? (Als wenn man ´ne Textdatei öffnet und die Pfeil-Unten Taste benutzt.)


bis11 - Do 08.05.03 20:58

Das könntest Du mit dem Befehl POS lösen. Anleitung zu dem Befehl gibt es in der OH von Delphi.


Klabautermann - Fr 09.05.03 11:14

Hallo,
Jas DA hat folgendes geschrieben:
Kann ich denn irgendwie sagen, dass in der Datei dann z.B. in Zeile 5 angefangen wird etwas neues nineinzuschreiben ? Also gibt es die Möglichkeit in Textdateien ein paar Zeilen zu überspringen ?

wenn du die Daten mitten reinschreiben wird, musst du die komplette Datei lesen, deine änderungen machen, und sie wieder komplett schreiben.
Wenn du tatsächlich Zeilenorientiert arbeitest kannst du das sehr konfortabel mit dem tStringList-Objekt machen.
Dieser Code-Schnipsel öffnet eine Datei, fügt eine neue fünfte Zeile ein und schreibt sie wieder. In der Praxis sollte überprüft werden ob die Datei überhaubt soviele Zeilen hat:

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
procedure TForm1.Button1Click(Sender: TObject);
  VAR
    TXT : tStringList;
begin
  TXT := tStringList.Create;
  TRY
    TXT.LoadFromFile('C:\Tmp\Test.html');
    TXT.Insert(4, '<b>Neue Zeile.</b>');
    TXT.SaveToFile('C:\Tmp\Test.html');
  FINALLY
    FreeAndNIL(TXT);
  END;
end;


Gruß
Klabautermann