Teilstring Suche im Array

Startseite Foren Deutsches LiveCode-Forum Teilstring Suche im Array

Schlagwörter: 

Dieses Thema enthält 6 Antworten und 3 Teilnehmer. Es wurde zuletzt aktualisiert von  Torsten vor 2 Monate, 2 Wochen.

  • 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
    Moderator
  • #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!

Du musst angemeldet sein, um auf dieses Thema antworten zu können.