IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBScript Discussion :

Problème d'instance fso, accessoirement sous wincc15.1 | Erreur 53 (fichier introuvable) https://www.developpe


Sujet :

VBScript

  1. #1
    Membre du Club
    Homme Profil pro
    Automaticien
    Inscrit en
    Octobre 2019
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Automaticien

    Informations forums :
    Inscription : Octobre 2019
    Messages : 75
    Points : 51
    Points
    51
    Par défaut Problème d'instance fso, accessoirement sous wincc15.1 | Erreur 53 (fichier introuvable) https://www.developpe
    Bonjour à tous,

    j’essaie d'initialiser des comboBox (listes déroulantes) sous wincc avec des scripts VBS.
    Les textes sont stockés dans dans des fichiers textes. Deux listes déroulantes afin de sélectionner une matière selon une catégorie.
    Donc la première comboBox permet de sélectionner la catégorie, dont dépendra la seconde comboBox. La première (catégorie) s'initialise au chargement de la vue (Sub OnGenerateScreen()).

    Voici le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    Sub OnGenerateScreen()
    'Lire le fichier texte "intrants-Cat.txt" et affecter chaq'une de ces lignes 
    'aux lignes de textes de la liste déroulante
    On Error Resume Next
    '***	Création des objets File explorer et TextStream
    Dim fso, folder, file,f,ts,extend, temp
    folder="C:\SupTools"
    extend=".txt"
    file = "Intrants-Cat" & extend 
     
    temp = isFolderExists(folder)
    isFileExists folder, file 
     
    '***	Affectation des textes de la liste déroulante
     
    Dim i, nbLine, list,  filePath,buf
    filePath = folder &"\"& file
    ReadFile folder,file 
    nbLine=SmartTags("nbLine")
    ToTrace "231-nbFile: ", nbLine
    Set list = ScreenItems("Liste_cat") ' On créé on objet "liste déroulante" existant!!
    list.Visible = False
    list.CountVisibleItems = nbLine
     
    For i = 1 To nbLine
    	list.SelectedIndex= i  
    	'list.SelectedText = buf(i)
    	list.SelectedText = SmartTags("Line_"&i)
    Next
    list.Index=1
    list.Visible = True
     
    Set list = Nothing
    For i = 1 To nbLine 
    	SmartTags("Line_"&i)=""
    Next
    If Err.Number <> 0 Then 
    	ToTrace "OnGenerateScreen erreur n°:",Err.Number
    	ToTrace "ReadFile description erreur :",Err.Description
    	ToTrace "ReadFile context erreur :",Err.Source
    	Err.Clear
    End If
    On Error GoTo 0
    End Sub
    Le script isFolderExists:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    Function isFolderExists(ByVal chemin)
    Dim fso, f, NewFile
    On Error Resume Next 
    Set fso = CreateObject("Scripting.FileSystemObject")
    If Not fso.FolderExists(chemin) Then
    	'ToTrace " isFolderExist(chemin)", chemin
    	fso.CreateFolder(chemin)		
    	isFolderExists=0
    Else
    	'ToTrace "Le dossier exist déjà", 1
    	'ToTrace " Son chemin:", chemin
    	isFolderExists=1
    End If
    Set fso = Nothing
    If Err.Number <> 0 Then 
    	ToTrace "isFolderExist erreur n°:",Err.Number
    	ToTrace "isFolderExist description erreur :",Err.Description
    	Err.Clear
    End If
    On Error GoTo 0
    End Function
    Script isFileExists:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    Sub isFileExists(ByVal dossier, ByVal fichier)
    Dim fso, f, NewFile
    On Error Resume Next 
    Set fso = CreateObject("Scripting.FileSystemObject")
    ToTrace "chemin:" , dossier & "\" & fichier
    ToTrace "fso Fileexists: " , fso.FileExists(dossier & "\" & fichier)
    If Not fso.FileExists(dossier & "\" & fichier) Then
    	If fichier = "Intrants-cat.txt" Then
    		ToTrace " Si absence de Intrants-Cat.txt, alors on le créé.", 1
    		Set NewFile = fso.CreateTextFile(dossier & "\" & fichier)
    		NewFile.WriteLine("FUMIERS")
    		NewFile.WriteLine("AUTREAGRI")
    		NewFile.WriteLine("BOUES")
    		NewFile.WriteLine("LISIERS")
    		NewFile.WriteLine("MATIERES VEGETALES")
    		NewFile.Close
    		Set NewFile = Nothing
    		'isFileExists=0
    	Else			
    		Set NewFile = fso.CreateTextFile(dossier & "\" & fichier)
    		NewFile.WriteLine("NOUVEAU")
    		NewFile.Close
    		Set NewFile = Nothing
    		'isFileExists=0
    	End If
    Else
    	'ToTrace "Le fichier est bien trouvé", ""
    	'isFileExists=1
    End If
    Set fso = Nothing
    If Err.Number <> 0 Then 
     
    	ToTrace "*****************************",""
    	ToTrace "IOField invisble sur la sup	********",""
    	ToTrace "isFileExist erreur n°:",Err.Number
    	ToTrace "isFileExist description erreur :",Err.Description
    	ToTrace "",""
    	ToTrace "*****************************",""
    	Err.Clear
    End If
    On Error GoTo 0
    End Sub
    Et le script ReadFile:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    Sub ReadFile(ByVal dossier, ByVal fichier)
    Dim fso, f,ts,filePath, temp, buf, nbFile,i, min, max
    'On Error Resume Next 
    Set fso = CreateObject("Scripting.FileSystemObject")
    filePath = dossier & "\" & fichier
    ToTrace "Getfile:",filePath
    isFileExists dossier & "\" , fichier
    Set f = fso.GetFile(filePath)
    Set ts = f.OpenAsTextStream(1,-2)
     
    buf = Split(ts.ReadAll, vbLf)	
     
    ToTrace "ReadFile2","."
     
    For i=0 To UBound(buf)-1	 
    	ToTrace "buf(i): ", buf(i) 
    Next
    temp = UBound(buf) 
    SmartTags("nbLine").Value=temp
     
    For i=LBound(buf) To UBound(buf)
    	SmartTags("Line_"&i+1).Value= buf(i) 
    	'ToTrace "i: ", i 
    	'ToTrace "Line" &i + 1 &": ", SmartTags("Line_"&i+1).Value
    Next
    ts.Close	'Une fois qu'on a récupéré les catégories, on ferme le fichier texte.
    Set ts = Nothing
    Set f = Nothing
    Set fso = Nothing
    If Err.Number <> 0 Then 	
    	ToTrace "ReadFile",""
    	ToTrace "ReadFile erreur n°:",Err.Number
    	ToTrace "ReadFile description erreur :",Err.Description
    	ToTrace "ReadFile context erreur :",Err.Source
    	Err.Clear
    End If
    On Error GoTo 0
    End Sub
    La procédure "ToTrace" me sert à avoir un retour monitor (HMIRuntime.Trace...).

    Ce qui marche:
    L'initialisation de la comboBox "catégorie". (on teste si le fichier existe ici en premier).
    Ce qui me créé l'erreur, c'est lorsque je veux tester l’existence d'un autre fichier texte dans un autre répertoire.
    Je ne comprends pas vraiment l'origine du problème. Mais apparemment ce serait dû au fait qu'une instance fso ne peut pas changer de répertoire...

    Ma question: Il y a t'il un moyen de tester et créer un ou plusieurs fichiers textes dans plusieurs répertoires, et comment faire?

    Merci d'avance.

  2. #2
    Membre du Club
    Homme Profil pro
    Automaticien
    Inscrit en
    Octobre 2019
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Automaticien

    Informations forums :
    Inscription : Octobre 2019
    Messages : 75
    Points : 51
    Points
    51
    Par défaut Précision sur l'erreur
    J'ai oublié de préciser que le code erreur est 424, soit Objet requis, d'où le fait que je soupçonne un problème d'instanciation de l'objet fso.

  3. #3
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 415
    Points : 5 805
    Points
    5 805
    Par défaut
    Bonjour et BIENVENU sur DVP.

    Il faudrait en plus le numéro de la ligne et celui du caractère où se produit l'erreur.
    Ne pas oublier le tag si satisfait.
    Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
    Balises CODE indispensables. Regardez ICI
    Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
    Vous pouvez consulter mes contributions
    Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
    Ne pas oublier L'Aide VBScript et MSDN VB6 Fr

  4. #4
    Membre du Club
    Homme Profil pro
    Automaticien
    Inscrit en
    Octobre 2019
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Automaticien

    Informations forums :
    Inscription : Octobre 2019
    Messages : 75
    Points : 51
    Points
    51
    Par défaut
    Bonjour et merci L'Autodidacte,

    malheureusement, la console ne donne pas cette information, ni l'objet Err... C'est pour ça que j'ai mis des 'ToTrace' un peu partout.
    Avec la dernière version de TIA 15.1 (WinCC RT Pro) il n'y a plus le debugger de script, donc pas de point d'arrêt non plus...

  5. #5
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 175
    Points
    17 175
    Par défaut
    Salut

    J'ai essayé de faire un peu de ménage
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    'debut du programme, variable globale
    option explicit
    Dim fso
    Set fso = CreateObject("Scripting.FileSystemObject")
    Suivent les subs et functions
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    Sub OnGenerateScreen()
    'Lire le fichier texte "intrants-Cat.txt" et affecter chaq'une de ces lignes 
    'aux lignes de textes de la liste déroulante
    On Error Resume Next
    '***	Création des objets File explorer et TextStream
    'Dim fso, folder, file,f,ts,extend, temp '<--------------- a supprimer ---------------
    Dim folder, file, extend
    folder="C:\SupTools"
    'temp = isFolderExists(folder) '<------------- non utilisé -----------------'<--------------- a supprimer ---------------
    extend=".txt"
    file = "Intrants-Cat" & extend 
     
    isFileExists folder, file
     
    '***	Affectation des textes de la liste déroulante
     
    Dim i, nbLine, list,  filePath,buf
    filePath = folder &"\"& file
    ReadFile folder,file 
    nbLine=SmartTags("nbLine")
    ToTrace "231-nbFile: ", nbLine
    Set list = ScreenItems("Liste_cat") ' On créé on objet "liste déroulante" existant!!
    list.Visible = False
    list.CountVisibleItems = nbLine
     
    For i = 1 To nbLine
    	list.SelectedIndex= i  
    	'list.SelectedText = buf(i)
    	list.SelectedText = SmartTags("Line_"&i)
    Next
    list.Index=1
    list.Visible = True
     
    Set list = Nothing
    For i = 1 To nbLine 
    	SmartTags("Line_"&i)=""
    Next
    If Err.Number <> 0 Then 
    	ToTrace "OnGenerateScreen erreur n°:",Err.Number
    	ToTrace "ReadFile description erreur :",Err.Description
    	ToTrace "ReadFile context erreur :",Err.Source
    	Err.Clear
    End If
    On Error GoTo 0
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    Function isFolderExists(ByVal chemin)
    'Dim fso, f, NewFile
    On Error Resume Next 
    'Set fso = CreateObject("Scripting.FileSystemObject")
    If Not fso.FolderExists(chemin) Then
    	'ToTrace " isFolderExist(chemin)", chemin
    	fso.CreateFolder(chemin)		
    	isFolderExists=0
    Else
    	'ToTrace "Le dossier exist déjà", 1
    	'ToTrace " Son chemin:", chemin
    	isFolderExists=1
    End If
    'Set fso = Nothing
    If Err.Number <> 0 Then 
    	ToTrace "isFolderExist erreur n°:",Err.Number
    	ToTrace "isFolderExist description erreur :",Err.Description
    	Err.Clear
    End If
    On Error GoTo 0
    End Function
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    Sub isFileExists(ByVal dossier, ByVal fichier)
    Dim NewFile 			'Dim fso, f, NewFile  '<--------------- a supprimer ---------------
    On Error Resume Next 
    'Set fso = CreateObject("Scripting.FileSystemObject")  '<--------------- a supprimer ---------------
    ToTrace "chemin:" , dossier & "\" & fichier
    ToTrace "fso Fileexists: " , fso.FileExists(dossier & "\" & fichier)
    If Not fso.FileExists(dossier & "\" & fichier) Then
    	If fichier = "Intrants-cat.txt" Then
    		ToTrace " Si absence de Intrants-Cat.txt, alors on le créé.", 1
    		Set NewFile = fso.CreateTextFile(dossier & "\" & fichier)
    		NewFile.WriteLine("FUMIERS")
    		NewFile.WriteLine("AUTREAGRI")
    		NewFile.WriteLine("BOUES")
    		NewFile.WriteLine("LISIERS")
    		NewFile.WriteLine("MATIERES VEGETALES")
    		NewFile.Close
    		Set NewFile = Nothing
    		'isFileExists=0
    	Else			
    		Set NewFile = fso.CreateTextFile(dossier & "\" & fichier)
    		NewFile.WriteLine("NOUVEAU")
    		NewFile.Close
    		Set NewFile = Nothing
    		'isFileExists=0
    	End If
    Else
    	'ToTrace "Le fichier est bien trouvé", ""
    	'isFileExists=1
    End If
    'Set fso = Nothing  '<--------------- a supprimer ---------------
    If Err.Number <> 0 Then 
     
    	ToTrace "*****************************",""
    	ToTrace "IOField invisble sur la sup	********",""
    	ToTrace "isFileExist erreur n°:",Err.Number
    	ToTrace "isFileExist description erreur :",Err.Description
    	ToTrace "",""
    	ToTrace "*****************************",""
    	Err.Clear
    End If
    On Error GoTo 0
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    Sub ReadFile(ByVal dossier, ByVal fichier)
    'Dim fso, f,ts,filePath, temp, buf, nbFile,i, min, max  '<--------------- a supprimer ---------------
    Dim f,ts,filePath, temp, buf, i, max 		
    'On Error Resume Next 
    'Set fso = CreateObject("Scripting.FileSystemObject")  '<--------------- a supprimer ---------------
    filePath = dossier & "\" & fichier
    ToTrace "Getfile:",filePath
    isFileExists dossier & "\" , fichier
    Set f = fso.GetFile(filePath)
    Set ts = f.OpenAsTextStream(1,-2)
     
    buf = Split(ts.ReadAll, vbLf)	
     
    ToTrace "ReadFile2","."
     
    For i=0 To UBound(buf)-1	 
    	ToTrace "buf(i): ", buf(i) 
    Next
    temp = UBound(buf) 
    SmartTags("nbLine").Value=temp
     
    For i=LBound(buf) To UBound(buf)
    	SmartTags("Line_"&i+1).Value= buf(i) 
    	'ToTrace "i: ", i 
    	'ToTrace "Line" &i + 1 &": ", SmartTags("Line_"&i+1).Value
    Next
    ts.Close	'Une fois qu'on a récupéré les catégories, on ferme le fichier texte.
    Set ts = Nothing
    Set f = Nothing
    'Set fso = Nothing  '<--------------- a supprimer ---------------
    If Err.Number <> 0 Then 	
    	ToTrace "ReadFile",""
    	ToTrace "ReadFile erreur n°:",Err.Number
    	ToTrace "ReadFile description erreur :",Err.Description
    	ToTrace "ReadFile context erreur :",Err.Source
    	Err.Clear
    End If
    On Error GoTo 0
    End Sub
    FIN DU PROGRAMME
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ' nettoyage avant fin du programme
    Set fso = Nothing
    Dans le déroulé de ton code, il me semble bien que l'objet fso était fermé par un Set fso = Nothing, de retour dans la sub OnGenerateScreen l'instance fso n'existait plus .
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  6. #6
    Membre émérite Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Points : 2 736
    Points
    2 736
    Par défaut
    Dans OnGenerateScreen, on voit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    file = "Intrants-Cat" & extend
    Dans isFileExists, on voit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If fichier = "Intrants-cat.txt" Then
    Malgré la probable faute de frappe, la dernière comparison n'est toujours pas recommendable, il faut faire une comparison binaire au lieu de textuel, comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If strcomp(fichie, "Intrants-cat.txt") Then
    ou également effectivement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If strcomp(fichie, "Intrants-cat.txt", 0) Then

  7. #7
    Membre du Club
    Homme Profil pro
    Automaticien
    Inscrit en
    Octobre 2019
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Automaticien

    Informations forums :
    Inscription : Octobre 2019
    Messages : 75
    Points : 51
    Points
    51
    Par défaut
    Bonjour ProgElect, bonjour Tsuji,

    @Tsuji: Merci, j'ai corrigé et utilisé la fonction strcomp, je suis ouvert aux bonnes pratiques

    @ ProgElect: Merci pour ton travail, malheureusement il n' y a pas un script englobant les autres. C'est pourquoi je créé plusieurs fois l'instance 'fso' puis la ferme à chaque utilisation.
    Le projet est dans un environnement de développement de supervision, les scripts VBS ne sont que des fonctionnalités 'supplémentaires' et avec des limites.
    On ne peut (par exemple) pas typer une variable au moment de sa déclaration, exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim fso As Scripting.FileSystemObject
    ne fonctionne pas, et ne compile pas.
    ne compile pas non plus...
    Les instructions de saut comme Goto, non plus...
    Créer des procédures à l'intérieure d'un script... non plus.
    Je ne peux m'affranchir du fait de devoir créer une instance fso à chaque procédure puis de la fermer à la fin de chacune d'entre elles. (du moins jusqu'à j'en sache un peu plus sur le fonctionnement des instances, mais j'ai pas trouvé de doc explicite sur le sujet.)

    J'ai quand même fait un peu de ménage dans mes scripts, c'est déjà plus lisible.

    Merci pour vos interventions.

  8. #8
    Membre émérite Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Points : 2 736
    Points
    2 736
    Par défaut
    Ce qui me créé l'erreur, c'est lorsque je veux tester l’existence d'un autre fichier texte dans un autre répertoire.
    Est-ce que dossier ou folder s'est écrite toujours de façon absolue et n'est jamais de façon relative ?

  9. #9
    Rédacteur
    Avatar de omen999
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 296
    Points : 3 549
    Points
    3 549
    Par défaut
    bonjour,
    tu n'es pas sous RT Pro donc tu ne peux pas créer de scripts locaux mais uniquement des "fonctions personnalisées"
    la principale restriction consiste dans le fait que tu ne peux pas effectivement écrire des scripts contenant plusieurs fonctions ou procédures
    pour le reste c'est du VBS standard et il est donc normal de ne pas pouvoir typer les variables

    J'ai oublié de préciser que le code erreur est 424, soit Objet requis, d'où le fait que je soupçonne un problème d'instanciation de l'objet fso.
    je suppose que l'erreur est capturée au niveau de l'exécution du script isFileExists or je constate que tu ne crées pas seulement l'objet fso mais aussi l'objet NewFile quand le fichier est absent du répertoire cible
    peut-être un problème de droit en écriture ?
    nomen omen, nemo non omen - Consultez la FAQ VBScript et les cours et tutoriels VBScript
    le plus terrible lorsqu'une voiture renverse un piéton, c'est que ce sont les freins qui hurlent. (ramón)
    pas de questions techniques par mp

  10. #10
    Membre du Club
    Homme Profil pro
    Automaticien
    Inscrit en
    Octobre 2019
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Automaticien

    Informations forums :
    Inscription : Octobre 2019
    Messages : 75
    Points : 51
    Points
    51
    Par défaut
    Bonjour et merci,
    @Omen999:
    Je suis bien en WinCC RT Pro, je peux faire aussi bien des scripts locaux ('OnGenerateScreen()' en est un), que des Scripts globaux ('isFileExists') selon la terminologie de WinCC.

    je suppose que l'erreur est capturée au niveau de l'exécution du script isFileExists or je constate que tu ne crées pas seulement l'objet fso mais aussi l'objet NewFile quand le fichier est absent du répertoire cible
    peut-être un problème de droit en écriture ?
    Cette partie là fonctionne correctement, et les droits en lecture et écriture sont autorisés.

    @tsuji
    J'utilise exclusivement les chemins 'en absolue', n'ayant pas encore étudié le fonctionnement des chemins relatifs, je préfère m'en tenir au chemin absolue.

    Encore merci de prendre du temps pour me répondre

  11. #11
    Membre du Club
    Homme Profil pro
    Automaticien
    Inscrit en
    Octobre 2019
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Automaticien

    Informations forums :
    Inscription : Octobre 2019
    Messages : 75
    Points : 51
    Points
    51
    Par défaut
    Bonjour,

    finalement j'ai contourné le problème en supprimant les 'Catégories', puis j'ai revue le fonctionnement à l'aide d'Excel.

    Je mets le post en 'résolu', bien qu'il ne le soit pas au rapport de l'intitulé.

    En tout cas, je vous remercie pour votre aide.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [11gR2] Problème au démarrage d'une instance ORACLE 11gR2 sous AIX 7.1
    Par GBAGO dans le forum Administration
    Réponses: 0
    Dernier message: 19/11/2015, 08h56
  2. Problème de creation de thread sous linux
    Par xilebo dans le forum POSIX
    Réponses: 4
    Dernier message: 27/10/2004, 09h58
  3. problème de passage de paramêtre sous mozilla
    Par mat10000 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 27/09/2004, 10h48
  4. Problème avec le port série sous Windows XP
    Par didou2dek dans le forum Composants VCL
    Réponses: 6
    Dernier message: 02/09/2003, 19h50
  5. Problème de création de table sous MySql
    Par ducamba dans le forum Requêtes
    Réponses: 2
    Dernier message: 21/06/2003, 09h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo