http://digilander.libero.it/Cenati

Numera Righe

home | e-mail e contatti | Introduzione al sito | Cosa e' e come imparare VbScript

 

 

 

 

 

Numera le righe ma non solo

Avete un testo, un programma, un elenco e volete numerarne le righe? Questo semplice script prende il file che viene passato come parametro (trascinandolo sull'icona del programma) e lo mostra in una pagina di Internet Exporer aggiungendo un numero prima di ogni riga.

La numerazione parte da 001:

Come in altri script che ho pubblicato, all'inizio controllo se ci sono dei files passati al programma. Se non trovo nessun argomento mostro il funzionamento dello script. Se trovo un file, lo apro e creo un vettore che contiene le righe (usando Split divido il testo dove trovo dei ritorni a capo).

Per mostrare le righe in internet explorer devo sostituire i "<" con l'equivalente in html "&lt;", così come ">" deve essere sostituito con "&gt;". Se non lo faccio, i segni di > e di < vengono interpretati come tag html e alterano la visualizzazione del testo.

Ma questo programma può servire, se modificato, anche a fare molte altre cose. Basta cambiare la riga che produce l'output, ad esempio mettendo doc1.writeln(ucase(riga(i)) per ottenere il testo tutto in maiuscole.

Oppure si possono fare altre elaborazioni sul testo, come scartare una parte di ogni riga, oppure eliminare le righe doppie, o codificare in qualche modo il documento letto.

Copia il programma riportato qui sotto in un file con estensione ".vbs" oppure scarica l'archivio zip contentente lo script.

'************************************************
' File:    Numera Righe.vbs (VBScript) 
' Author:  Giovanni Cenati 
' http://digilander.libero.it/Cenati
' Codice liberamente utilizzabile citando il sito.
' Mostra in una pagina di IE il file di testo 
' trascinato sopra l'icona dello script
' anteponendo ad ogni riga un numero progressivo.
' E' utile per fare il debug dei file vbs.
'************************************************

Set objArgs = WScript.Arguments  'Vedo se c'è un agrogmento passato allo script
if objargs.count<>1 then  'altrimenti mostro come si usa il programma
	msgbox "Trascinare un file sul programma per ottenere la numerazione delle righe",&_ 
     vbinformation+vbokonly,"Numera Righe by Cenati Giovanni"
	wscript.quit
end if
path = objArgs(0)  'questa variabile contiene il nome del file da leggere

' Crea l'oggetto FileSystemObject 
Set fso = WScript.CreateObject("Scripting.FileSystemObject")
Set oFile = fso.OpenTextFile(path) 'punto al file da aprire
testo = oFile.ReadAll 'lo leggo tutto
oFile.Close   'e chiudo il file

'Creo un vettore di tutte le righe del file
riga = Split(testo, vbCrLf)

' Lancia Internet Explorer per mostrare i risultati.
Set oIE = WScript.CreateObject("InternetExplorer.Application")
oIE.navigate "about:blank"  '  documento vuoto

' Importante: aspetta che Internet Explorer sia pronto
Do While (oIE.Busy)    
    WScript.Sleep 200      ' Sospende per 200 millisecondi.
Loop
oIE.Visible = 1             ' Internet Explorer è visibile.
oIE.ToolBar = 1	    ' ed ha la toolbar così è presente il pulsante "stampa"
oIE.Height = 500 
set doc1 = oIE.Document     ' Punta al documento...
doc1.open               ' ...lo apre
' Scrive le intestazioni html ed il testo con il nome del file passato come parametro
doc1.writeln("<html><head><title>" & path & "</title></head>")
doc1.writeln("<body bgcolor='#FAF0F0'><pre>")

for i=0 to ubound(riga)	
	riga(i)=Replace(riga(i), "<", "&lt;")
	riga(i)=Replace(riga(i), ">", "&gt;")
   doc1.writeln(right("0000"&i+1,4) & ": " & riga(i))           ' questo è l'output
next 

doc1.writeln("</pre></body></html>")
doc1.close                  
' Chiude il documento, che rimane sullo schermo
'*** Fine programma - Numera Righe.vbs

Giovanni Cenati

 

 

 

© Cenati Giovanni 2004/2010 - http://digilander.libero.it/Cenati - Reventlov at Katamail com

home | e-mail e contatti | Introduzione al sito | Cosa e' e come imparare VbScript