Delphi und Txt dateien

crash-override

Grünschnabel
Hi, also wir machen bei uns im Informatikunterricht ein Projekt. Jetzt haben wir ein Problem. Wir wollen aus einer Txt datei einen Text (um genau zu sein einen HTML Code) auslesen und in eine Memo speichern und ausgeben. In unserem Programm kann man daten eingeben und wir wollen mit Hilfe von Variabeln im HTML Code die Variabeln einsetzten. Wer kann mir da Helfen
 

derGugi

Erfahrenes Mitglied
ich denke, er hat keine Ahnung von Programmierung und will nun, dass jemand sein Projekt macht... :) oder ned?

also hier mal ne kleine Hilfestellung:

1. Um das zeugs einzulesen und zu speichern kannst du loadfromFile und SaveToFile aus der Klasse TStrings verwenden. Entweder eine neue Variable erstellen oder direkt über das MemoFeld (memo1.lines.SaveToFile('asdsf.bla'):

2. Ich nehme an, ihr habt irgendwelche Platzhalter im Code und möchtet diese nun mit Werten füllen, oder? Dafür helfen euch sicherlich die Funktionen Pos,Insert und Delete weiter.

greetz
gugi
 

crash-override

Grünschnabel
Antwort

Was ich machen will ist folgendes. Ich will ein Programm schreiben in dem ich Meine Daten eingebe (Name, usw) und das mir dann einen HTML Code ausgibt den ich nur noch einfügen muss und der dann ein Impressum darstellt. So jetzt muss ich einen Vorgefertigten HTML Code in eine Text Datei speichern der Platzthalter enthält die dann durch meine eingaben ausgetauscht werden.

PS.: Ich kann schon bischen Programmieren :) und das ganze war auch net meine idee sondern das ist ein auftrag unseres Info Lehrers...
 

JoelH

Erfahrenes Mitglied
hmm,

ich würde eine Memobox nehmen, da kannst du mit der Methode .lines.loadfromfile einfach die Datei einlesen und musst dich um nichts kümmern.
Ebenso geht es mit dem Abspeichern, das sind insgesamt 3 Zeile selbst geschriebener Code !

Schwieriger ist das Parsen des Textes und das Ersetzen.

Du musst die Textmarken speziell markieren, so änlich wie die HTML Tags selbst sind.
Was weiss ist zb.

<meintag>NAME</meintag>

nun gehst du hin und nimmst den Text als String und suchst nach deinen Starttag . Die Stelle wo er beginnt merkst du dir dann suchst du den Endtag und merkst dir auch diese Stelle. Alles was davor war kopirst du nun in einen eigenen Zielstring, dann kommt der Text den du einfügen willst und dann hängst du alles dran was nach den Endtag kommt. mit diesem Zielstring überschreibst du den Suchstring und suchst erneut nach deinem Tag. Das machst du solange bis du nichtsmehr findest. Dann kannste den String wieder in die Memobox kopieren und schon haste das Ding ersetzt.

Hört sich einfach an aber Strings richtig gut zu parsen ist so einfachnicht, vor allem wenn man dann verschachtelte Tags zulässt usw. aber wenn es nur einen bestimmten Tag gibt ist es relativ einfach find ich. Probier mal ein wenig rum, wird schon gehen.