Texteditor
-
Hi
ich will mal einen kleienn Texteditor schreiben, jedoch habe ich absolut keine Ahnung, wie ich es realisieren könnte, dass man unbegrenzt Buchstaben niederschreiben kann. Malloc und realloc sind mir bekannt, aber ich weiß nicht, wie man es hier lösen könnte. Achja: der Text sollte dann in eine char Array gespeichert sein.Wäre sehr dankbar, wenn jemand seine Idee posten könnte....
Viele Grüße
Guest
-
Lösungen mithilfe von ncurses wären auch gut.
Deswegen auch das Linux Forum.
-
Hi 007,
mein Vorschlag zu den unbegrenzten Buchstaben:
Jede Zeile des dargestellten Textes speicherst du in einer verketteten Liste, also z.B.
typedef struct _liste { char *zeile; struct _liste *next; } tText;
Damit definierst du den Typ tText, der Pointer auf eine Zeile (= String) und den Rest des Textes speichert.
Eine Zeile kannst du dann darstellen, indem du ein festes char-Array der Länge 10 (z.B.) anlegst. Immer dann, wenn eine Zeile länger als 10 Zeichen wird, erzeugst du einen neuen String, der nochmal 10 Zeichen länger ist und kopierst alles um.
Viel Spaß ...
Ok, das entspricht nicht ganz deinem Wunsch nach einem einzigen char-Array. Aber: Was passiert, wenn du einen riesengroßen Text in deinen Editor lädst und das erste Zeichen löschst ...