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 :

Erreur exécution vbscript: Encapsuler un fichier


Sujet :

VBScript

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 104
    Points : 6
    Points
    6
    Par défaut Erreur exécution vbscript: Encapsuler un fichier
    Bonjour

    J'ai récupéré le code de hackoofr "Encapsuler un fichier zippé.."

    Voici le bout de code (ou se trouve l'erreur: ligne 125 caract 9):

    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
     
    120   Sub Unzip(ZippedFile, UnZippedFile, ExistingUnZippedFile)
    121   'Dezippe le fichier ZippedFile vers l'emplacement UnZippedFile et efface le fichier ExistingUnZippedFile
    122   Dim FilesInZip, Shell
    123   DelFile UnZippedFile & ExistingUnZippedFile
    124   Set Shell = CreateObject("Shell.Application")
    125   Set FilesInZip = Shell.NameSpace(ZippedFile).Items
    126   Shell.NameSpace(UnZippedFile).CopyHere FilesInZip,(4 + 8 + 16 + 512 + 1024)
    127   Do
    128   If fso.FileExists(UnZippedFile & ExistingUnZippedFile) Then
    129   If fso.GetFile(UnZippedFile & ExistingUnZippedFile).Size > 0 Then Exit Do
    130   End If
    131   Wscript.Sleep 100000
    132   Loop
    133   Set FilesInZip = Nothing
    134   Set Shell = Nothing
    135   End Sub
    Et voici le message d'erreur

    Nom : 2015-02-11_143209.png
Affichages : 702
Taille : 8,6 Ko

    Si vous avez des pistes, je suis preneur..

    Merci

  2. #2
    Membre émérite

    Homme Profil pro
    Ingénieur Réseaux
    Inscrit en
    Juin 2012
    Messages
    877
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Réseaux
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2012
    Messages : 877
    Points : 2 427
    Points
    2 427
    Par défaut
    Bonjour,

    Essayez de remplacer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set FilesInZip = Shell.NameSpace(ZippedFile).Items
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set FilesInZip = Shell.NameSpace(ZippedFile).Items()
    Si la réponse vous a été donnée, pensez au Tag .
    Un petit aide à se sentir utile. Merci.

    "La folie. C'est de faire et refaire la même chose en espérant que le résultat sera différent."
    Albert Einstein

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 104
    Points : 6
    Points
    6
    Par défaut
    Merci..

    J'ai une autre erreur..

    La voici:

    Nom : 2015-02-11_153041.png
Affichages : 596
Taille : 8,6 Ko

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 104
    Points : 6
    Points
    6
    Par défaut
    C'est bon j'ai trouvé, c'était juste un problème d'autorisation.

    J'ai un autre soucis, je veux inséré le code vbs dans le vba excel et lors de l'exécution j'ai ce message d'erreur:

    Nom : 2015-02-12_094205.png
Affichages : 461
Taille : 2,4 Ko

    puis je clic sur Débogage et il me surligne cette ligne en jaune ci dessous:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    'Déclaration des objets
    Set WsShell = CreateObject("Wscript.Shell")
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set oFile = fso.OpenTextFile(Wscript.ScriptFullName)
    Set oRs = CreateObject("ADODB.RecordSet")
    Set oStream = CreateObject("ADODB.Stream")
    Savez vous comment mettre l'équivalent de cette ligne en vba ?

    Merci

  5. #5
    Expert éminent
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 839
    Points : 9 222
    Points
    9 222
    Par défaut

    Je n'ai jamais utilisé Excel avec ce type de problème ; mais jettes un coup d’œil ici ==> http://www.developpez.net/forums/d69...-xls-courrant/

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 104
    Points : 6
    Points
    6
    Par défaut
    Merci.. j'ai l'ai déjà lu ce fil mais pas de solution a mon probleme..

    Dans votre code, cette ligne ouvre un fichier dans le chemin courant ? c'est bien ça ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set oFile = fso.OpenTextFile(Wscript.ScriptFullName)
    Et est-ce que cette ligne convient en vba ?

  7. #7
    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;
    Dans votre code, cette ligne ouvre un fichier dans le chemin courant ? c'est bien ça ?
    NON ce n'est pas n'importe quel fichier car il ne faut pas perdre de vue que Wscript.ScriptFullName correspond au nom(chemin complet) du fichier script (vbs) en cours.
    En VBA et également sous VB6 et inférieurs, WScript n'est pas reconnu. Il faudra dans ce cas spécifier le chemin complet du fichier à ouvrir qu'il faut mettre entre guillemets.
    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

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 104
    Points : 6
    Points
    6
    Par défaut
    Ok merci..

    Donc c'est impossible de mettre un vbscript dans du vba ?

  9. #9
    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
    Donc c'est impossible de mettre un vbscript dans du vba ?
    Pas tout à fait; on peut appeler le script que ce soit vbs ou hta en faisant, avec l'adaptation nécessaire, comme ce POST

    Ou mieux encore : il y a la possibilité, en ajoutant la référence Microsoft Script Control au projet, de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     Dim scrp As ScriptControl
      Set scrp = New ScriptControl 
      scrp.Language = "VBScript" 
      scrp.AddCode "Sub Message : msgbox ""Bonjour à toute la communauté"": End Sub" 
      scrp.Run "Message"
    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

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 104
    Points : 6
    Points
    6
    Par défaut
    Merci !

    Avec votre deuxième méthode j'arrive pas a insérer mon code.

    Le voici:

    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
     Sub Copie_Installation()
     
    Const adTypeBinary = 1
    Const adSaveCreateOverWrite = 2
    Const adVarBinary = 204
    Const adFileName = "calc.exe"
     
    Set oFs = CreateObject("Scripting.FileSystemObject")
    Set oFile = oFs.OpenTextFile(WScript.ScriptFullName)
    Set oRs = CreateObject("ADODB.RecordSet")
    Set oStream = CreateObject("ADODB.Stream")
     
    oStream.Type = adTypeBinary: oStream.Open
    oRs.Fields.Append "Data", adVarBinary, 32: oRs.Open: oRs.AddNew
     
    While Not oFile.AtEndOfStream
      sLine = oFile.ReadLine
      If Left(sLine, 3) = "'# " Then
        oRs("Data") = Right(sLine, Len(sLine) - 3)
        oRs.Update: oStream.Write oRs("Data")
      End If
    Wend
     
    oStream.SaveToFile adFileName, adSaveCreateOverWrite

    Ou mettre mon code dans:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     Dim scrp As ScriptControl
      Set scrp = New ScriptControl 
      scrp.Language = "VBScript" 
      scrp.AddCode "Sub Message : msgbox ""Bonjour à toute la communauté"": End Sub" 
      scrp.Run "Message"
    Merci

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 104
    Points : 6
    Points
    6
    Par défaut
    J'ai un peu avancé, le code ci-dessous parcourt bien mon fichier mais récupère et copie que les octets en fin de ligne.

    Dim recup ne converse pas les octets précédent.. d'apres ce code c'est logique

    Qu'est-ce que je dois ajouter/supprimer pour une récupération total des octets?

    Merci

    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
    46
    47
    48
    49
    50
    51
    52
    Sub récupère_le_fichier()
     
    Dim recup As String
    Set oFs = CreateObject("Scripting.FileSystemObject")
    Set oFile = oFs.OpenTextFile(ActiveWorkbook.FullName)
     
    'récupération des octets
    While Not oFile.AtEndOfStream
      sLine = oFile.ReadLine
      If Left(sLine, 3) = "'# " Then
        recup = Right(sLine, Len(sLine) - 3)
      End If
    Wend
     
    'création du fichier avec ouverture en écriture et copie des données
    Open "C:\Windows\zik.mp3" For Output As #1
    Print #1, recup
    Close #1
     
    End Sub
     
    '# 4D5A50000200000004000F00FFFF0000B80000000000000040001A0000000000
    '# 0000000000000000000000000000000000000000000000000000000000010000
    '# BA10000E1FB409CD21B8014CCD219090546869732070726F6772616D206D7573
    '# 742062652072756E20756E6465722057696E33320D0A24370000000000000000
    '# 0000000000000000000000000000000000000000000000000000000000000000
    '# 0000000000000000000000000000000000000000000000000000000000000000
    '# 0000000000000000000000000000000000000000000000000000000000000000
    '# 0000000000000000000000000000000000000000000000000000000000000000
    '# 504500004C010900195E422A0000000000000000E0008E810B01021900920600
    '# 00A6010000000000EC9E06000010000000B00600000040000010000000020000
    '# 0400000000000000040000000000000000D00800000400000000000002000000
    '# 000010000040000000001000001000000000000010000000006007005B060000
    '# 00300700F02300000000080000C6000000000000000000000000000000000000
    '# 009007004C600000000000000000000000000000000000000000000000000000
    '# 0080070018000000000000000000000000000000000000000000000000000000
    '# 000000000000000000000000000000000000000000000000434F444500000000
    '# 4490060000100000009206000004000000000000000000000000000020000060
    '# 4441544100000000204F000000B0060000500000009606000000000000000000
    '# 00000000400000C0425353000000000099250000000007000000000000E60600
    '# 000000000000000000000000000000C02E69646174610000F023000000300700
    '# 0024000000E60600000000000000000000000000400000C02E65646174610000
    '# 5B0600000060070000080000000A070000000000000000000000000040000050
    '# 2E746C73000000000C0000000070070000000000001207000000000000000000
    '# 00000000000000C02E7264617461000018000000008007000002000000120700
    '# 000000000000000000000000400000502E72656C6F6300004C60000000900700
    '# 0062000000140700000000000000000000000000400000502E72737263000000
    '# 00C600000000080000C600000076070000000000000000000000000040000050
    '# 00000000000000000000000000D0080000000000003C08000000000000000000
    '# 0000000040000050000000000000000000000000000000000000000000000000
    '# 0000000000000000000000000000000000000000000000000000000000000000
    '# 0000000000000000000000000000000000000000000000000000000000000000

  12. #12
    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
    Modifie la ligne 11 du code pour avoir recup = recup & Right(sLine, Len(sLine) - 3) & vbNewLine et avant la boucle While ...WEnd, tu devrais initialiser la variable recup telle que recup = "".

    Une suggestion si possible : Evite au maximum d'utiliser des variables, nom de Function ou Sub avec des caractères accentués comme "Sub récupère_le_fichier"
    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

  13. #13
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 104
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par l_autodidacte Voir le message
    Modifie la ligne 11 du code pour avoir recup = recup & Right(sLine, Len(sLine) - 3) & vbNewLine et avant la boucle While ...WEnd, tu devrais initialiser la variable recup telle que recup = "".

    Une suggestion si possible : Evite au maximum d'utiliser des variables, nom de Function ou Sub avec des caractères accentués comme "Sub récupère_le_fichier"
    Merci l_autodidacte

    J'ai modifié la ligne 11 mais toujours rien.

    j'ai essayé avec un héxadécimal d'un petit fichier mp3 de 527 ko et je récupère avec votre modification seulement 2 octects.. ?

    Ou est l'erreur?

    Voici le code modifié:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    'récupération des octets
    recup = ""
    While Not oFile.AtEndOfStream
      sLine = oFile.ReadLine
      If Left(sLine, 3) = "'# " Then
        recup = recup & Right(sLine, Len(sLine) - 3) & vbNewLine
      End If
    Wend
     
     
    'création du fichier avec ouverture en écriture et copie des données
    Open "C:\zik.mp3" For Output As #1
    Print #1, recup
    Close #1

  14. #14
    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
    Tu es sûr que le fichier mp3 contient la séquence "'# " pour pouvoir lui appliquer le code proposé ?

    Un fichier mp3 ne peut pas être lu comme un fichier texte.
    Puisque tu veux le lire et l'écrire en binaire, il faudrait penser à utiliser les instructions adéquates :

    Pour la lecture du contenu : Open "Nom_du_fichier1" For Binary Access Read As #1 et ce conjointement avec Get #1, , Recup.

    Pour l'écriture dans un fichier numéro 2 : Open "Nom_du_fichier2" For Binary Access Write As #2 puis Put #2, , Recup
    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

  15. #15
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 104
    Points : 6
    Points
    6
    Par défaut
    On oublie le fichier mp3, la suite de nombres et lettres précéder par "#" qui se trouve après le End Sub est un exécutable converti en hexadécimal.

    Avec ce code j’essaie d'ouvrir ce fichier en cour d'exécution avec Set oFile = oFs.OpenTextFile(ActiveWorkbook.FullName) et lire toute les lignes puis récupérer grâce au repère "#" dans un variante les octets sans écraser les précédentes à chaque tour de boucle puis créer et ouvrir un fichier en écriture binaire et copie des données.

    Le "#" n'est qu'un repère .

  16. #16
    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
    Je suppose que tu vises le texte (en hexa) accompagnant le code du post #11.
    Si c'est le cas, et avec les modifications que j'ai proposées, je récupère la totalité du texte.

    Mais en essayant avec le fichier Excel en cours, on obtient un fichier avec des caractères illisibles, et ce en supprimant la condition sur "'# " sinon erreur d'exécution.
    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

  17. #17
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 104
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par l_autodidacte Voir le message
    Je suppose que tu vises le texte (en hexa) accompagnant le code du post #11.
    Si c'est le cas, et avec les modifications que j'ai proposées, je récupère la totalité du texte.
    Merci..

    Oui c'est ça je vises le texte (en hexa) accompagnant le code du post #11
    Comment avez vous fait pour récupérer la totalité du texte ?

    Citation Envoyé par l_autodidacte Voir le message
    Mais en essayant avec le fichier Excel en cours, on obtient un fichier avec des caractères illisibles, et ce en supprimant la condition sur "'# " sinon erreur d'exécution.
    Lorsque j’essaye avec le fichier Excel en cours en supprimant "'# " je récupère seulement 2 octets de donnés.
    Je me rends compte que j'ai du mal a comprendre la signification de "'# " dans le texte (en hexa) accompagnant le code ?

  18. #18
    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
    J'ai enregistré la partie Hexa dans un fichier appelé Source.txt en exécutant ce
    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
    Option Explicit
     
    Dim oFs As FileSystemObject, oFile As Object, sLine$
     
    Sub récupère_le_fichier()
     
    Dim Recup As String
    Set oFs = CreateObject("Scripting.FileSystemObject")
    Set oFile = oFs.OpenTextFile("C:\Source.txt", ForReading, False)
     
    'récupération des octets
    While Not oFile.AtEndOfStream
      sLine = oFile.ReadLine
      If Left(sLine, 3) = "'# " Then
        Recup = Recup & Right(sLine, Len(sLine) - 3) & vbNewLine
      End If
    Wend
     
    'création du fichier avec ouverture en écriture et copie des données
    Open "C:\Resultat.txt" For Output As #1
    Print #1, Recup
    Close #1
    Set oFs =  Nothing
    Set oFile = Nothing
    End Sub
    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

  19. #19
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 104
    Points : 6
    Points
    6
    Par défaut
    J'ai fait la meme chose et il me souligne ça: oFs As FileSystemObject avec ce message

    Nom : aaa.png
Affichages : 575
Taille : 4,2 Ko

    Et pourquoi vous utilsez pas ce code comme vous me l'avez conseillez ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     For Binary Access Read As #1
    Get #1, , Recup.
     
     
    Open "Nom_du_fichier2" For Binary Access Write As #2
     Put #2, , Recup

  20. #20
    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 171
    Points
    17 171
    Par défaut
    Salut

    FAQ VBScript: Le typage des variables
    Mais, contrairement aux langages Visual Basic 6 (VB6) ou Visual Basic for Application (VBA), en VBScript, le typage des variables se fait
    au moment de l'assignation, et non pas lors de la déclaration.

    Autrement dit, vous ne devez pas utiliser de déclaration Dim ... As ... , mais simplement Dim ...
    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 ← ← 👈

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [HTA] Encapsuler un fichier.exe zippé dans un Vbscript
    Par hackoofr dans le forum Vos Contributions VBScript
    Réponses: 3
    Dernier message: 13/02/2015, 11h58
  2. Réponses: 4
    Dernier message: 08/10/2014, 14h58
  3. Erreur exécution fichier php sur serveur distant
    Par bipbipman2003 dans le forum Langage
    Réponses: 15
    Dernier message: 10/03/2011, 17h04
  4. erreur d'ecriture dans un fichier
    Par fjp dans le forum C++Builder
    Réponses: 4
    Dernier message: 03/07/2005, 11h31
  5. [Erreur]impossible de trouver le fichier de config du moteur
    Par julietteste dans le forum Bases de données
    Réponses: 5
    Dernier message: 10/05/2005, 18h34

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