' *****
' 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