Datentabelle nach nicht genauen Übereinstimmungen durchsuchen?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ich arbeite an einem Skript, bei dem ich eine Variable "Plate" habe, die als Text wie "8SVPCCV1G0BB2" festgelegt ist. Ich muss diese Variable verwenden, um eine Zeile in einer anderen Tabelle auszuwählen, in der "Plate" als Platzhalter angezeigt werden kann:
8S
8SV
8SQPCC
*
In diesem Fall möchte ich die Zeile 8SV auswählen. Wenn meine Variable jedoch "8PSVTTY2G0AB3" wäre, würde ich möchten, dass sie mit der Zeile * übereinstimmt, die eine generische Zeile ist.
Ich habe mich für die Verwendung von Regex oder Pattern-Matching entschieden, aber ich bin für beide neu, also habe ich noch kein Glück. Bin ich auf dem richtigen Weg, diese anzuschauen? Oder gibt es eine bessere Möglichkeit, dieses Matching durchzuführen? Vielen Dank!
Re: Datentabelle nach nicht genauen Übereinstimmungen durchsuchen?Ich bin mir sicher, t Hier sind mehrere Wege, um dies zu erreichen. Eine Möglichkeit besteht darin, zunächst die Zeilen auszuwählen, die dem Muster entsprechen, und wenn keine Zeilen ausgewählt sind, wird die Zeile "*" ausgewählt.
// Beispieltabelle
mein Tisch = Öffnen ( "$ SAMPLE_DATA / Big Class.jmp" ) ;
: Name [ 1 ] = "*" ;
// Funktion zur Auswahl übereinstimmender Zeilen oder Standardzeile "*"
select_plate = Funktion ({ dt . p } .
dt << wähle wo ( Pat Match ( : Name . Teller )) ;
Ob ( N Row ( dt << bekommt selektierte Zeilen ) == 0 .
dt << wähle wo ( : Name == "*" )
) ;
) ;
// Testen Sie die Funktion
Teller = "ACL" ;
select_plate ( mein Tisch . Teller ) ;
Warten ( 2 ) ;
Teller = "QQQ" ;
select_plate ( mein Tisch . Teller ) ;
Re: Datentabelle nach nicht genauen Übereinstimmungen durchsuchen?Ich konnte dies zum Laufen bringen, wenn es eine passende Zeile gibt:
targetconfig << Neue Spalte ("PlateMatch", Formel (Pat Match (Platte,: PlateStart))));
Das einzige Problem dabei ist, wenn die Platte nur mit der * -Zeile übereinstimmt.