Announcement

Collapse
No announcement yet.

String mehrfach durchsuchen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • String mehrfach durchsuchen

    Hallo erstmal!


    Irgendwie hab ich eine Denkblockade ...
    Ich komme gleich mal zu meinem Problem.

    Ich will einen String mit unbekannter länger nach Schlüsselwortern durchsuchen. Soweit eigentlich kein Problem, nur gibt es dieses Schlüsselwort mehrfach. Dazu kommt, dass ich einige Werte daraus auslesen will.

    Beispiel Text
    Beispiel

    "einheitenname" auf Feld(x|y) gehört dem Spieler "spielername" ("allianzenname")
    Einheiten: "Anzahl"
    Einheiten: "Anzahl"
    Feld-/Burgkampfkraft: "wert1/wert2"

    "einheitenname" auf Feld(x|y) gehört dem Spieler "spielername" ("allianzenname")
    Einheiten: "Anzahl"
    Einheiten: "Anzahl"
    Feld-/Burgkampfkraft: "wert3/wert4"
    Dies kann sich beliebig oft wiederholen und genau das ist mein Problem. Theoretisch könnte ich doch den schon ausgelesenenpart immer wieder löschen oder?

    Kato~

  • #2
    Warum liest Du den Text nicht zeilenweise ein, gerade wenn er etwas länger ist. Du liest die 4 Zeilen, schreibst das, was Du aus der Zeile brauchst, in irgendwelche Variablen und verarbeitest das, und dann kommen die nächsten 4 Zeilen dran. Wie wäre das?

    Comment


    • #3
      Hallo Dave_Bowman!

      Leider ist ein Abschnitt nicht immer 4 Zeilen lang. Es können beliebig viele Zeilen sein, je nachdem was eingegeben wird. Oder kann man die Zeilen die ausgelesen werden sollen dynamisch gestalten? Der Anfangs und Endpunkt hat ja immer die gleichen Elemente.

      Comment


      • #4
        Aber die Struktur einer "Zeileneinheit" ist doch immer gleich, oder? Die erste Zeile bezeichnet irgendwas, dann kommen n Zeilen, die mit "Einheiten" anfangen und sich auf die erste Zeile beziehen, und dann noch eine mit den Kampfwerten zum Schluss, oder?
        Aber ist ja auch egal, Du kannst doch die Art einer Zeile identifizieren, solange sie mit einem typischen Wort anfängt, dass Du mit IF zeile.StartsWith("Wort") THEN abfragen kannst.

        Comment


        • #5
          Leider beginnt nicht jeder ( ich nenn es mal Block ) Block mit dem gleichen Wort. Nur die letzte Zeile ist immer gleich. Was aber Hilfreich sein könnte ist, dass nach jedem Block eine freie Zeile kommt. Dann könnt ich ja theoretisch die nächste Zeile als Startfestsetzten und als ende halt den Blockende.

          Comment


          • #6
            Hallo Kato

            Ist es denn vielleicht möglich deinen Zeilen oder Start Ausdrücken irgenwelche speziellen Zeichen zu setzen wie Pipe |Spielername| dann könntest du den String ja auch nach diesen Zeichen Spliten und dann in einen Array füllen und die einzelnen strings im Array dann absuchen ?

            Comment


            • #7
              Ich hab mir das so gedacht

              Die "Blöcke" sind ja durch "vbCR" getrennt, somit könnte ich jeden Block unterteilen, was mir ja soweit schonmal weiter hilft.

              Dann werd ich immer zu "Spieler" hüpfen und die nächsten zeichen auslesen, bis ein leerzeichen kommt. Dann weiß ich auch, dass die nächsten Zeilen Einheiten sind, wo ich nur namen und Zahl auslesen muss. Dann weiß ich auch, dass die letzte Zeile die Feld-/Burgkampfkraft ist!

              Das Problem was ich jetzt noch habe ... zeilenweise auslesen ... Den befehl hab ich einfach mal "ausprobiert" werd aber nicht wirklich schlau draus. Werd mich also erstmal im internet schlau machen müssen!

              Danke an alle die mir geholfen haben

              Comment

              Working...
              X