Frage zum Editor Proggen in Ansi C



  • Ich hab mir sozusage eine art "Datenbank" in c gebastelt. Das ganze basiert auf textdateien. man kann kategorieen hinzufügen löschen, drucken, bearbeiten usw.
    Mein Problem liegt beim Bearbeiten. Soviel ich gehört habe muss man sich einen "Editor" reinproggen, was nicht gerade einfach sei. Kann mir jemand nen guten Tipp oder link geben? Die forum Suche und Gooogle hat nichts schlaues hervorgebraucht. bzw. Google kam nur das was ich nicht suchte. Also bie der Bearbeitung soll die Textdatei eingelesen auf dem bildschirm ausgedruckt und dann wie in ner normalen Textdatei bearbeitbar sein (für alle die nicht wissen wie ich das mit dem Editor meine). Ich hoffe ihr versteht was ich mit dieser Frage meine und hoffe man kann mir hier weiterhelfen. Schon mal im Voraus einen Grossen Dank an alle die mir hier ne Antwort geben.

    THX



  • niemand eine Idee???



  • *Push*



  • so ne schwere Frage????



  • Mit Standard C wirst du da sicher nicht glücklich werden, da du ja bei einem Texteditor unter anderem Dinge brauchst, wie die Verschiebung des Cursors etc.

    Google mal nach ncurses oder S-Lang. Unter DOS kannst du auch die conio.h nehmen.



  • Ich hätte einen vorschlag für einen Editor:

    zwei positionsvariablen für den cursor.

    int posx,posy;
    

    variable für maximale bilsschirmzeilen.

    int maxscrheight;
    

    und noch zwei zählvariablen

    int x,y;
    

    datei laden und abfragen wie viel zeilen die datei hat.

    int maxarrayy
    

    ein array anlegen und alle zeichen speichern.

    char file[80][maxarrayy]
    

    eine tastaturabfrage in der steht: wenn mann etwas drückt wird das zeichen
    sofort an die stelle des cursors gesetzt. und ne abfrage: wenn man bei posx=80
    ist und nach rechts drückt soll posx=1 gesetzt werden und posy soll addiert
    werden mit 1.
    Wenn man nach oben drückt soll posy mit 1 subtrahiert werden. wenn man nach
    links will muss man posx mit 1 subtrahieren...usw.
    abfrage damit man mit posy nicht unter null kommt und für posx, das man nicht
    unter null kommt und nicht über 80.
    fals du mehr zeilen in der datei hast als auf dem bildschirm verfügbar, sagst
    du einfach: wenn datei mehr als zeilen als maxscrheight dann von dem array
    erst nur die ersten zeilen bis maxscrheight. file[x+rollsite][y+rollsite]
    für das nächste noch eine variable angeben die daführ zuständig ist wie oft
    du über den unteren rand wolltest:

    int rollsite;
    

    (am anfang 0)
    wenn posy = maxscrheight ist also seitenende und du einen weiter runter willst
    wird die var rollsite addiert mit 1 jetzt weist das programm wie viel du
    runtergescrollt hast. jetzt wird das array file nur noch von 1+rollsite zeile bis maxscrheight zeile augegeben(cursor bleibt dabei natürlich auf maxscrheight).
    also wenn du das erste mal runterscrollst soll zeile 2-81 aus dem array auf
    zeile 1-80 auf dem bilsschirm ausgegeben werden.
    noch eine abfrage: fals rollsite größer null ist und posy auf 1 dann rollsite
    mit 1 subtrahieren.

    wenn ich was vergessen habe sagts mir bin bisl durcheinander.



  • Editor schrieb:

    ... Soviel ich gehört habe muss man sich einen "Editor" reinproggen, was nicht gerade einfach sei. Kann mir jemand nen guten Tipp oder link geben? ...

    Es wäre einfacher und besser, du schreibst den Text in eine temporäre Datei und rufst einen externen Editor auf.



  • mein Vorschlag ist doch eigentlich richtig oder?



  • kingruedi schrieb:

    Mit Standard C wirst du da sicher nicht glücklich werden, da du ja bei einem Texteditor unter anderem Dinge brauchst, wie die Verschiebung des Cursors etc.

    ed ist doch auch ein vollwertiger Texteditor.


Anmelden zum Antworten