Récupérer variable dans fichier texte

Récupérer variable dans fichier texte - VB/VBA/VBS - Programmation

Marsh Posté le 02-11-2004 à 22:09:46    

Salut à tous,
voilà je voudrai savoir comment récupérer une variable contenue dans un fichier texte en vbs...
sachant que le fichier texte contiendra une seule ligne... la variable
 
merci d'avance
 
kmeleon

Reply

Marsh Posté le 02-11-2004 à 22:09:46   

Reply

Marsh Posté le 04-11-2004 à 08:34:43    

open fichier for Input as #1
do while EOF(1)
input #1,variable
loop
close #1
' marche aussi pour plusieurs lignes.... mais tu dois sauvegarder 'variable'

Reply

Marsh Posté le 04-11-2004 à 11:04:36    

Une petite astuce : si tu crées ton fichier depuis VB, alors fait un "put" en passant en paramètre le type que tu veux utiliser (integer par exemple).
 
Ensuite, tu pourras relire le fichier en utilisant directement une variable typée dans ton get, sans erreur d'interprétation.
 
PS: par contre, attention, dans le cas d'un integer par exemple, le fichier généré ne sera pas lisible (écrit en binnaire)
 
Et le summum...
 
Imagine que tu veux enregistrer et relire une fiche client :
- Nom (30 caractères)
- Prénom (30 caractères)
- Chiffre d'affaire (float)
- Date anniversaire (date)
 
Bah tu fais une struct :
 
Struct client
  nom as string(30)
  prenom as string(30)
  ca as float
  anniv as date
End Struct
 
Dim monClient as client
monClient.nom = "Magic"
monClient.prenom = "Buzz"
monClient.ca = 486.50
monClient.anniv = #12/05/1952#
 
Puis un joli put monClient :
 
Put #ifichier, , monClient
 
Et quand tu veux recharger le client, tu fait un bête :
 
Dim monClient as client
get #ifichier, , monClient
 
PS: le paramètre non spécifié les deux fois (pour le put et le get) est en fait le "numéro d'enreistrement". Si tu décides par exemple de stocker 800 000 fiches client dans un même fichier, au lieu de parcourir tout le fichier 1 à 1 pour aller au 799858°, fais un simple "get #file, 799858, monClient" pour le lire (ou un put pour le mettre à jour)

Reply

Marsh Posté le 04-11-2004 à 19:49:07    

Oulà là j'ai un big problem
 
voici la source
 

Code :
  1. 'Déclaration des variables
  2. dim choice
  3. dim server
  4. dim login
  5. dim pass
  6. dim file_g
  7. dim file_p
  8. dim dir_p
  9. dim dir_quest
  10. dim save
  11. 'Création du fichier de commandes ftp
  12. Set FSys = CreateObject("Scripting.FileSystemObject" )
  13. Set Cmd = FSys.CreateTextFile("C:\Program Files\QuickFTP\cmd.qftp" )
  14. Set Serverl = FSys.CreateTextFile("C:\Program Files\QuickFTP\server.qftp" )
  15. Set Loginl = FSys.CreateTextFile("C:\Program Files\QuickFTP\login.qftp" )
  16. Set Passl = FSys.CreateTextFile("C:\Program Files\QuickFTP\pass.qftp" )
  17. '########################################### Log existant #####################################
  18. if (Fsys.fileExists(Serverl)) then
  19.         'Ouvre server
  20.         open server.qftp for Input as #1
  21.         do while EOF(1)
  22.         input #1,server
  23.         loop
  24.         close #1
  25.         'Ouvre login
  26.         open login.qftp for Input as #1
  27.         do while EOF(1)
  28.         input #1,login
  29.         loop
  30.         close #1
  31.         'Ouvre pass
  32.         open pass.qftp for Input as #1
  33.         do while EOF(1)
  34.         input #1,pass
  35.         loop
  36.         close #1
  37.         choice = InputBox ("Quel type de transfert souhaitez-vous effectuer ?" & vbCrLf & "    1- Envoyer un fichier" & vbCrLf & "    2- Recevoir un fichier","Choix du type de transfert" )
  38. With Cmd
  39.         'Choix n°2 :: Recevoir
  40.         If choice = 2 Then
  41.                 file_g = inputbox ("Entrez le nom du fichier à télécharger, extension inclue, en mettant le nom de dossier sous la forme ' dossier\fichier.extension ' si nécessaire","Chemin du fichier" )
  42.                 .writeline "open "&server&""
  43.                 .writeline ""&login&""
  44.                 .writeline ""&pass&""
  45.                 .writeline "get "&file_g&""
  46.                 .writeline "quit"
  47.         End If
  48.         'Choix n°1 :: Envoyer
  49.         If choice = 1 Then
  50.                 file_p = inputbox ("Entrez le chemin et le nom du fichier à envoyer sous la forme ' C:\dossier\fichier.extension ' .","Fichier à envoyer" )
  51.                 dir_quest = msgbox ("Souhaitez-vous que le fichier soit envoyé vers un dossier spécifique sur le serveur distant ?", vbyesno)
  52.                 If dir_quest = vbyes Then
  53.                         dir_p = inputbox ("Entrez le nom du dossier sur le serveur distant","Dossier sur le serveur" )
  54.                         .writeline "open "&server&""
  55.                         .writeline ""&login&""
  56.                         .writeline ""&pass&""
  57.                         .writeline "cd "&dir_p&""
  58.                         .writeline "put "&file_p&""
  59.                         .writeline "quit"
  60.                 End if
  61.        
  62.                 If dir_quest = vbno Then
  63.                         .writeline "open "&server&""
  64.                         .writeline ""&login&""
  65.                         .writeline ""&pass&""
  66.                         .writeline "put "&file_p&""
  67.                         .writeline "quit"
  68.                 End if
  69.    
  70.         End If
  71. End With
  72. end if
  73. '###################################### Pas de log ##########################################
  74. else
  75.         'Récupération des informations sur les variables
  76.         server = InputBox ("Entrez l'adresse exacte du serveur FTP, ne pas mettre ftp:\\","Serveur FTP" )
  77.         login = InputBox ("Entrez le nom d'utilisateur","Nom d'utilisateur" )
  78.         pass = InputBox ("Entrez le mot de passe" & vbCrLf & "ATTENTION => Le mot de passe ne sera pas remplacé par des guillemets, attention aux yeux indiscrets !","Mot de passe" )
  79.         save = msgbox ("voulez vous sauvegarder ces paramètres:" & vbCrLf & "Serveur : "&server&" & vbCrLf & "Login : "&login&" & vbCrLf & "Mot de passe : "&pass&", vbyesno)
  80.         if save = vbyes then
  81.        
  82.                 With Serverl
  83.                 .writeline &server&
  84.                 end with
  85.                 With Loginl
  86.                 .writeline &login&
  87.                 end with
  88.                 With Passl
  89.                 .writeline &pass&
  90.                 end if
  91.                 end with
  92.         end if
  93.         choice = InputBox ("Quel type de transfert souhaitez-vous effectuer ?" & vbCrLf & "    1- Envoyer un fichier" & vbCrLf & "    2- Recevoir un fichier","Choix du type de transfert" )
  94.         With Cmd
  95.         'Choix n°2 :: Recevoir
  96.         If choice = 2 Then
  97.                 file_g = inputbox ("Entrez le nom du fichier à télécharger, extension inclue, en mettant le nom de dossier sous la forme ' dossier\fichier.extension ' si nécessaire","Chemin du fichier" )
  98.                 .writeline "open "&server&""
  99.                 .writeline ""&login&""
  100.                 .writeline ""&pass&""
  101.                 .writeline "get "&file_g&""
  102.                 .writeline "quit"
  103.         End If
  104.         'Choix n°1 :: Envoyer
  105.         If choice = 1 Then
  106.                 file_p = inputbox ("Entrez le chemin et le nom du fichier à envoyer sous la forme ' C:\dossier\fichier.extension ' .","Fichier à envoyer" )
  107.                 dir_quest = msgbox ("Souhaitez-vous que le fichier soit envoyé vers un dossier spécifique sur le serveur distant ?", vbyesno)
  108.                 If dir_quest = vbyes Then
  109.                         dir_p = inputbox ("Entrez le nom du dossier sur le serveur distant","Dossier sur le serveur" )
  110.                         .writeline "open "&server&""
  111.                         .writeline ""&login&""
  112.                         .writeline ""&pass&""
  113.                         .writeline "cd "&dir_p&""
  114.                         .writeline "put "&file_p&""
  115.                         .writeline "quit"
  116.                 End if
  117.                 If dir_quest = vbno Then
  118.                         .writeline "open "&server&""
  119.                         .writeline ""&login&""
  120.                         .writeline ""&pass&""
  121.                         .writeline "put "&file_p&""
  122.                         .writeline "quit"
  123.                 End if
  124. End If
  125. End With


 
Voilà ca me met une ereur comme quoi y'a pas d'instruction...
 
HELP ME !!!
 
Kmeleon


---------------
.:: Kmeleon ::.
Reply

Marsh Posté le 04-11-2004 à 20:41:53    

Où l'erreur ?

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed