PaoloNST
somma aritmetica di script
salve ho necessità di sommare 3 campi di un file csv per poi importarli in ready
copiando un vecchio script che mi avete fatto sono arrivato a questo che non funziona... cosa sto sbagliando? allego il file
--- Option Explicit
Dim FileOrigine Dim FileDestinazione Dim ContenutoFile Dim ContenutoConvertito
Dim OutputData, righe, i, campi Dim NuovoNomeFile Dim ImportazioneAnnullata
' Visualizza una barra di avanzamento dell'elaborazione Rdy.LogForm_Show True, False, True
FileOrigine = "C:\Ready\Cartella principale\Cartella principale\CATALOGO.csv" FileDestinazione = "C:\Ready\Cartella principale\Cartella principale\CATALOGO1.csv"
' Lettura file ricevuto dal fornitore ContenutoFile = Rdy.LoadStringFromFile(FileOrigine)
' inserimento su un array delle righe trovate sul file Righe=Split(ContenutoFile, vbCrLf)
' Genero un nuovo file con con gli sconti NuovoNomeFile = FileDestinazione ' Creo il file vuoto e passo il nome del nuovo file elaborato alla procedura di import Rdy.SaveStringToFile NuovoNomeFile,""
' Questa variabile conterra' le righe rielaborate da scrivere sul file temporaneo OutputData = ""
' scorre tutte le righe del file ImportazioneAnnullata = False For i=0 To UBound(righe) ' Aggiorna la barra di avanzamento dell'elaborazione Rdy.LogForm_Progress i, UBound(righe) If Rdy.LogForm_StopProcess_Pressed Then ImportazioneAnnullata=True Exit For End If
' spezzo la riga in tanti campi separati (in questo caso viene considerato il punto e virgola come separatore di campo) campi=split(righe(i),";") If i=0 Then ' La prima riga non viene modificata perche' contiene le intestazioni dei campi Else ' Controllo che sulla riga siano presenti 2 o piu' campi If UBound(campi)>=20 Then campi(9)=campi(+campi(6)+campi(7) End If End If
' Aggiunge la riga alla stringa di output OutputData = OutputData & join(campi, ";") & vbCrLf
' Ogni 100 righe scrive sul file temporaneo e svuota il buffer If (i mod 100)=0 Then Rdy.SaveStringToFile NuovoNomeFile,OutputData,True OutputData = "" End If Next
' Nasconde la barra di avanzamento Rdy.LogForm_Hide
If ImportazioneAnnullata Then 'Scrive un file vuoto Rdy.SaveStringToFile NuovoNomeFile,"",True Rdy.ShowMessage "Elaborazione interrotta dall'utente" Else ' Salvo le ultime righe Rdy.SaveStringToFile NuovoNomeFile,OutputData,True End If
|