Vai al contenuto
PLC Forum


Wincc 2007 - Script Problem


pedro88

Messaggi consigliati

Ciao a tutti,

devo fare uno script per esportare dati in un file .csv (fino a qui tutto ok),

ma questo file dev'essere creato in diverse cartelle nel senso che la radice è questa:

/Y2008/M06/D23/miofile.csv

Vorrei naturalmente controllare se esiste il file se no creare ogni ramo del mio percorso.

usando queste righe di script solo per provare se funziona il metodo:

Set fs = CreateObject("filectl.filesystem")

If (fs.folderexists(percorso)) Then

ShowSystemAlarm ("Folder exist")

Else

fs.createfolder(percorso)

ShowSystemAlarm ("Folder created")

End If

ottengo questo errore:

Error object doesn't support this property or method: "fs.FolderExists"

Qualcuno sa aiutarmi?

Sapete dove posso trovare proprietà e metodi di FileCtl?

Link al commento
Condividi su altri siti


ti posto qualcosa che funziona, poi il resto ce lo metti te.

Dim objFileSystem, fs, fso, a, f, objFileSize, operatore, blank, trigger, strNomeFile 'dichiara le variabili

trigger=0

SmartTags("archivio_1")=trigger 'azzera il trigger di memorizzazione report

operatore = SmartTags("nome_login_record") 'aggiorna il nome dell'operatore

'costruzione dell'header se il file non esiste

strNomeFile= "D:\Storage Card\production.xls"

' Verifica che il file esista

If S_blnEsisteFile(strNomeFile) = True Then 'il file esiste

Set objFileSystem = CreateObject("Scripting.FileSystemObject")

Set objFileSize = objFileSystem.GetFile ("D:\Storage Card\production.xls")

f = objFileSize.Size 'lettura delle dimensioni del file

Else ' il file non esiste

Call Header()'prepara header

End If

... ovviamente continua

pigroplc

Link al commento
Condividi su altri siti

poi c'e' questo

Dim objFileSystem

Set objFileSystem = CreateObject("Scripting.FileSystemObject")

If objFileSystem.FileExists(strFilePath) Then

S_blnEsisteFile=True

Else

S_blnEsisteFile=False

End If

come routine di verifica

pigroplc

Link al commento
Condividi su altri siti

Ok grazie, ma non è necessario controllare la lunghezza del file visto che aprendolo in append se non esiste lo crea altrimenti aggiunge righe ma soltanto se il percorso di destinazione esiste.

Per la creazione e il controllo dell'esistenza di file o cartelle tu hai postato CreateObject("System.filesystemobject") invece lo script funziona soltanto con CreateObject("FileCtl.filesystem") che non ha metodi come FileExist o simili.

Ma se riuscissi a trovare un . o un tutorial, qualsiasi cosa che mi spiega bene FileCtl sono convinto che risolvo i miei problemi.

Non sai dirmi niente a riguardo?

Grazie, Pedro.

Link al commento
Condividi su altri siti

torniamo indietro di un passo:

siccome gli script cambiano se si utilizza un pannello operatore (tipo MP377) oppure se si utilizza un PC con a bordo winxp/embedded dovresti dire cosa utilizzi.

pigroplc

Link al commento
Condividi su altri siti

questo va bene per i pannelli:

Dim fs, a, f, operatore, blank, trigger 'dichiara le variabili

trigger=0

SmartTags("archivio_1")=trigger 'azzera il trigger di memorizzazione report

operatore = SmartTags("nome_login") 'aggiorna il nome dell'operatore

'costruzione dell'header se il file non esiste

Set fs = CreateObject("FileCtl.File")

'verifica lunghezza file, se=0 manca il file, quindi prepara header

fs.Open "\storage card\production.xls",8

f = fs.lof

fs.Close

If (f = 0) Then Call Header()'prepara header

If (f <= 101500) Then 'controlla la lunghezza prima di scrivere

eccerera

pigroplc

Link al commento
Condividi su altri siti

Giusto, allora:

PC: Win XP Pro SP3

OP: Wincc 2007 HOTFIX 4

Tipo pannello: MP277 8" key

Penso esista un metodo per creare cartelle da sto benedetto FileCtl

Quello che mi preme di più per ora è questo.

Grazie, pedro.

Link al commento
Condividi su altri siti

Ma se faccio la Open di un path che non esiste, leggendo su internet e vari, dovrebbe crearlo invece mi da l'errore che non trova il percorso specificato.

Link al commento
Condividi su altri siti

Sono certo che il tuo codice funzione perchè ho provato a creare un file direttamente sulla MMC.

E solo che vorrei catalogarli per anno,mese come ho specificato all'inizio del post.

Mi basterebbe soltanto la funzione che crea le cartelle.

Tutto qui, grazie.

Se la trovi dimmelo per favore, sto venendo matto.

Link al commento
Condividi su altri siti

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 account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...