ich habe ein Array von:
PWR00
PWR01
MVLUP
MVLDOWN
...
ich muss nun erkennen, welcher dieser String mit einem Vergleichswert übereinstimmt.
An sich nicht schwer, aber ich bekomme auch den Wert:
MVL0D
MVL33
...
Also MVLxx
Wie kann ich das in das Array eintragen?
MVL folgen 2 Hex Zeichen
Kommt nun "MVL0D" als vergleichswert, und soll das Array durchlaufen und erkennen, wenn "MVLxx" geprüft wird.
Dein Array enthält Zeichenketten.
Diese Zeichenketten soll mit einem Vergleichswert abgeglichen werden. Dabei kann der Vergleichswert Platzhalter enthalten. Richtig?
Sind in dem Array auch Zeichenketten mit Platzhalter enthalten? Oder können Platzhalter nur im Vergleichswert vorkommen?
Sind alle Zeichen gleich, dann speichere das gefundene Wort
Zur Verbesserung kann man auch vorher prüfen, ob die Länge der beiden Zeichenketten identisch ist und dann schon abbrechen, wenn es die Aufgabenstellung zulässt.
Das wäre mein intuitiver Ansatz, ob man etwas mit regulären Ausdrücken machen kann, muss ich mir noch mal in Ruhe überlegen.
Wie willst du denn wissen welcher Teil des strings fix ist und welcher nicht? Wenn du das wiest, dann kannst du doch einfach nur die fixen Zeichen vergleichen mittels substring
Kannst du das mal etwas genauer ausführen? Mir ist nicht so ganz klar was du machen willst.
Wenn du ein Match gefunden hast, kannste dann nicht den ursprünglichen String wegschicken den du gesucht hast (also MVL0D). Ich glaub ein konkretes Beispiel wäre mal gut um zu verstehen, was du genau machen willst.
Ich möchte meinen Onkyo AV-Receiver über IP steuern.
Hierzu lege ich alle möglichen Befehle die ich senden/empfangen kann in ein Array.
Manche Befehle haben einen Wert im String. Beispiel für Lautstärke:
MVL0D MVL = Kommando und 0D die Lautstärke in Hex.
Fast 90% aller Befehle sind eindeutig. Beispiel
MVLUP: Volume up
MVLDOWN: Volume down
...
Ich möchte nun wenn ein Wert eingeht, diesen Identifizieren und ggf den Wert extrahieren.
Das klappt mit dem RegEx.
Ich möchte aber auch einen Wert senden. Da möchte ich zum Arrayeintrag den Wert übergeben und es soll am Ende an die passende Position eingefügt werden.
Ich muss also 0D mit MVL[A-F0-9]{2} zusammenbringen, damit MVL0D rauskommt.
Wäre schön wenn ich nur einen Eintrag im Array benötige für senden/empfangen.