Announcement

Collapse
No announcement yet.

Nullterminierte Strings umgehen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Nullterminierte Strings umgehen

    Hallo,
    ich möchte einen Editor Bauen, der alle erdenklichen Datetypen öffnen und Editieren kann. Dazu wollte ich ein TMemo-Objekt
    benutzen, da dieses bereits eine Editorfläche bereitstellt und sehr gute methoden besitzt.
    Nun habe ich das Problem, dass wenn eine Datei irgendwo ein Character mit der Ordnungszahl 0 enthält, der Nullterminierte
    String eben terminiert wird. Weiss jemand wie man dieses Problem lösen könnte?

  • #2
    Ersetze jedes #0 durch ein anderes zeichen, z.B. '.'

    <pre>

    for I := 1 to Length(Text) do
    if Text[I] = in [#0,#8,#9,#10,#13] then Text[I] := '.';

    </pre>

    Gruß Hage

    Comment


    • #3
      Danke erstmal für Deine Antwort.
      Jedoch: wenn ich diese Zeichen durch ein anderes ersetze, kann ich die datei ja nicht mehr original-
      getreu zurückspeichern. Es muss also anders zu lösen sein. <br>
      Es gibt doch z.B. das Wordpad von Windows, mit dem man z.B. auch JPG-Grafiken problemlos öffnen und
      zurückspeichern kann. (Vorausgesetzt man ändert sie nicht so, dass das Format nicht mehr stimmmt).<br>
      <br>
      Für weitere Antworten zum Voraus besten Dank,<br>
      gruss, Thoma

      Comment


      • #4
        Hi

        Jo, dann MUSST Du die Zeichenroutine des Controls ändern. Anstatt wie beim TEdit 1zu1 die zeichen auszugeben wird der zu zeichnende String eben vorher konvertiert. Aber eben NUR für die Darstellung, der eigentliche, vom Control verwaltete String bleibt gleich. Du hast dann aber das Problem das das Control unter Umständen Zeilenumrüche/Sonderzeichen falsch interpretiert.

        Gruß Hage

        Comment

        Working...
        X