MarioVirgilio Inserito: 10 marzo 2020 Segnala Share Inserito: 10 marzo 2020 Buon giorno a tutti Lo script allegato funziona ma la mia esigenza è leggere il file CSV senza sapere il nome (nell'esempio è inserito il nome Estratto) Mi spiego meglio: sulla USB key ci sarà sempre un solo file CSV di cui non conosco il nome e che dovrei leggere Grazie per la collaborazione Link al commento Condividi su altri siti More sharing options...
pigroplc Inserita: 10 marzo 2020 Segnala Share Inserita: 10 marzo 2020 puoi dare all'operatore la facoltà di inserire il nome? se la risposta è SI, basta sostituire il tag ascii col persorso al posto della stringa fissa nella dichiarazione della variabile "Path" se la risposta è NO, come fai a discriminare quale file leggere, visto che potrebbe darsi ce ne sia più di uno nel modulo di memoria? Link al commento Condividi su altri siti More sharing options...
MarioVirgilio Inserita: 12 marzo 2020 Autore Segnala Share Inserita: 12 marzo 2020 Grazie e buon giorno Come ho scritto nella USB Key ci sarà sempre un solo file ma con nome diverso Procedura di lavorazione: Il responsabile caricherà sulla chiavetta il file della ricetta di produzione e la consegnerà all'operatore (spiegato il motivo per cui ci sarà solo un file CSV) Link al commento Condividi su altri siti More sharing options...
pigroplc Inserita: 12 marzo 2020 Segnala Share Inserita: 12 marzo 2020 MarioVirgilio, puoi prendere spunto da questo script, invece che ricavarne un file ti ricavi semplicemente un tag interno che poi usi nello script precedente. Sub PR_Crea_lista_programmi() ' ***************************************************************************************** ' LEGGE IL NOME DEI FILE PRESENTI NELLA CARTELLA C:\ippo\Progs E CREA UN FILE ' CONTENENTE I NOMI LETTI ' ***************************************************************************************** Dim Folder, File, Elemfile, Fso, f, Counter, TempStr Set Fso = CreateObject("Scripting.FileSystemObject") ' Verifica se la cartella esiste, altrimenti la crea ' (serve solo al primo avvio di WinCC al collaudo, evita di creare a mano la cartella) If Not Fso.FolderExists ("C:\ippo\Progs") Then Fso.CreateFolder ("C:\ippo\") Fso.CreateFolder ("C:\ippo\Progs") End If Set Folder = Fso.GetFolder ("C:\ippo\Progs") Set File = Folder.Files Set f = Fso.OpenTextFile("C:\Storage Card\Prog.lst", 2, True) ' Segnala che la lista è in fase di creazione (serve, eventualmente, per bloccare funzioni o visualizzare ' durante la creazione lista che potrebbe durare qualche secondo in caso di tanti programmi presenti. SmartTags("Creazione_lista_in_corso") = True ' Legge i file presenti in C:\ippo\Progs. ' Al nome del file letto vengono tolti il percorso (primi 14 caratteri) e l'estensione ' in quanto non è necessario visualizzarlo. A causa di ciò, non va mai cambiato il nome ' del percorso C:\ippo\Progs altrimenti i caratteri iniziali da eliminare non sarebbero più 14. For Each Elemfile In File TempStr = Mid(CStr(Elemfile), 15) ' elimina il percorso C:\ippo\Progs (14 caratteri) TempStr = Left(TempStr, Len(TempStr)-4) ' elimina l'estensione .prg (4 caratteri) f.Write TempStr & vbCrLf ' scrive la riga risultante Next ' Chiude il file in scrittura f.Close ' Scrive in una variabile quanti programmi (quanti files) sono presenti nella cartella C:\ippo\Progs SmartTags("ProgrammiPresenti") = File.Count ' libera risorse Set Fso = Nothing Set Folder = Nothing Set File = Nothing Set f = Nothing ' Segnala che è conclusa la creazione della lista SmartTags("Creazione_lista_in_corso") = False Link al commento Condividi su altri siti More sharing options...
MarioVirgilio Inserita: 12 marzo 2020 Autore Segnala Share Inserita: 12 marzo 2020 Grazie Sicuramente così è completo e mi servirà per altre applicazioni Oggi provo Buon lavoro e buona giornata Link al commento Condividi su altri siti More sharing options...
pigroplc Inserita: 12 marzo 2020 Segnala Share Inserita: 12 marzo 2020 1 ora fa, MarioVirgilio ha scritto: Sicuramente così è completo Io lo uso per generare un file txt che contiene tutte le ricette del relativo impianto. Nel tuo caso non dovrai eliminare l'estensione e non dovrai utilizzare il FOR-NEXT. Il tag TempStr invece dovrai copiarlo su un tag da passare allo script che avevi postato. Link al commento Condividi su altri siti More sharing options...
MarioVirgilio Inserita: 14 marzo 2020 Autore Segnala Share Inserita: 14 marzo 2020 Buon giorno Premetto che non sono un esperto di VBScript Ho provato lo script inviato e l'unica cosa che ha funzionato è la generazione della cartella Progs Domande - i file delle ricette in CSV (salvati su USB) devo copiarli nella cartella Progs ? - che tipo di variabile é il tag TempStr ? - può spiegarmi questo "C:\Storage Card\Prog.lst", 2, True Grazie e buona giornata Link al commento Condividi su altri siti More sharing options...
pigroplc Inserita: 14 marzo 2020 Segnala Share Inserita: 14 marzo 2020 23 minuti fa, MarioVirgilio ha scritto: Ho provato lo script inviato e l'unica cosa che ha funzionato è la generazione della cartella Progs almeno qualcosa ha funzionato 😃 23 minuti fa, MarioVirgilio ha scritto: i file delle ricette in CSV (salvati su USB) devo copiarli nella cartella Progs ? NO. questo esempio è una traccia sulla quale lavorare e dovrebbe darti una idea di come fare. Dal primo codice che hai allegato io ne ho dedotto che tu avessi dimestichezza di VBS, evidentemente non è così. Nell'esempio io vado a spazzolare una determinata cartella che potrebbe non esserci (per esempio se vado a installare il runtime su un PC nuovo di pacca); in tal caso vado a crearla, ovvio che non ci saranno programmi dentro, del resto da un PC nuovo mica mi aspetto la scienza infusa. Se invece la cartella esiste, apro il file con il metodo in scrittura e unicode OpenTextFile https://docs.microsoft.com/en-us/office/vba/language/reference/user-interface-./opentextfile-method 32 minuti fa, MarioVirgilio ha scritto: che tipo di variabile é il tag TempStr ? questa è una variabile stringa che è il risultato della pulizia del percorso ed estensione del file esempio:C:\ippo\Progs\UovoDiColombo.prg la famosa variabile sarà: UovoDiColombo 36 minuti fa, MarioVirgilio ha scritto: può spiegarmi questo "C:\Storage Card\Prog.lst", 2, True vedi sopra. Io sono convinto che tu abbia voglia di imparare, quindi ti consiglio di scaricare questo manuale e inizia ad impratichirti https://support.industry.siemens.com/cs/document/109764540/simatic-wincc-wincc-engineering-v15-–-programming-reference?dti=0&dl=en&lc=it-IT praticamente devi togliere quello che ci sta sopra la riga qui sotto ' Legge i file presenti in C:\ippo\Progs. togli questo TempStr = Left(TempStr, Len(TempStr)-4) ' elimina l'estensione .prg (4 caratteri) altrimenti ti toglie l'estensione ed andare a sostituire questa riga f.Write TempStr & vbCrLf ' scrive la riga risultante con SmartTags("ChiamaloComeVuoi") = TempStr ovvio che devi pure cavare f.close ecc. per fare le prove, SmartTags("ChiamaloComeVuoi") visualizzalo su una pagina così sai se almeno quello è corretto, quindi procedi alla lettura del file come dal tuo script Link al commento Condividi su altri siti More sharing options...
MarioVirgilio Inserita: 14 marzo 2020 Autore Segnala Share Inserita: 14 marzo 2020 Sempre grazie per la disponibilità Mi permetta una battuta: nonostante sia prossimo alla pensione mi piace sempre imparare Nel fine settimana mi divertirò a studiare Saluti Link al commento Condividi su altri siti More sharing options...
pigroplc Inserita: 14 marzo 2020 Segnala Share Inserita: 14 marzo 2020 (modificato) 2 ore fa, MarioVirgilio ha scritto: Mi permetta una battuta: nonostante sia prossimo alla pensione mi piace sempre imparare MarioVirgilio, non che io sia un ragazzino, visto che sono più vicino ai 60 che ai 50.... Un paio di cose: qui sul forum ci si dà tutti del tu, indipendentemente da età o ruolo visto che sei fresco di script cerca di autoapprendere creandoti delle funzioni semplici. Nel tuo caso io farei la funzione per leggere il nome del file e lo metterei su un tag a video senza fare altro. Quando questo funziona correttamente fai il passo successivo, cioè prova ad aprire il file e richiuderlo senza errori. Quando anche questo passo è fatto, adoperati per leggere una riga ecc. ... poi quando tutto funziona posti il codice, così puoi essere utile per qualcun altro. Modificato: 14 marzo 2020 da pigroplc Link al commento Condividi su altri siti More sharing options...
Messaggi consigliati
Crea un account o accedi per commentare
Devi essere un utente per poter lasciare un commento
Crea un account
Registrati per un nuovo account nella nostra comunità. è facile!
Registra un nuovo accountAccedi
Hai già un account? Accedi qui.
Accedi ora