giovedì 31 ottobre 2013

dividi articoli - vbs

' *****

' esempio file di origine:

'AAA418|PLAFON. CABL 4X18 W|NR|22|0|0|0|0|00|0|0|160|11/05/2011|1446|AAA|AAA|0000000000000

'BBB00050|SCATOLA CONICA D.65|NR|22|0|0|0|0|0|0|0|204|16/09/2013|00050|BBB|BBB|0000000000000

'************************************************

' vbs - divide un file di testo in più file.

' utilizza i primi tre caratteri di ogni riga per determinare il nome del file di output

'************************************************

option explicit

'

' ForAppending = 8 ForReading = 1, ForWriting = 2

Const ForAppending = 8

'

Dim fso, farticoli, datiletti, iniziali, contenuti

dim marchivio, s, archiviodef, archivioorigine, archiviolog, archivioelenco, cartelladiscrittura, log, elencof

' ==== path dei file utilizzati

' === archivio di default per le iniziali non dichiarate

archiviodef = "C:\listino-personalizzato\articolialtri.txt"

' === file contenente gli articoli da suddividere

archivioorigine = "C:\listino-personalizzato\articoli.txt"

' file di log - copia del file di origine

archiviolog = "C:\listino-personalizzato\log.txt"

' elenco dei file creati

archivioelenco = "C:\listino-personalizzato\da-bus\elencofile.txt"

'

cartelladiscrittura = "C:\listino-personalizzato\"

' ====

'

Set fso = CreateObject("Scripting.FileSystemObject")

'file contenente gli articoli da suddividere

Set farticoli = fso.OpenTextFile(archivioorigine) ' Apre file di testo.

' file di log - copia del file di origine

Set log = fso.OpenTextFile(archiviolog, 2, True)

' elenco dei file creati

Set elencof = fso.OpenTextFile(archivioelenco, 2, True)

'

Do While Not (farticoli.atEndOfStream)

datiletti = farticoli.ReadLine 'legge una riga

if len(datiletti) => 3 then

iniziali = left(datiletti,3)

log.writeline(datiletti)

call scrivifile(iniziali,datiletti)

else

log.writeline(datiletti)

call scrivifile("articolivari",datiletti)

end if

Loop

'

sub scrivifile(piniziali,pdatiletti)

dim afso, archivio, fscrivo, presente

Set afso = CreateObject("Scripting.FileSystemObject")

'

archivio = cartelladiscrittura & piniziali & ".txt"

presente = instr(piniziali,"|")

if presente > 0 then

archivio = archiviodef

end if

'

marchivio = archivio

Select Case piniziali

' per queste iniziali viene creato un file specifico

Case "ABB", "ARC", "ARE", "ALL"

CASE "BER", "BOC", "TIC", "L&L"

CASE "CAM", "COM", "AIR", "GUZ"

CASE "CEM", "COE", "CAV", "MRT"

CASE "SUR", "GEW", "MTT", "TIC", "NMZ"

CASE "PLE", "VIW", "PRI", "TAR", "PAL"

CASE "TRE", "NOX", "ETN", "SIL", "VIM"

CASE "LEO", "TEN", "FRA", "SIM", "MAR"

CASE "OMR", "ELV", "FAI", "LOM", "URM"

CASE "PRO", "OTY", "SID", "IVE", "LUM"

CASE "EGO", "LPU", "VIP", "TUT", "VAL"

CASE "PRA", "LT3", "CST", "MCI", "IDL", "NAT"

CASE "LUC", "FOS", "ZUC", "VOR", "OSR", "GMB"

CASE "OVA", "PHI", "MEG", "INT", "REG", "SIS"

'

Case Else

archivio = archiviodef

End Select

'

If afso.FileExists(archivio) = true Then

Set fscrivo = afso.OpenTextFile(archivio, ForAppending, True) ' Apre file di testo.

else

Set fscrivo = afso.OpenTextFile(archivio, 2, True)

fscrivo.WriteLine("SG|TX|AR_UNMIS|AR_CODIVA|PREZZO1|PREZZO2|listino|prezzo|sconto1|sconto2|sconto3|L_AV_CLASS|aggiornato|ar_codalt|siglacaem|siglametel|ean13")

'

s = " File """ & archivio & """"

elencof.WriteLine(s)

end if

'

fscrivo.WriteLine(pdatiletti)

fscrivo.Close

'

set afso = nothing

end sub

'

'

' ===

Nessun commento:

Posta un commento