Differenze tra le versioni di "Ottenere da un testo una parte delimitata da due parole"
(2 versioni intermedie di uno stesso utente non sono mostrate) | |||
Riga 1: | Riga 1: | ||
− | Se di un testo si vuole ottenere una parte delimitata da due parole, si può semplicemente utilizzare la funzione | + | Se di un testo si vuole ottenere una parte delimitata da due parole, si può semplicemente utilizzare la funzione nativa "[[Scan|Scan()]]". |
Riga 9: | Riga 9: | ||
la parte di testo che va dalle parole "''la conoscenza''" alla parola "''collezione''". | la parte di testo che va dalle parole "''la conoscenza''" alla parola "''collezione''". | ||
− | Si procederà inserendo come elementi del secondo argomento della funzione | + | 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 due 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. |
− | Va precisato che le parole, inserite nel secondo argomento della funzione | + | Va precisato che le parole, inserite nel secondo argomento della funzione "Scan()" <SPAN Style="text-decoration:underline">non</span> faranno parte della sezione di testo che si intende raccogliere: sono, insomma, dei limiti ''esterni'' alla parte di testo che a noi interessa. |
'''Public''' Sub Main() | '''Public''' Sub Main() | ||
Riga 19: | Riga 19: | ||
"una collezione di documenti ipertestuali." | "una collezione di documenti ipertestuali." | ||
− | + | Print Scan(archivo, "*immagazzinare* *di*")[2] | |
'''End''' | '''End''' | ||
− | |||
− | |||
Il risultato finale in console sarà dunque come volevamo: | Il risultato finale in console sarà dunque come volevamo: | ||
''la conoscenza in modo collaborativo'' | ''la conoscenza in modo collaborativo'' | ||
Riga 30: | Riga 28: | ||
− | + | ===Caso in cui le parole sono separate da un ritorno a capo=== | |
− | + | Si procede in modo identico alla modalità vista sopra, anche se le parole sono tutte separate da un ritorno a capo. | |
− | Si procede in modo identico, anche se le parole sono tutte separate da un ritorno a capo. | ||
<BR>Poniamo per esempio il caso di avere un file di testo così formato: | <BR>Poniamo per esempio il caso di avere un file di testo così formato: | ||
uno | uno | ||
Riga 49: | Riga 46: | ||
Dim testo As String | Dim testo As String | ||
− | + | testo = File.Load("<FONT Color=gray>''/percorso/del/file/di/testo''</font>") | |
− | + | Print Scan(testo, "*tre* *nove*")[2] | |
'''End''' | '''End''' | ||
Riga 62: | Riga 59: | ||
− | + | ===Caso in cui si debbano estrarre sottostringhe delimitate da parentesi quadre [ ]=== | |
− | Qualora si debbano estrarre sottostringhe delimitate da parentesi quadre [ ], si | + | Qualora si debbano estrarre sottostringhe delimitate da parentesi quadre [ ], si ripeteranno dopo la prima parentesi quadra - aperta a destra ([) - entrambe le parentesi quadre. |
Mostriamo un esempio pratico, nel quale abbiamo una stringa di caratteri interrotta da una parentesi quadra aperta a destra e dopo alcuni caratteri è interrotta da una parentesi quadra aperta a sinistra. Vogliamo estrarre in particolare la sottostringa compresa fra le due parentesi quadre. | Mostriamo un esempio pratico, nel quale abbiamo una stringa di caratteri interrotta da una parentesi quadra aperta a destra e dopo alcuni caratteri è interrotta da una parentesi quadra aperta a sinistra. Vogliamo estrarre in particolare la sottostringa compresa fra le due parentesi quadre. | ||
Riga 71: | Riga 68: | ||
Dim s As String | Dim s As String | ||
− | + | s = Scan(testo, "*[<FONT Color=#B22222><B>[]</b></font>*]*")[1] | |
− | + | ||
− | + | Print s | |
'''End''' | '''End''' |
Versione attuale delle 20:06, 11 mag 2023
Se di un testo si vuole ottenere una parte delimitata da due parole, si può semplicemente utilizzare la funzione nativa "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 due 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.
Va precisato che le parole, inserite nel secondo argomento della funzione "Scan()" non faranno parte della sezione di testo che si intende raccogliere: sono, insomma, dei limiti esterni alla parte di testo che a noi interessa.
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
Caso in cui le parole sono separate da un ritorno a capo
Si procede in modo identico alla modalità vista sopra, 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
Caso in cui si debbano estrarre sottostringhe delimitate da parentesi quadre [ ]
Qualora si debbano estrarre sottostringhe delimitate da parentesi quadre [ ], si ripeteranno dopo la prima parentesi quadra - aperta a destra ([) - entrambe le parentesi quadre.
Mostriamo un esempio pratico, nel quale abbiamo una stringa di caratteri interrotta da una parentesi quadra aperta a destra e dopo alcuni caratteri è interrotta da una parentesi quadra aperta a sinistra. Vogliamo estrarre in particolare la sottostringa compresa fra le due parentesi quadre.
Public Sub Main() Dim testo As String = "aaa[bbb]ccc" Dim s As String s = Scan(testo, "*[[]*]*")[1] Print s End