0

Inhalt Textfeld auswerten

Hallo

Ich suche schon seit Stunden nach einer Lösung und habe alle möglichen Fragstellungen für die Problemsuche auf der Ninox-Seite ausprobiert und stecke fest.

Ich habe eine Variable 'vWert' mit folgendem Inhalt: 4567/274#1234/279#1235/280 (genau in dieser Schreibweise, kann später noch mehr werden)

Zur Anschauung habe ich den Inhalt von 'vWert 'ein 'Mehrfach Textfeld' gespeichert.

Ich möchte nun nach der ersten Zahlenfolge (vor dem Slash) suchen und wenn sie gefunden ist den zugehörigen Wert nach dem Slash in eine ander Variable 'vID' speichern. Am liebsten dirkt aus der Variablen 'vWert' heraus ohne das 'Mehrfach Textfeld_ zu benutzen 

Hat jemand eine Idee, wie das funktionieren könnte?

Vielen Dank vorab.#Gruss

Uwe

6 Antworten

null
    • BugTrapper
    • vor 5 Jahren
    • Gemeldet - anzeigen

    let s := replace(vWert, "#", "/");
    let myArray := split(s, "/");
    text(item(myArray, 0)) + "," + text(item(myArray, 1));

    vID:=text(item(myArray,1));

    in einem Berechnungsfeld.

    • UweG
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Bug Trapper.

    Erst einmal Danke für die Antwort.

    Leider verstehe ich sie nicht.

    Zum einen was bedeutet "in einem Berechnungsfeld"?

    Ich erhalte vWert aus einem Script, welches durch einen Button ausgelöst wird und möchte es innerhalb dieses Skripts weiterverarbeiten.

    Zum zweiten, wo gebe ich den zu suchenden Wert ein? Zum Beipiel 1234 um den Wert 279 in die Variable vID zu speichern?

    Ich habe deinen Vorschlag mal in das Script eingebunden und erhalte die Fehlermeldung:

    "Die Ausdrücke für 'dann' und 'sonst' liefern unterschiedliche Datentypen zurück"  bei vID:=text(item(myArray,1));

    Gruss

    Uwe

    • Leonid_Semik
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Uwe,

    dann vielleicht so:

    ---

    let mySearch:='DEIN SUCHFELD';

    let vID:="";

    for i in split( 'vWert',"#") do

    if first (split (i,"/")) =mySearch then vID:=last(split (i,"/")) end

    end;

    ---

    Dabei ist vID ein text. Wenn du die Zahl benötigst, dann musst du number(vID) verwenden.

     

    Leo

    • BugTrapper
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Leo hat es auf den Punkt gebracht und den Code optimiert, wenn man den ganzen Text durchlaufen will, was aber aus der ursprünglichen Fragestellung nicht herauskam. 

    Hier wurde nämlich nur nach der 1. !!! Zahlenfolge vor dem Slash gefragt.

    • UweG
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Leo, vielen Dank für für den funktionierenden Code. Wie soll ich als Laie mit der vorhandenen Dokumentation darauf kommen?Glücklicherweise hat jemand das gleiche Problem gehabt und lässt uns an dem Wissen teilhaben. Dafür bin ich dem Forum und allen Mitwirkenden dankbar.

    Hallo BugTrapper. Da habe ich mich in der ersten Anfrage wohl missverständlich ausgedrückt, abber deine Antwort hat mich erst einmal darauf gebracht mich mit der split()-Funktion auseinander zu setzen, was dank der Ninox-Referenz-Datenbank vom Copytexter super ist.

    • BugTrapper
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Das freut mich :-)

    Ansonsten gibt es noch zig andere Möglichkeiten, z.B kann man auch mit index() einen Text suchen, damit ginge es auch, wäre aber nicht so schnittig.

    Mit split() geht es nur dann, wenn man wiederkehrende Zeichenfolgen hat, die immer wieder an der gleichen Stelle stehen, wie z. B. "/" oder "#"

    "The teacher learns more than the student"

Content aside

  • vor 5 JahrenZuletzt aktiv
  • 6Antworten
  • 1910Ansichten