Differenze tra le versioni di "Raccogliere solo alcune righe all'interno di un file di testo"

Da Gambas-it.org - Wikipedia.
 
Riga 5: Riga 5:
  
 
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'''*'''".
 
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
Riga 22: Riga 22:
 
   fl.Close
 
   fl.Close
 
   
 
   
  '''End'''
+
  End
  
 
===Uso dell'operatore "Begins"===
 
===Uso dell'operatore "Begins"===
Riga 28: Riga 28:
  
 
Come esempio prederemo dal file header ''/usr/include/alsa/mixer.h'' soltanto le righe che iniziano con i caratteri "''typedef'' ":
 
Come esempio prederemo dal file header ''/usr/include/alsa/mixer.h'' soltanto le righe che iniziano con i caratteri "''typedef'' ":
  '''Public''' Sub Main()
+
  Public Sub Main()
 
   
 
   
 
   Dim fl As File
 
   Dim fl As File
Riga 45: Riga 45:
 
   fl.Close
 
   fl.Close
 
   
 
   
  '''End'''
+
  End
  
 
===Uso dell'operatore "Ends"===
 
===Uso dell'operatore "Ends"===
Riga 51: Riga 51:
  
 
Come esempio prederemo dal file header ''/usr/include/alsa/mixer.h'' soltanto le righe che terminano con i caratteri "''value);'' ":
 
Come esempio prederemo dal file header ''/usr/include/alsa/mixer.h'' soltanto le righe che terminano con i caratteri "''value);'' ":
  '''Public''' Sub Main()
+
Public Sub Main()
 
   
 
   
 
   Dim fl As File
 
   Dim fl As File
Riga 68: Riga 68:
 
   fl.Close
 
   fl.Close
 
   
 
   
  '''End'''
+
  End

Versione attuale delle 08:45, 23 giu 2024

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