VC++ file einlesen , zeichen ersetzen, fiel saven

Hi ich hab ein problem und zwar will ich ein programm in VC++ erstellen das eine Textdatei einliest, bestimmte zeichen durch andere Zeichen ersetzt (z.B. [!name!] zu Esi1).

bis jetzt habe ich es geschaft das textfile binär zu lesen und wieder binär zu schreiben (also nichts anderes als das file zu kopieren) aber wie „replace“ ich bestimmte teile in dem file? wobei zu beachten ist das „[!“ anfang ist und „!]“ das ende der zu ersetzenden Wörter sind.

bitte um hilfe, sourcetext wäre nett (mit erklärung)

Hi ich hab ein problem und zwar will ich ein programm in VC++
erstellen das eine Textdatei einliest, bestimmte zeichen durch
andere Zeichen ersetzt (z.B. [!name!] zu Esi1).

bis jetzt habe ich es geschaft das textfile binär zu lesen und
wieder binär zu schreiben (also nichts anderes als das file zu
kopieren)

soweit so gut, schon die halbe miete
aber wie „replace“ ich bestimmte teile in dem file?

wobei zu beachten ist das „[!“ anfang ist und „!]“ das ende
der zu ersetzenden Wörter sind.

bitte um hilfe, sourcetext wäre nett (mit erklärung)

Du must jetzt von dem ersten bis zum letzten Zeichen jedes Zeichen untersuchen, ob es zu einem zu replacenden String gehört. Das ist das sogenannte parsen, was du entwickeln must ein spezieller Parser.

Also:

  • Lesezeiger auf Anfang
  • 1: wenn nicht endOfFile, lese nächstes Zeichen, sonst ENDE
  • Wenn Zeichen nicht ! gehe zu 1:
  • ZeichenKette = „“
  • solange nicht endofFile oder nächstes Zeichen = ‚!‘
    Zeichenkette = Zeichenkette und nächstes Zeichen
  • Vergleiche Zeichenkette mit allen Begriffen, die Du ersetzen möchtest (ist Zeichenkette = Ersatz1? wenn nein, ist Zeichenkette = Ersatz2? …)
  • wenn Du einen Begriff gefunden hast, schreibe in den output-file die ersatz-Zeichenkette, ansonsten das original.
  • gehe zurück zu 1

Dieses Programm hat noch viele Fehler, z.B. gerät es bei einem willkürlichen ! aus dem Tritt. Aber ich denke, Du kannst es entsprechend verbessern. Irgendwann brauchst Du dann auch die ! nicht mehr, da Du einfach von jedem Zeichen aus nachschaust, ob es einen zu ersetzenden Begriff einleitet.

Und wenn du fertig bist, ist das ein wirklich nützliches Programm. Fertig heist es z.B. SED und ich nutze es in Batchdateien täglich.

achim

Dieses Programm hat noch viele Fehler, z.B. gerät es bei einem
willkürlichen ! aus dem Tritt. Aber ich denke, Du kannst es
entsprechend verbessern. Irgendwann brauchst Du dann auch die
! nicht mehr, da Du einfach von jedem Zeichen aus nachschaust,
ob es einen zu ersetzenden Begriff einleitet.

danke für die hilfe mal schaun was sich machen lässt

mfg esi