POSITV: Ricerca dell’inizio di una sottostringa di lunghezza variabile

Come:

Lingue disponibili: reporting

La funzione POSITV trova la posizione iniziale di una sottostringa in una stringa più grande. Per esempio, la posizione iniziale della sottostringa DUCT nella stringa PRODUCTION è 4. Se la sottostringa non si trova nella stringa principale, la funzione restituisce il valore di 0. Questa caratteristica è simile a POSIT; tuttavia, le lunghezze dei suoi parametri AnV si basano sulle lunghezze effettive di quei parametri a confronto con altri due parametri che specificano la loro dimensione.


Inizio pagina

x
Sintassi: Come trovare l’inizio di una sottostringa di lunghezza variabile
POSITV(source_string, upper_limit, substring, sub_limit, output)

dove:

source_string

Alfanumerico di tipo An o AnV

Stringa d'origine che contiene la sottostringa la cui posizione si desidera trovare. Potrebbe essere la stringa di caratteri racchiusa tra virgolette singole ('), oppure un campo o variabile che contiene la stringa d'origine. Se si tratta di un campo di formato AnV, la sua lunghezza viene presa dalla lunghezza dei byte memorizzata nel campo. Se upper_limit è inferiore alla lunghezza, la stringa d'origine è troncata a questo limite superiore.

upper_limit

Valore intero

Limite per la lunghezza della stringa d'origine.

substring

Alfanumerico di tipo An o AnV

Sottostringa la cui lunghezza deve essere determinata.Si potrebbe trattare della sottostringa racchiusa tra virgolette singole ('), oppure di un campo che contiene la stringa di caratteri. Se si tratta di un campo, è possibile avere il formato An O AnV.Se si tratta di un campo di tipo AnV, la sua lunghezza viene presa dalla lunghezza byte memorizzata nel campo. Se sub _limit è inferiore alla lunghezza effettiva, la stringa d'origine è troncata a questo limite.

sub_limit

Valore intero

Limite per la lunghezza della sottostringa.

emissione

Valore intero

Nome del campo che contiene il risultato o il formato del valore di emissione racchiuso tra virgolette singole (').



Esempio: Ricerca della posizione iniziale di un modello di lunghezza variabile

POSITV trova la posizione iniziale di un articolo determinativo o indeterminativo finale in un titolo di un film (come ", THE" in SMURFS, THE). Prima TRIMV rimuove gli spazi finali dal titolo, cosicché l'articolo sarà il modello finale:

DEFINE FILE MOVIES
  TITLEV/A39V = TRIMV('T',TITLE, 39,' ', 1, TITLEV);
  PSTART/I4 = POSITV(TITLEV,LENV(TITLEV,'I4'), ',', 1,'I4');
  PLEN/I4 = IF PSTART NE 0 THEN LENV(TITLEV,'I4') - PSTART +1
                    ELSE 0;
END
TABLE FILE MOVIES
  PRINT TITLE
   PSTART AS 'Pattern,Start' IN 25
   PLEN AS 'Pattern,Length'
BY CATEGORY  NOPRINT
WHERE PLEN NE 0
END

L'emissione è:

                         Pattern  Pattern
 TITLE                     Start   Length 
 -----                   -------  -------
 SMURFS, THE                   7        5
 SHAGGY DOG, THE              11        5
 MALTESE FALCON, THE          15        5
 PHILADELPHIA STORY, THE      19        5
 TIN DRUM, THE                 9        5
 FAMILY, THE                   7        5
 CHORUS LINE, A               12        3
 MORNING AFTER, THE           14        5
 BIRDS, THE                    6        5
 BOY AND HIS DOG, A           16        3

WebFOCUS