martedì 29 ottobre 2013

legge un file listino Metel ed estrae in un file di testo solo articoli inseriti bel file trova

'

' vbs - legge un file Metel ed estrae, in un file di testo, solo

' gli articoli inseriti nel file trova.txt

' esempio struttura file trova.txt:

' 4878

' 4881

' 54776

' 50264

'

option explicit

'

Const ForReading = 1 'Apre un file in lettura.

dim filelistinometel, filerisultato, filericercati, dovescrivere, messaggio

Dim fso, ftrovati, fleggi, articolodatrovare, memorizzati(), contali, quanti, conta

Set fso = CreateObject("Scripting.FileSystemObject")

' === nome dei file da utilzzare

filelistinometel = "C:\LISTINOLSP.TXT" ' file listino metel

filericercati = "C:\trova.txt" ' file contenenti articoli da trovare

filerisultato = "C:\ttrovati.txt" ' file articoli corrispondenti

'

messaggio = ""

messaggio = messaggio & time & vbcrlf

'

'

Set dovescrivere = fso.CreateTextFile(filerisultato)

Set fleggi = fso.OpenTextFile(filericercati, ForReading, False)

'

' === carica in memoria il listino metel

quanti = 0

call Caricafile(filelistinometel)

'

' === per recuperare la testata del listino

call ricercadatato("METEL")

'

' === legge in memoria tutto il file

Do While fleggi.AtEndOfStream <> True

articolodatrovare = fleggi.ReadLine

call ricercadatato(articolodatrovare)

Loop

'

'

dovescrivere.close

fleggi.close

'

messaggio = messaggio & time & vbcrlf & "nr. articoli: " & quanti

msgbox messaggio

' ===

sub ricercadatato(articoloricercato)

Dim articolo, strdata, lunghezzaarticolo

lunghezzaarticolo = 19

for conta = 1 to quanti

strdata = memorizzati(conta)

articolo = left(strdata,lunghezzaarticolo)

if instr(articolo, articoloricercato) then

dovescrivere.WriteLine strdata

End If

next

'

end sub

' === memorizza in una array tutti gli articoli

Sub Caricafile(sFileName)

Dim fp, rigaletta

Set fp = fso.OpenTextFile( sFileName, ForReading, False)

Do While fp.AtEndOfStream <> True

rigaletta = fp.ReadLine

quanti = quanti + 1

redim preserve memorizzati(quanti)

memorizzati(quanti) = rigaletta

Loop

fp.Close

End Sub

'

'

Nessun commento:

Posta un commento