Entwickler-Ecke

Dateizugriff - Konvertierungsprogramm?!?!


SpOcK - Do 26.06.03 08:53
Titel: Konvertierungsprogramm?!?!
Aufgabe:
Ich will einen Text in einem HTML-Dokument verwenden. Um den Standard zu entsprechen müssen aber z.B. Umlaute ersetzt werden.

ä ä
Ä Ä
ö ö
Ö Ö
ü ü
Ü Ü
ß ß

Schreiben Sie ein Konvertierungsprogramm.

ENDE

Hab mir gedacht ich lese den Text ein, durchsuche jede Zeile nach einem der Umlaute. Wird man fündig so ersetze ich den Umlaut durch den Code (siehe oben ^) und wenn ich mit dem Text durch bin Speichere ich ihn neue ab.

Is nur für mich als Elektroniker leichter gesagt als durchgeführt.

Wie lese ich eine Datei ein?
Wie durchsuche ich den Text Zeile für Zeile?
Wie Speichere ich den Text wieder ab?


Vorsicht Anfänger! :oops:


Keldorn - Do 26.06.03 09:10
Titel: Re: Konvertierungsprogramm?!?!
SpOcK hat folgendes geschrieben:


Wie lese ich eine Datei ein?
Wie durchsuche ich den Text Zeile für Zeile?
Wie Speichere ich den Text wieder ab?



Da es sich hier um eine "Aufgabe" handelt nur n paar Stichpunkte, die du in der Onlinehilfe nachschauen kannst.

wenn es nicht sichtbar sein soll, nimm eine Tstringlist, wenn es sichtbar sein soll, z.B. ein Memo (hat auch die Eigenschaft Tstrings).
ein Tstringlist kennt die Methoden loadfromfile und savetofile fürs laden und speichern von texten.

Zeile für Zeile durchsuchen: die Stringliste hat die Eigenschaft strings[Zeilennummer]

fürs ersetzen: schau dir Stringreplace an, damit geht es am einfachsten. Du bräuchtest noch nicht einmal die Stringliste zeile für Zeile durchgehen, die Eigenschaft text reicht vollkommen

mfg Frank


SpOcK - Do 26.06.03 11:31

hab den Teil mit dem umwandeln soweit.
Will die Datei die ich einlese im Programm nocheinmal anzeigen.

Wollte ne Memobox nehmen.
memo1.lines.add(sZeile);
kann ich so dem Ihnhalt der Datei in die Memo eintragen?????


Keldorn - Do 26.06.03 11:42


Quelltext
1:
Memo1.Lines.LoadFromFile(dateiname);                    


oder wenn du eine vorhandene Stringliste anzeigen willst

Quelltext
1:
memo1.lines.assign(meineStringliste);                    


SpOcK - Do 26.06.03 11:50

Sorry für meine dumme Frage aber was versteht man unter einer Vorhandenen Stringliste?

Bekomme jetz den Fehler:
[Fehler] Unit1.pas(47): Inkompatible Typen: 'String' und 'Text'

Der Code schaut jetzt so aus


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
 begin
    AssignFile(Datei, OpenDialog1.FileName);
    Reset(Datei);
    readln(Datei, sZeile);
    Panel1.Caption := 'File load complete';
    Panel1.Color := clLime;
    Memo1.Lines.LoadFromFile(Datei, sZeile);
  WHILE NOT EOF(Datei) do
  begin
    readln(Datei,sZeile);


So wie ich mich kenne hab ich bestimmt den Hardcore Fehler Nr 1 drin.


Keldorn - Do 26.06.03 12:03

SpOcK hat folgendes geschrieben:
Sorry für meine dumme Frage aber was versteht man unter einer Vorhandenen Stringliste?


ich weiß nicht, wie du dein Programm aufgebaut hast. mit vorhandener stringliste meinte ich, daß du die Datei in eine Stringliste lädst, dort änderst und speicherst und dann diese Liste im Memo anzeigst.

Ansonsten stell ein wenig code hier rein

Mfg Frank


Keldorn - Do 26.06.03 12:06

hast deinen Post noch geändert, :wink: du mußt dich scon entscheiden, ob du mit loadfromfile oder readln arbeitest. Ich würd dir loadfromfile empfehlen, ghet einfacher.
und schau dir die methode Loadfromfile mal in der OH an


SpOcK - Do 26.06.03 12:18

Cool, hab es jetzt auf die Reihe bekommen!

Danke für die schnelle Hilfe.
Sollte ich noch ander Probleme bekommen meld ich mich wieder *grins*!