Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1311 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Récuperer une ligne d'un fichier texte dans une variable

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Récuperer une ligne d'un fichier texte dans une variable

n°1360217
trik
Section TSMIR071
Posté le 05-05-2006 à 10:25:25  profilanswer
 

Salut a tous, je suis nouveau sur ce forum, et débutant en vbs !!! et je dois faire un script en vbs pour vérifier que (dans mon entreprise) le dossier Mes documents (c:\Docs and ...\USER)des utilisateurs soit bien celui qui est sauvegarder tous les midi. Pour la sauvegarde le dossier est renseigné dans un fichier .bks (lecture/ecriture avec notepad). j'ai déja réussi a récuperer le chemin du profil utilisé par l'user  :wahoo: (avec userprofile) mais je n'arrive pas à lire la 2ème ligne du fichier bks (ni la premiere d'ailleurs  :(  ) j'ai trouvé nombre de script qui le faisait mais aucun ne marche ou alors je n'arrive pas a le comprendre pour le paramétrer.
Quelqu'un a une idée ?? merci
 
je partirais comme ca  

Code :
  1. Dim Var1
  2. Open "C:\test.txt" For Input As #1
  3. Input #2, Var1
  4. Close #2
  5. MsgBox "Le fichier contient : " & Var1

 
mais  :fou:  :fou:

mood
Publicité
Posté le 05-05-2006 à 10:25:25  profilanswer
 

n°1360241
olivthill
Posté le 05-05-2006 à 10:47:25  profilanswer
 

:hello:  
 
1. Le symbole "#" veut dire numéro en anglais et est l'équivalent de notre "n°".
En basic chaque fichier ouvert est identifié par un numéro que l'on choisit soi-même, mais qui doit être utilisé de manière cohérente.
En l'occurence, comme toutes tes opérations concernent le premier fichier, il faut avoir #1 partout.
 
2. Un fichier ouvert en mode Input est lu de manière séquentielle. Donc, pour lire le deuxième enregistrement, il faut d'abord lire le premier enregistrement, puis le deuxième.
 
3. Au lieu d'Input, il existe Line Input qui est peut-être plus approprié dans ton cas. Voir la doc.


Message édité par olivthill le 05-05-2006 à 10:48:17
n°1360267
trik
Section TSMIR071
Posté le 05-05-2006 à 11:02:27  profilanswer
 

ou puis je trouver une doc "complete", quand au 1 et 2 pour les # c'est une erreur de copie de ma part désolé
meme avec les changements que je viens de faire (line.input), je n'ai meme pas ma msgbox qui s'affiche :(


Message édité par trik le 05-05-2006 à 11:14:46
n°1360332
trik
Section TSMIR071
Posté le 05-05-2006 à 12:02:55  profilanswer
 

Ca y'est je m'en suis sorti grace à :

Code :
  1. chemin="h:\sauvegarde\maSauvegarde.txt"
  2. set fso=wscript.createobject("scripting.filesystemobject" )
  3. if fso.FileExists(chemin) then
  4.   set ouvrir=fso.opentextfile(chemin,1)
  5.  
  6. l1 = ouvrir.readline
  7. l2 = ouvrir.readline
  8. msgbox l2
  9. else
  10. msgbox "Le fichier n'existe pas"
  11. end if


mais ca ne marche pas avec un fivhier *.bks, ca me saoule


Message édité par trik le 05-05-2006 à 12:03:21
n°1360364
olivthill
Posté le 05-05-2006 à 13:08:49  profilanswer
 

Je soupçonne que le fichier *.bks contient de l'Unicode.
Dans ce cas, il suffirait de modifier la ligne du opentextfile en ajoutant le paramètre -1 de la manière suivante :

 set ouvrir=fso.opentextfile(chemin,1,,-1)

n°1360400
trik
Section TSMIR071
Posté le 05-05-2006 à 14:01:10  profilanswer
 

Un grand merci, tu peu m'indiquer a quoi sert le paramètres -1, histoire de pas appliquer betement. en tout cas ca fonctionne maintenant merci beaucoup

n°1360414
olivthill
Posté le 05-05-2006 à 14:10:38  profilanswer
 

Pour info, le quatrième paramètre de OpenTextFile doit prendre la valeur 0 (qui est la valeur par défaut), si le fichier est codé en Ascii, ou -1 si le fichier est codé en Unicode.
Les fichiers Unicodes ont un en-tête constitué des deux octets FF FE, et chaque caractère est codé sur deux octets. Cela ne se voit pas avec Notepad, mais c'est visible avec un éditeur de texte qui montre le contenu en binaire.

n°1360526
trik
Section TSMIR071
Posté le 05-05-2006 à 15:58:32  profilanswer
 

Merci de cette précision pour ceux que ca pourrais interresser, ce script verifie si le dossier mes documents utilisé par l'user est le meme que celui que sauvegarde ntbackup

Code :
  1. Dim WshShell
  2. Dim WSHFso
  3. Dim WshNetwork
  4. Dim WshSysEnv
  5. Dim userprof
  6. Set WSHShell = WScript.CreateObject("WScript.Shell" )
  7. Set WSHFso = WScript.CreateObject("Scripting.FileSystemObject" )
  8. Set WshNetwork = WScript.CreateObject("WScript.Network" )
  9. Set objFSO = createobject("Scripting.filesystemobject" )
  10. Set WshSysEnv = WshShell.Environment("Process" )
  11. 'USERPROF EST LE CHEMIN D'ACCÈS AU REPERTOIRE DE L'UTILISATEUR
  12. userprof = WshSysEnv("userprofile" )
  13. profil = mid(userprof, 27) 'j'enleve c:\Doc... pour avoir le login utilisé
  14. chemin="h:\sauvegarde\maSauvegarde.bks"  'le chemin du fichier bks de ma sauvegarde
  15. if WSHFso.FileExists(chemin) then
  16.    set ouvrir=WSHFso.opentextfile(chemin,1,,-1)    'merci a olivthill pour cette ligne
  17.    ligne1 = ouvrir.readline
  18.    ligne2 = ouvrir.readline   'le chemin complet se trouve a la deuxieme ligne (pour moi)
  19. else
  20.     msgbox "Le fichier"+" "+chemin+" "+" n'existe pas", , "Erreur"
  21. end if
  22. if ligne2=userprof then
  23.    
  24.     msgbox "Votre sauvegarde s'effectue normalement !!!" & vbCrLf & "Votre login est"+" "+profil & vbCrLf & "Votre répertoire personnel est"+" "+userprof, vbInformation, "Sauvegarde correcte"
  25. else
  26.    
  27.     msgbox "Votre sauvegarde semble ne pas se faire sur le bon répertoire !!!" & vbCrLf & "Veuillez prévenir votre administrateur réseau", vbCritical, "Problème de sauvegarde"
  28. end if


 
merci a toi olivithill tu m'as bien aidé, a plus sur le forumm


Message édité par trik le 05-05-2006 à 15:59:41

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Récuperer une ligne d'un fichier texte dans une variable

 

Sujets relatifs
Texte d'un select...Récupérer la mise en forme conditionnelle
supprimer boite de dialogue lors de la fermeture fichier[debutant] Structure de mon fichier correcte ?
Contrôler un fichier avec l'extension .pdfRécuperer les dimensions d'une image (PHP)
texte sur graphiqueEnregistremt de fichier : choix du répertoire et du nom de fichier VBA
choisir le chemin de création d'un fichier txt[BUILDER] Supprimer une ligne d'un fichier texte
Plus de sujets relatifs à : Récuperer une ligne d'un fichier texte dans une variable


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR