Befehlszeile in Echtzeit auswerten

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Befehlszeile in Echtzeit auswerten

    Hi,

    ich habe einen String, der während der Eingabe interpretiert werden soll. Beispiel: "#120K15L25P250" Der String beginnt immer mit einer Raute, danach kommt eine beliebig lange Zahl, die solange geht, bis der erste Buchstabe kommt. Nach ein oder zwei Buchstaben folgt wieder eine Zahl. Die Buchstaben ordnen dabei die Zahlen einer bestimmten Stelle zu.
    Einen fertigen String auszuwerten ist nicht weiter schwierig, eine Auswertung in Echtzeit scheint allerdings nicht ohne zu sein.
    Bereits ausgewertete Elemente müssen angepasst werden, wenn diese erweitert werden (aus "F2" wird "F23" ). Zusätzlich kann es passieren, dass der Mittelteil geändert wird ("#120B25C11" -> "#120A25C11"). Auch kann der String gekürzt werden wodurch Elemente wegfallen oder mit anderen zusammengelegt werden können.

    Mehr wie 30 Zeichen wird der String nicht haben.

    Ich habe mir ein paar Lösungsansätze überlegt, aber mir ist bis jetzt immer ein Anwendungsfall eingefallen, bei dem die Lösung nicht gescheit funktioniert. Am einfachsten wäre es wohl den String bei jeder Änderung komplett neu zu interpretieren, aber das ist ziemlich unperformant.
    Über Google etc. habe ich bis jetzt nichts gefunden, das in eine ähnliche Richtung geht, außer der "fast-colored-TextBox" deren Funktionsumfang allerdings der totale Overkill ist. Hat jemand eine Idee, wie ich mich dem Problem nähern kann?
    Option strict = on

    If it's stupid and it works it ain't stupid.

    Nils_Kr schrieb:

    Am einfachsten wäre es wohl den String bei jeder Änderung komplett neu zu interpretieren, aber das ist ziemlich unperformant.
    Welche Rolle spielt Performance während einer Benutzereingabe?
    Diese kurze Berechnung ist immer schneller als der Benutzer optisch reagieren kann.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    stimmt, bei der Berechnung selbst wird es zu keinen Problemen kommen. Nur der Befehl hat Einfluss auf einige TextBoxen & Dropdown-Menüs was deren Inhalt & Hintergrundfarbe angeht.
    Wenn man schnell tippt könnte es schon sein, dass es da zu Problemen kommt, da manchmal recht träge gerendert wird.

    Aber probieren geht über studieren. Ich baue mal eine Variante, die immer komplett berechnet und wenn es da zu einer Verzögerung kommt, kann ich immernoch nach einer Alternative suchen.
    Option strict = on

    If it's stupid and it works it ain't stupid.

    Nils_Kr schrieb:

    und wenn es da zu einer Verzögerung kommt
    im unteren Millisekundenbereich, das spielt absolut keine Rolle, der Rechner ist schneller als der Mensch.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!