Differenze tra le versioni di "Raccogliere solo alcune righe all'interno di un file di testo"
(Creata pagina con 'Mostreremo di seguito un possibile algoritmo per raccogliere da un file di testo solo alcune righe. Come esempio prederemo dal file header ''/alsa/seq_event.h'' soltanto le r...') |
|||
(8 versioni intermedie di uno stesso utente non sono mostrate) | |||
Riga 1: | Riga 1: | ||
− | Mostreremo di seguito un possibile algoritmo per raccogliere da un file di testo solo alcune righe. | + | Mostreremo di seguito un possibile algoritmo per raccogliere da un file di testo solo alcune righe, individuando la prima riga da raccogliere non da un numero d'indice (ad esempio: la 20<SUP>a</sup> riga), bensì dal proprio testo. |
− | + | ===Uso dell'operatore "Like"=== | |
+ | In questo caso utilizzeremo l'operatore "[https://gambaswiki.org/wiki/lang/like?l=it Like]" per filtrare le righe da raccogliere. | ||
− | + | Come esempio prederemo dal file header ''/usr/include/alsa/mixer.h'' soltanto le righe che contengono almeno i caratteri "''_class'' ". Per ottenere questo risultato si userà anche l'operatore asterisco: "'''*'''_class'''*'''". | |
'''Public''' Sub Main() | '''Public''' Sub Main() | ||
Dim fl As File | Dim fl As File | ||
− | Dim s | + | Dim s As String |
− | |||
− | + | fl = Open "/usr/include/alsa/mixer.h" For Read | |
− | <FONT Color=gray>' '' | + | Repeat |
− | + | <FONT Color=gray>' ''Legge ogni riga del file di testo:''</font> | |
− | + | s = fl.ReadLine() | |
− | <FONT Color=gray>' ''Raccoglie | + | <FONT Color=gray>' ''Raccoglie solo le righe che contengono almeno i caratteri "_class":''</font> |
− | + | If s <FONT Color=#B22222>Like</font> "*_class*" Then Print s | |
− | + | <FONT Color=gray>' ''Quando si raggiunge la fine del file di testo, si esce dal ciclo:''</font> | |
− | + | Until fl.EndOfFile | |
− | |||
− | <FONT Color=gray>' '' | ||
− | |||
− | |||
− | |||
− | + | fl.Close | |
+ | |||
+ | '''End''' | ||
+ | |||
+ | ===Uso dell'operatore "Begins"=== | ||
+ | In questo caso utilizzeremo l'operatore "[https://gambaswiki.org/wiki/lang/begins?l=it Begins]" per filtrare le righe da raccogliere. | ||
+ | |||
+ | Come esempio prederemo dal file header ''/usr/include/alsa/mixer.h'' soltanto le righe che iniziano con i caratteri "''typedef'' ": | ||
+ | '''Public''' Sub Main() | ||
+ | |||
+ | Dim fl As File | ||
+ | Dim s As String | ||
+ | |||
+ | fl = Open "/usr/include/alsa/mixer.h" For Read | ||
+ | |||
+ | Repeat | ||
+ | <FONT Color=gray>' ''Legge ogni riga del file di testo:''</font> | ||
+ | s = fl.ReadLine() | ||
+ | <FONT Color=gray>' ''Raccoglie solo le righe che cominciano con "typedef":''</font> | ||
+ | If s <FONT Color=#B22222>Begins</font> "typedef" Then Print s | ||
+ | <FONT Color=gray>' ''Quando si raggiunge la fine del file di testo, si esce dal ciclo:''</font> | ||
+ | Until fl.EndOfFile | ||
+ | |||
+ | fl.Close | ||
+ | |||
+ | '''End''' | ||
+ | |||
+ | ===Uso dell'operatore "Ends"=== | ||
+ | In questo caso utilizzeremo l'operatore "[https://gambaswiki.org/wiki/lang/ends?l=it Ends]" per filtrare le righe da raccogliere. | ||
+ | |||
+ | Come esempio prederemo dal file header ''/usr/include/alsa/mixer.h'' soltanto le righe che terminano con i caratteri "''value);'' ": | ||
+ | '''Public''' Sub Main() | ||
+ | |||
+ | Dim fl As File | ||
+ | Dim s As String | ||
+ | |||
+ | fl = Open "/usr/include/alsa/mixer.h" For Read | ||
+ | |||
+ | Repeat | ||
+ | <FONT Color=gray>' ''Legge ogni riga del file di testo:''</font> | ||
+ | s = fl.ReadLine() | ||
+ | <FONT Color=gray>' ''Raccoglie solo le righe che terminano con "value);":''</font> | ||
+ | If s <FONT Color=#B22222>Ends</font> "value);" Then Print s | ||
+ | <FONT Color=gray>' ''Quando si raggiunge la fine del file di testo, si esce dal ciclo:''</font> | ||
+ | Until fl.EndOfFile | ||
+ | |||
+ | fl.Close | ||
'''End''' | '''End''' |
Versione attuale delle 15:36, 11 set 2022
Mostreremo di seguito un possibile algoritmo per raccogliere da un file di testo solo alcune righe, individuando la prima riga da raccogliere non da un numero d'indice (ad esempio: la 20a riga), bensì dal proprio testo.
Uso dell'operatore "Like"
In questo caso utilizzeremo l'operatore "Like" per filtrare le righe da raccogliere.
Come esempio prederemo dal file header /usr/include/alsa/mixer.h soltanto le righe che contengono almeno i caratteri "_class ". Per ottenere questo risultato si userà anche l'operatore asterisco: "*_class*".
Public Sub Main() Dim fl As File Dim s As String fl = Open "/usr/include/alsa/mixer.h" For Read Repeat ' Legge ogni riga del file di testo: s = fl.ReadLine() ' Raccoglie solo le righe che contengono almeno i caratteri "_class": If s Like "*_class*" Then Print s ' Quando si raggiunge la fine del file di testo, si esce dal ciclo: Until fl.EndOfFile fl.Close End
Uso dell'operatore "Begins"
In questo caso utilizzeremo l'operatore "Begins" per filtrare le righe da raccogliere.
Come esempio prederemo dal file header /usr/include/alsa/mixer.h soltanto le righe che iniziano con i caratteri "typedef ":
Public Sub Main() Dim fl As File Dim s As String fl = Open "/usr/include/alsa/mixer.h" For Read Repeat ' Legge ogni riga del file di testo: s = fl.ReadLine() ' Raccoglie solo le righe che cominciano con "typedef": If s Begins "typedef" Then Print s ' Quando si raggiunge la fine del file di testo, si esce dal ciclo: Until fl.EndOfFile fl.Close End
Uso dell'operatore "Ends"
In questo caso utilizzeremo l'operatore "Ends" per filtrare le righe da raccogliere.
Come esempio prederemo dal file header /usr/include/alsa/mixer.h soltanto le righe che terminano con i caratteri "value); ":
Public Sub Main() Dim fl As File Dim s As String fl = Open "/usr/include/alsa/mixer.h" For Read Repeat ' Legge ogni riga del file di testo: s = fl.ReadLine() ' Raccoglie solo le righe che terminano con "value);": If s Ends "value);" Then Print s ' Quando si raggiunge la fine del file di testo, si esce dal ciclo: Until fl.EndOfFile fl.Close End