Überlegungen zu einem Texteditor



  • Hallo zusammen!

    Ich möchte zu Lernzwecken einen Texteditor in reinem ANSI-C schreiben.

    Meine Überlegungen betreffen die Datei- und Speicherverwaltung der zu lesenden Textdatei und die Bilschirmausgabe.

    Ist es sinnvoll im Programm konstant zu definieren, wieviele Eingabezeilen maximal erwartet werden, oder sollten die Zeilen während des Einlesens gezählt werden und hinterher dynamisch abgelegt werden?

    Auf folgendes möchte ich hinaus:

    Wenn ich die Eingabezeilen zähle (was in jedem Falle erforderlich ist) und vorher aber nicht weiss, wieviele Zeilen es werden, kann ich die Daten der einzelnen Zeilen meines Erachtens nur in einer verketteten Liste speichern,oder Gibt es hier vielleicht eine Möglichkeit, einen Vektor von char Zeigern zu verwenden und die Größe während der Laufzeit zu verändern?

    Gibt es unter ANSI-C fertige Routinen, die es erlauben den Bildschirmspeicher anzusprechen oder den Cursor zu positionieren? Ich möchte so portabel wie nur irgend möglich bleiben und daher auch keine APIs wie z.B. ncurses benutzen.

    Ist ggf. der VESA-Framebuffer-Modus der unter Linux benutzt werden kann, das Gleiche wie derjenige, der von z.B. UNIVESA unter DOS bereitgestellt wird?
    Ist es möglich selbigen mit ANSI-C bzw. dem INLINE-Assembler plattformunabhängig anzusprechen? (zunächst einmal davon ausgehend, das die Zielarchitektur x86 bleibt)

    Freue mich auf eure Tips und Vorschläge.

    GreetZ

    ReSeT



  • Original erstellt von ReSeT:
    ...
    Wenn ich die Eingabezeilen zähle (was in jedem Falle erforderlich ist) und vorher aber nicht weiss, wieviele Zeilen es werden, kann ich die Daten der einzelnen Zeilen meines Erachtens nur in einer verketteten Liste speichern,oder Gibt es hier vielleicht eine Möglichkeit, einen Vektor von char Zeigern zu verwenden und die Größe während der Laufzeit zu verändern?

    ja ... mit realloc()

    Gibt es unter ANSI-C fertige Routinen, die es erlauben den Bildschirmspeicher anzusprechen oder den Cursor zu positionieren? Ich möchte so portabel wie nur irgend möglich bleiben und daher auch keine APIs wie z.B. ncurses benutzen. ....

    nein.


Anmelden zum Antworten