Usando Pat Match in LoopCiao,
Sto provando a scrivere un programma per prendere una stringa di input, trovare una parola chiave all'interno della stringa completa e creare una nuova colonna con solo l'abbreviazione. Lo script dovrebbe scorrere tutte le righe di una singola colonna. Il mio codice genera un errore e credo che sia la sintassi del mio ciclo ma non riesco a capire dove si trova l'errore. Ecco cosa ho:
For Each Row(
:prodFam = If(
Pat Match(:prodGroup, "aleutian"),
"ALEUTIAN",
Pat Match(:prodGroup, "ari"),
"ARI",
Pat Match(:prodGroup, "blue"),
"BLUE RIDGE",
e il ciclo continua. Qualsiasi aiuto è molto apprezzato, grazie!
Ri: Usando Pat Match in LoopCome dici tu la funzione Contiene restituisce un valore numerico (la posizione in cui è contenuto l'elemento). Tuttavia, puoi considerare il valore come booleano: 0 = falso, altrimenti vero, quindi puoi scrivere codice che considera la funzione Contiene come booleana:
Se (Contiene (...),
// fare qualcosa
)
Ri: Usando Pat Match in LoopHai bisogno di una risposta booleana per il tuo Se() funzione per funzionare. In questo modo è come il risultato di Contiene () sarà interpretato come ho già spiegato.
Ri: Usando Pat Match in Loopil problema con l'uso della funzione Contains () è che restituisce un valore numerico quando ho veramente bisogno solo di un valore booleano vero o falso. Suppongo che potrei usare il valore che ritorna per indicizzare una sottostringa, ma alla fine sembra che più linee di codice per qualcosa che potrebbe essere fatto usando pat match, non è così? Grazie per la risposta!
Ri: Usando Pat Match in LoopPrima di tutto, se questo codice non fa parte di uno script più grande, puoi inserire una formula di colonna. L'argomento nel Per ogni riga () la funzione è uguale alla formula della colonna.
In secondo luogo, mentre gli schemi di stringhe di caratteri sono molto utili, ritengo che sia possibile utilizzarli Contiene (stringa di prova, stringa di destinazione) in questo caso. Non stai cercando un modello ma una stringa letterale (parola). Contiene () restituire il percorso se trovato o zero se non trovato. JMP interpreta zero come falso e non zero come vero, quindi la tua logica implementata con Se() le funzioni stanno così come sono.
Ri: Usando Pat Match in LoopQuindi ho capito che una volta creato un riferimento a una colonna, non si usano più due punti per indicare che si tratta di un nome di colonna. Tuttavia, il mio script ora funziona senza compilare la tabella con le abbreviazioni. Mi manca ancora qualcosa? Grazie!