Peter: Zeilennummerierung (C#)

Hallo!

Ich bin gerade dabei einen kleinen Editor in C# zu schreiben.
Ich hätte hierbei nun gerne, dass dieser auch eine Zeilennummerierung "bekommt". - Allerdings habe ich nirgends im Web irgendetwas darüber gefunden... Kennt jemand von euch irgendein Tutorial etc. um eine Zeilennummerierung in C# zu realisieren!?

viele Grüße
 Peter

  1. Hello Peter,

    Wo ist da das Problem?
    Die Zeilen erkennst Du doch am LF
    und wenn Zeilennumerierung eingeschaltet ist, dann setzt sich Deine Zeile bei der Ausgabe eben aus Nummernstring + Codestring zusammen.

    i.d.R. wirst Du die Seiten ja ohnehin als doppelt verkettete Liste von Zeilenelementen aufbauen. Und wie die aussehen, kannst Du doch frei regeln.

    Harzliche Grüße vom Berg
    http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau

    1. Hello Peter,

      Hallo!

      Wo ist da das Problem?

      ...ich hatte mich zwischendurch sehr ausgiebig mit PHP beschäftigt, sodass ich mich wieder in C# einlesen muss...

      Die Zeilen erkennst Du doch am LF

      Hä? was ist "LF"?

      und wenn Zeilennumerierung eingeschaltet ist, dann setzt sich Deine Zeile bei der Ausgabe eben aus Nummernstring + Codestring zusammen.

      Schon. Aber wo schreibe ich die Zeilennummern hin!? - Was ist dafür das sinnvollste Element, in dem ich die ausgeben kann? Direkt in der RTB wohl nicht.

      i.d.R. wirst Du die Seiten ja ohnehin als doppelt verkettete Liste von Zeilenelementen aufbauen. Und wie die aussehen, kannst Du doch frei regeln.

      Sorry, aber das verstehe ich jetzt nicht ganz...

      schöne Grüße
       Peter

      1. Hello Peter,

        Hä? was ist "LF"?

        Zeilenschaltungszeichen, Datensatzseparierer, ...

        Schon. Aber wo schreibe ich die Zeilennummern hin!? - Was ist dafür das sinnvollste Element, in dem ich die ausgeben kann? Direkt in der RTB wohl nicht.

        i.d.R. wirst Du die Seiten ja ohnehin als doppelt verkettete Liste von Zeilenelementen aufbauen. Und wie die aussehen, kannst Du doch frei regeln.

        Sorry, aber das verstehe ich jetzt nicht ganz...

        Tut mir auch leid, dann habe ich wahrscheinlich nicht genügend Hintergrundinformation für Deine Vokabeln. Ich schreibe C immer noch mit meiner guten alten Borland C/C++ 2.0 IDE oder eben mit dem bei Linux üblichen GCC. Den proprietären 'Standard' von MS C und dessen Automatismen und Bezeichnungen kenne ich nicht ausreichend.

        Datenstrukturen und ihre Bearbeitungsmethoden/-Funktionen habe ich bisher immer noch selber gebaut. dann weiß ich wenigstens, was da so passiert. Ich muss gestehen, dass ich immer weniger verstehe, was die Leute eigentlich wollen, weil sie für meistens ganz rudimentäre Zusammenhänge immer wildere Namen erfinden. Vorhin kam mir da nur "Sandbox" unter. Früher (als ich noch jung war *g*) hätte man dazu "Isolierte Umgebung" gesagt...

        Harzliche Grüße vom Berg
        http://www.annerschbarrich.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau

      2. Moin,

        als Starthilfe ... eine System.Windows.Forms.Form, darauf 3 Controls:

        • 1x Textbox auf Readonly = true gestellt, am linken Rand auf Docking = Left, so breit dass es die Zeilennummern aufnehmen kann;
        • 1x RichTextBox in groß und Docking = Fill gestellt (du ahnst, wozu die da ist?)
        • 1x Timer-Objekt mit Interval = 500ms; der Timer.Tick Event zeigt auf eine Methode, die die Zeilen in der Rich-Text-Box nach \r\n (Carriage-Return, NewLine) splittet, von dem entstandenen Array die Länge nimmt, mit dem aktuellen Zeilen-Zähler vergleicht und ggf das String[] Array für deine Zeilen-Nummern-Textbox updatet

        Damit solltest du jetzt schon mal ungefähr ne Richtung haben, wie du dein Problem lösen könntest.

        Ich erhebe keinen Anspruch, dass meine Vorschläge das Non+Ultra sind, es gibt sicherlich Alternativen, wie z.b. den Druck der Return/Enter Taste in der Rich-Text-Box abzufangen usw. aber da darfst du dir n eigenes Köpfchen machen.

        Ciao, Frank