Probleme en vbs [Résolu]

Messages postés
19
Date d'inscription
mercredi 24 mai 2006
Statut
Membre
Dernière intervention
16 octobre 2006
- - Dernière réponse : cs_JMO
Messages postés
1855
Date d'inscription
jeudi 23 mai 2002
Statut
Membre
Dernière intervention
24 juin 2018
- 31 août 2006 à 12:53
j'ai fais ce script:

reponse=inputbox("Veillez entrer le mot de passe.")
Select Case reponse
Case"Drakofe"
Set fso = CreateObject("Scripting.FileSystemObject")
Set fic = fso.OpenTextFile("C:\Documents and Settings\HP_Propriétaire\Mes documents\Thibault\journalintime.txt")
x=inputBox("Souhaite-tu lire(1) ou écrire(2)?")
If x=1 Then
Do While fic.AtEndOfStream <> True
MsgBox fic.ReadLine
Loop
ElseIf x=2 Then
y=inputBox("Entrez ici ce que vous voulez écrire(Une seule ligne).")
fic.WriteLine (y)
Else
MsgBox"Désolé,réponse incorrect,veuillez recommenser"
End If
fic.Close
Case Else
MsgBox"Désolé,tu ne peux pas rentrer..."
End Select

mais,à la ligne13,je n'obtient qu'une erreur me disant que "mode fichier incorrect"

Afficher la suite 

Votre réponse

8 réponses

Meilleure réponse
Messages postés
7401
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
49
3
Merci
Re,
Petite erruer de notre part.
On ne se souvient pas qu'en VBScript il ne connait pas les Constante Forreading et ForAppending

Remplace simplement ForReading par 1
Remplace ForAppending par 8
ceci devrait alors corriger ton probleme

@+,   Ju£i?n

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 125 internautes nous ont dit merci ce mois-ci

Commenter la réponse de jrivet
Messages postés
1855
Date d'inscription
jeudi 23 mai 2002
Statut
Membre
Dernière intervention
24 juin 2018
26
3
Merci
 Re,

Essaie le code suivant:
Const ForReading 1, ForWriting 2, ForAppending = 8
Dim fichier
fichier = "C:\Documents and Settings\HP_Propriétaire\Mes documents\Thibault\journalintime.txt"


reponse=inputbox("Veillez entrer le mot de passe.")
Select Case reponse
Case"Drakofe"
Set fso = CreateObject("Scripting.FileSystemObject")


Set fic = fso.OpenTextFile(fichier, ForReading)
Do While fic.AtEndOfStream <> True
Lecture = fic.ReadAll
Loop
Call fic.Close


x=inputBox("Souhaite-tu écrire (saisir le chiffre 2)? à la fin ce fichier" &vbCrLf&vbCrLf& Lecture &vbCrLf)
If x=2 Then
Set fic = fso.OpenTextFile(fichier, ForAppending)
y=inputBox("Entrez ici ce que vous voulez écrire(Une seule ligne).")
fic.WriteLine (y)
fic.Close
Else
MsgBox"Désolé,réponse incorrect,veuillez recommenser"
End If


Case Else
MsgBox"Désolé,tu ne peux pas rentrer..."
End Select


Set fso = Nothing
Set fic = Nothing

Test ok sur xp.
jean-marc

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 125 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_JMO
Messages postés
19
Date d'inscription
mercredi 24 mai 2006
Statut
Membre
Dernière intervention
16 octobre 2006
3
Merci
Merci!

Comme l'inputbox ne peut pas afficher une trop grande quantité d'information,j'ai rajouté une fonction "vidange".Il suffit de noter "vidange" à la place de oui lorsque l'on nous demande si l'on veut écrire ou non.
Voici le script légérement modifié:
Const ForReading 1, ForWriting 2, ForAppending = 8
Dim fichier
fichier = "C:\Documents and Settings\HP_Propriétaire\Mes documents\Thibault\journalintime.txt"


reponse=inputbox("Veillez entrer le mot de passe.")
Select Case reponse
Case"Drakofe"
Set fso = CreateObject("Scripting.FileSystemObject")


Set fic = fso.OpenTextFile(fichier, ForReading)
Do While fic.AtEndOfStream <> True
Lecture = fic.ReadAll
Loop
Call fic.Close


x=inputBox("Souhaite-tu écrire (oui) à la fin ce fichier?" &vbCrLf&vbCrLf& Lecture &vbCrLf)
If x="oui" Or x="OUI" Then
Set fic = fso.OpenTextFile(fichier, ForAppending)
y=inputBox("Entrez ici ce que vous voulez écrire(Une seule ligne).")
fic.WriteLine (y)
fic.Close
ElseIf x="vidange" Or x="Vidange" Or x="VIDANGE" Then
Set f = fso.GetFile(fichier)
f.Delete
Set a = fso.CreateTextFile(fichier,True)
MsgBox"VIDANGE EFFECTUEE"
Else
MsgBox"Désolé,réponse incorrect,veuillez recommenser"
End If


Case Else
MsgBox"Désolé,tu ne peux pas rentrer..."
End Select


Set fso = Nothing
Set fic = Nothing

A+




CYM13

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 125 internautes nous ont dit merci ce mois-ci

Commenter la réponse de CYM13
Messages postés
7745
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
42
0
Merci
reponse=inputbox("Veillez entrer le mot de passe.")
Select Case reponse
Case"Drakofe"
Set fso = CreateObject("Scripting.FileSystemObject")
<strike>Set fic = fso.OpenTextFile("C:\Documents and Settings\HP_Propriétaire\Mes documents\Thibault\journalintime.txt")</strike>
x=inputBox("Souhaite-tu lire(1) ou écrire(2)?")
If x=1 Then



Set fic = fso.OpenTextFile("C:\Documents and Settings\HP_Propriétaire\Mes documents\Thibault\journalintime.txt", ForReading)




Do While fic.AtEndOfStream <> True
MsgBox fic.ReadLine
Loop
ElseIf x=2 Then



Set fic = fso.OpenTextFile("C:\Documents and Settings\HP_Propriétaire\Mes documents\Thibault\journalintime.txt", ForAppending)




y=inputBox("Entrez ici ce que vous voulez écrire(Une seule ligne).")
fic.WriteLine (y)
Else
MsgBox"Désolé,réponse incorrect,veuillez recommenser"
End If
fic.Close
Case Else
MsgBox"Désolé,tu ne peux pas rentrer..."
End Select
















---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
Commenter la réponse de cs_casy
Messages postés
7401
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
49
0
Merci
Salut,


J'ajouterai en explication.


Si tu ouvres ton fichier sans preciser le mode d'acces, le mode par défaut est ForReading, donc il te sera impossible de faire l'écriture.
Donc Normalement le code de  casy devrait régler ton problème.






@+,   Ju£i?n
Commenter la réponse de jrivet
Messages postés
1855
Date d'inscription
jeudi 23 mai 2002
Statut
Membre
Dernière intervention
24 juin 2018
26
0
Merci
 Bonjour,

Il est possible d'afficher la lecture du fichier directement dans l'InputBox.
Ne pas oublier, aussi, les set ... = Nothing.
Le password dans le script, c'est original.

jean-marc

reponse=inputbox("Veillez entrer le mot de passe.")
Select Case reponse
Case"Drakofe"
Set fso = CreateObject("Scripting.FileSystemObject")


'Set fic = fso.OpenTextFile("C:\Documents and Settings\HP_Propriétaire\Mes documents\Thibault\journalintime.txt", ForReading)
Set fic = fso.OpenTextFile("D:\test1.txt")
Do While fic.AtEndOfStream <> True
Lecture = fic.ReadAll
Loop
Call fic.Close


'MsgBox Lecture
x=inputBox("Souhaite-tu écrire(OUI)? à la fin ce fichier" &vbCrLf&vbCrLf& Lecture &vbCrLf)
If x="OUI" Then
'Set fic = fso.OpenTextFile("C:\Documents and Settings\HP_Propriétaire\Mes documents\Thibault\journalintime.txt", ForAppending)
Set fic = fso.OpenTextFile("D:\test1.txt", 8)
y=inputBox("Entrez ici ce que vous voulez écrire(Une seule ligne).")
fic.WriteLine (y)
fic.Close
Else
MsgBox"Désolé,réponse incorrect,veuillez recommenser"
End If


Case Else
MsgBox"Désolé,tu ne peux pas rentrer..."
End Select



Set fso = Nothing
Set fic = Nothing
Commenter la réponse de cs_JMO
Messages postés
19
Date d'inscription
mercredi 24 mai 2006
Statut
Membre
Dernière intervention
16 octobre 2006
0
Merci
Il reste toujours un probléme :

-J'ai essayer avec les 2 scripts il me répond:
Ligne : 6
Caract :1
Erreur : Argument ou appel de procédure incorect.

P.S:Je ne trouve pas les mots-de passes originals,j'en mais dans chacuns de mes scripts.

Commenter la réponse de CYM13
Messages postés
1855
Date d'inscription
jeudi 23 mai 2002
Statut
Membre
Dernière intervention
24 juin 2018
26
0
Merci
 Bonjour,

J'ai corrigé quelques petites incohérences:

'Set f = fso.GetFile(fichier)   ' inutile car fso.CreateTextFile(fichier,True) crée ou recrée le fichier
'f.Delete                              ' inutile car fso.CreateTextFile(fichier,True) crée ou recrée le fichier

If UCase(Left((x), 3))="OUI" Then à la place de If x="oui" Or x="OUI" Then

ElseIf LCase(Left((x), 7)) = "vidange" Then à la place de ElseIf x="vidange" Or x="Vidange" Or x="VIDANGE" Then

UCase(Left((x), 3))="OUI" teste qu'il y a "oui" sur les 3 premiers caractères à gauche, sans tenir
compte des majuscules et minuscules saisies par l'utilisateur (OuI est valable mais PoUi ne l'est pas)
LCase(Left((x), 7)) = "vidange" teste qu'il y a "vidange" sur les 3 premiers caractères à gauche, sans tenir
compte des majuscules ou minuscules saisies par l'utilisateur(vIDANge est valable)

J'ai modifié la présentation des inputbox pour l'exemple.

@+
jean-marc
=====================================================Const ForReading 1, ForWriting 2, ForAppending = 8
Dim fichier
fichier = "C:\Documents and Settings\HP_Propriétaire\Mes documents\Thibault\journalintime.txt"
reponse=inputbox("Veuillez entrer le mot de passe.","Titre de cet inputbox")
Select Case reponse
Case"Drakofe"
Set fso = CreateObject("Scripting.FileSystemObject")


Set fic = fso.OpenTextFile(fichier, ForReading)
Do While fic.AtEndOfStream <> True
Lecture = fic.ReadAll
Loop
Call fic.Close


x=inputBox(Lecture &vbCrLf&vbCrLf& "Que souhaitez-vous effectuer ???"&vbCrLf&vbCrLf&_
  "- pour écrire une ligne à la fin du fichier, saisir:"&vbCrLf&"OUI"&vbCrLf&_
  "- pour effacer le contenu du fichier, saisir:" &vbCrLf& "VIDANGE","Visualisation du fichier " & fichier)
If UCase(Left((x), 3))="OUI" Then
Set fic = fso.OpenTextFile(fichier, ForAppending)
y=inputBox("Entrez ici ce que vous voulez écrire(Une seule ligne).")
fic.WriteLine (y)
fic.Close
ElseIf LCase(Left((x), 7)) = "vidange" Then
Set a = fso.CreateTextFile(fichier,True)
MsgBox"VIDANGE EFFECTUEE"
Else
MsgBox"Désolé,réponse incorrect,veuillez recommenser"
End If


Case Else
MsgBox"Désolé,tu ne peux pas rentrer..."
End Select


Set fso = Nothing
Set fic = Nothing
Commenter la réponse de cs_JMO

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.