Ottenere da un testo una parte delimitata da due parole

Da Gambas-it.org - Wikipedia.

Se di un testo si vuole ottenere una parte delimitata da due parole, si può semplicemente utilizzare la funzione Scan().


Poniamo per esempio di voler ottenere dal seguente testo:

Lo scopo di questa Wiki è quello di condividere,
scambiare, immagazzinare la conoscenza in modo collaborativo
grazie alle potenzialità offerte dalla Wiki stessa,
una collezione di documenti ipertestuali.

la parte di testo che va dalle parole "la conoscenza" alla parola "collezione".

Si procederà inserendo come elementi del secondo argomento della funzione Scan(), detti percorsi, la parola o le parole, qualora sia necessario inserire più parole per individuare precisamente l'inizio o il termine della parte da ottenere. L'adozione di questa seconda modalità - con pidue o più parole, risulta utile quando la parola precedente l'inizio della parte di testo da ottenere, oppure la parola successiva alla fine della parte, sia un lemma presente due o più volte nel testo.

Public Sub Main()

 Dim testo As String = "Lo scopo di questa Wiki è quello di condividere," &
                        "scambiare, immagazzinare la conoscenza in modo collaborativo" &
                        "grazie alle potenzialità offerte dalla Wiki stessa," &
                        "una collezione di documenti ipertestuali."

  Print Scan(archivo, "*immagazzinare* *di*")[2]

End


Il risultato finale in console sarà dunque come volevamo:

la conoscenza in modo collaborativo
grazie alle potenzialità offerte dalla Wiki stessa,
una collezione



Si procede in modo identico, anche se le parole sono tutte separate da un ritorno a capo.
Poniamo per esempio il caso di avere un file di testo così formato:

uno
due
tre
quattro
cinque
sei
sette
otto
nove
dieci

Poniamo, poi, ad esempio di voler raccogliere le parole da "quattro fino ad otto":

Public Sub Main()

 Dim testo As String

  testo = File.Load("/percorso/del/file/di/testo")

  Print Scan(testo, "*tre* *nove*")[2]

End

Il risultato finale in console sarà dunque come volevamo:

quattro
cinque
sei
sette
otto