Teilstring Suche im Array

Startseite Foren Deutsches LiveCode-Forum Teilstring Suche im Array

Schlagwörter: 

  • Dieses Thema hat 6 Antworten und 3 Teilnehmer, und wurde zuletzt aktualisiert vor 5 Jahren von Torsten.
Ansicht von 6 Antwort-Themen
  • Autor
    Beiträge
    • #13363
      wupp66
      Teilnehmer

        Hallo liebe Forumgemeinde,

        ich habe folgendes Problem, ich möchte in einem Datagrid Array eine gewisse Zeichenfolge suchen und möchte dann das Ergebnis anzeigen lassen.
        Beistpiel : Ich suche eine Strasse indem die Zeichenfolge “weg” vorkommt und die Suche soll mir alle Arrays ausgeben, indem das Wort “weg” vorkommt.
        Mein bisheriges Script sieht so aus, kann aber nur eine Volltextsuche

        on Mouseup
        put empty into tSuche
        put empty into tArray
        put empty into tKeys
        put empty into tAnzahl

        put the fld “EingabeEpon” into tSuche
        put the dgData of grp “EponDaten” of card “EponGrid” into tArray
        put the Keys of tArray into tKeys
        put the num of lines of tKeys into tAnzahl

        put empty into Returnwert
        put empty into tAnzeige

        repeat with i = 1 to tAnzahl
        put tArray[i][“Epon”] after Returnwert
        put “,” & tArray[i][“Haltestelle”] after Returnwert
        put “,” & tArray[i][“Wabe”] after Returnwert
        put “,” & tArray[i][“TSP”] & CR after Returnwert

        if tSuche = tArray[i][“Epon”] or tSuche = tArray[i][“Haltestelle”] then
        put tArray[i][“Epon”] after tAnzeige
        put ” ” & “|” & ” ” & tArray[i][“Haltestelle”] after tAnzeige
        put ” ” & “|” & ” ” & tArray[i][“Wabe”] after tAnzeige
        put ” ” & “|” & ” ” & tArray[i][“TSP”] & CR after tAnzeige

        end if

        end repeat

        put Returnwert into tAnzeige

        put tAnzeige into fld “Ausgabe”
        if tAnzeige = empty then
        put “Bitte überprüfen Sie Ihre Angaben” into fld “Ausgabe”
        end if
        delete char -1 of Returnwert
        end Mouseup

        Wenn wir jemand helfen könnte würde ich mich sehr freuen.
        Bin noch nicht ganz so lange dabei.
        Lieben Gruß
        Andreas

      • #13365
        wupp66
        Teilnehmer

          Nachtrag
          die Zeile “put Returnwert into tAnzeige” nach end repeat muss noch entfernt werden
          habe ich vergessen

        • #13367
          Torsten
          Teilnehmer

            Hi Andreas,

            so wie es aussieht, hast Du eine Tabelle, in der die Daten drin sind.
            Mein Vorschlag wäre, den Inhalt der Tabelle nicht in ein Array, sonder einfach in eine Liste zu exportieren und die Liste mit “filter” entsprechend zu durchsuchen bzw. eben zu filtern.

            put the dgText of grp "EponDaten" of card "EponGrid" into tListe
            filter tListe with tSuche
            put tListe into field "Ausgabe"

            Das Ergebnis sollten alls Zeilen der Tabelle sein, in denen der String tSuche vorkommt.

            Gruss
            Torsten

          • #13369
            Torsten
            Teilnehmer

              Ups, noch eine Korrektur: filter tListe with tSuche findet nur die Zeilen, in der NUR tSuche drin steht. Damit die Zeilen gefunden werden, in denen der String tSuche auftaucht, musst Du Sternchen dazunehmen, um die Wildcard-Patterns zu nutzen.

              also: filter tListe with “*” & tSuche & “*” sollte nur die Zeilen anzeigen, in den tSuche vorkommt.

            • #13375
              Klaus Major
              Administrator
              • #13383
                wupp66
                Teilnehmer

                  Danke für die schnelle Hilfe und der Korrrektur Torsten. Hat funktioniert und der Code ist viel kürzer 🙂

                  Und auch dir Danke Klaus für den Link auf den anderen Artikel

                  wünsche noch ein schönes Wochenende
                  lieben Gruß
                  Andreas

                • #13387
                  Torsten
                  Teilnehmer

                    Perfekt, dann auch Dir ein schönes Wochenende, Andreas!

                Ansicht von 6 Antwort-Themen
                • Du musst angemeldet sein, um auf dieses Thema antworten zu können.