Raccogliere solo alcune righe all'interno di un file di testo
Da Gambas-it.org - Wikipedia.
Versione del 16 set 2014 alle 08:15 di Vuott (Discussione | contributi)
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.
Come esempio prederemo dal file header /alsa/seq_event.h soltanto le righe appartenenti della dichiarazione della 'Struttura "snd_seq_event", escludendo quelle che in gnerale iniziano con il carattere "#", fatta eccezione per quelle che inziano con "#include".
Il procedimento fondamentale è l'individuazione della prima e dell'ultima riga del gruppo di righe da raccogliere. All'interno di queste due righe, iniziale e finale, si raccoglieranno o escluderanno le righe ivi esistenti:
Public Sub Main() Dim fl As File Dim s, t As String Dim v As Boolean fl = Open "/usr/include/alsa/seq_event.h" For Read ' Leggiamo il file dall'inizio fino all'ultima riga della dichiarazione della "Struttura" in questione: Do s = fl.ReadLine() ' Raccoglie comunque le righe che iniziano con "#include": If s Begins "#include" Then t &= s & "\n\n" If s = "typedef struct snd_seq_event {" Then v = True If s Begins "#" Then Continue If v Then t &= Chr(10) & s ' Il ciclo dura sino a quando "v" non diventa vera e contemporaneamente "s" non diventa uguale a "} snd_seq_event_t;": Loop Until (v = True) And (s = "} snd_seq_event_t;") Print t fl.Close End