Probleme en vbs [Résolu]

CYM13 19 Messages postés mercredi 24 mai 2006Date d'inscription 16 octobre 2006 Dernière intervention - 29 août 2006 à 09:25 - Dernière réponse : cs_JMO 1855 Messages postés jeudi 23 mai 2002Date d'inscription 24 juin 2018 Dernière intervention
- 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
jrivet 7401 Messages postés mercredi 23 avril 2003Date d'inscription 6 avril 2012 Dernière intervention - 29 août 2006 à 15:55
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

Merci jrivet 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 74 internautes ce mois-ci

Commenter la réponse de jrivet
Meilleure réponse
cs_JMO 1855 Messages postés jeudi 23 mai 2002Date d'inscription 24 juin 2018 Dernière intervention - 29 août 2006 à 16:12
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

Merci cs_JMO 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 74 internautes ce mois-ci

Commenter la réponse de cs_JMO
Meilleure réponse
CYM13 19 Messages postés mercredi 24 mai 2006Date d'inscription 16 octobre 2006 Dernière intervention - 31 août 2006 à 11:58
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

Merci CYM13 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 74 internautes ce mois-ci

Commenter la réponse de CYM13
cs_casy 7745 Messages postés mercredi 1 septembre 2004Date d'inscription 24 septembre 2014 Dernière intervention - 29 août 2006 à 10:24
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
jrivet 7401 Messages postés mercredi 23 avril 2003Date d'inscription 6 avril 2012 Dernière intervention - 29 août 2006 à 10:34
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
cs_JMO 1855 Messages postés jeudi 23 mai 2002Date d'inscription 24 juin 2018 Dernière intervention - 29 août 2006 à 12:36
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
CYM13 19 Messages postés mercredi 24 mai 2006Date d'inscription 16 octobre 2006 Dernière intervention - 29 août 2006 à 15:48
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
cs_JMO 1855 Messages postés jeudi 23 mai 2002Date d'inscription 24 juin 2018 Dernière intervention - 31 août 2006 à 12:53
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.