Recupérer données TXT par VB ?

Résolu/Fermé
Utilisateur anonyme - 5 févr. 2007 à 15:11
alexandretlse Messages postés 35 Date d'inscription vendredi 25 mars 2011 Statut Membre Dernière intervention 28 avril 2011 - 28 avril 2011 à 13:23
Bonjour, voila le probleme que je pose sur ce site :
Pour ma part, je suis en BTS Informatique de Gestion en 1ere année... Je doit faire une action pro dans une entreprise, je l'ai donc commencé je suis allé voir le patron, qui veut que je crée un espece de programme qui lui permetrait d'entrer des adresses de maisons et de les imprimer directement, sans passer par word et tout, sur des enveloppes...Il veut pouvoir mettre des commentaires pour chaques maison...
Je pensais utiliser une base de donnée mais je ne saurais pas l'utiliser apres... a part en php et html... Donc je suis parti sur l'idée de créer un fichier .txt avec VB qui stockerais les données des maisons (je suis entrain d'etudié ca en ce moment en cours c'est pour ca que j'ai eu l'idée :-)...) Seulement voila je bloc, a ce moment je ne sais pas comment recuperer les données que j'ai rentré dans le fichier .txt...
Voila je vais arreter pour les questions et les explications (c'est tout de même a moi de faire le programme ;-)...)
Si vous pouvez au moins me mettre sur la voix, me dire si je fais bien de passer par VB ou si il y a mieux a faire avec une base de donnée...Me diriger vers un tuto pour recuperer des donnée dans un fichier .txt ou bien m'envoyer un bout de code...
Merci beaucoup a tout ceux qui repondrons et merci quand meme a ceux qui ne ferons que passer par ce topic....
Arthur
A voir également:

5 réponses

Utilisateur anonyme
14 avril 2011 à 14:31
re:

Tiens, voilà un exemple complet que j'ai codé sous VB6.

Tu y trouveras 2 boutons pour lire, et 2 boutons pour écrire.

Méthode avec les objets de scripting (Natif sous WindowsXP)
Méthode VB6 avec la librairie RunTime de VB6.

http://membre.oricom.ca/lupin/xfr/chemin.zip

Cdt

Lupin
1
alexandretlse Messages postés 35 Date d'inscription vendredi 25 mars 2011 Statut Membre Dernière intervention 28 avril 2011 7
27 avril 2011 à 16:53
Salut,
Tt d'abord merci. J'ai réussi a faire un truc avec ce que tu m'as envoyé et j'arrivais pas à faire un .exe avec VB 2008. J'ai fini par trouver une astuce d'un gars en prenant le fichier:

toto.exe.deploy => toto.exe (en changeant l'extension seulement)

Mais je suis confronter à un autre pb c'est l'ordi sur lequel je veux faire tourner mon programme il m'affiche ca: "Please set registry key HKLM\Software\Microsoft\.NETFramework\InstallRoot to point to the .NET Framework install location".
As tu une idée de ce que ca peut etre?
Je ne peux pas faire de MAJ de window (sachant que l'ordi a un windows2000) ni installer de logiciel sur cet ordi car il est uniquement dédié à une application.
Merci.
0
Utilisateur anonyme
27 avril 2011 à 21:22
re :

En effet, il te faut installer le FrameWork.Net 3.5 sur ton W2K.

n.b. Ce n'est pas vraiment un logiciel mais une librairie de DLL, d'objects, etc ...

Sous VB2008, il n'y a pas d'autres choix !

Cdt

Lupin
0
alexandretlse Messages postés 35 Date d'inscription vendredi 25 mars 2011 Statut Membre Dernière intervention 28 avril 2011 7
28 avril 2011 à 08:39
Merci je savais que tu aurais la réponse, en revanche je ne peux pas installer FrameWork bien que ce ne soit pas un logiciel. Ceux sont des ordinateurs destinés à des installations de sécurité et on ne peut rien faire c'est au point de vue réglement que ça bloque.
En revanche est ce que je pourrais trouver un devellopeur VB antérieur a 2008 susceptible de fonctionner avec mon petit programme moyenant quelque modifications?
Encore merci.
0
Utilisateur anonyme
28 avril 2011 à 13:19
re:

Dans un tel cas, je ne vois que le VBS (Visual Basic Scripting) qui pourrait
t'accomoder. Car même sous VB6, VB5 ... la DLL du "run time" s'installera
lors du déploiment de l'application.

J'ai moi-même programmer tout une série de script en VBS pour la maintenance
de la solution "ServiceCenter 6.1.1" étalé sur 6 serveurs. Aucune installation
n'est requise.

Dans l'exemple que j'ai déposé le 12 avr 2011 à 17:04, le script est fonctionnel
si l'extension du fichier est [ *.vbs ]. Les objets de scripting sont aussi natif
sous W2K. Toutefois tu perderas l'aspect "Formulaire" puisque VBS ne fournit
pas de formulaire.

Tu prends le code que j'ai déposé, tu l'enregistre au format "MonScript.vbs",
et tu pourra ainsi lire le fichier souhaité.

Cdt

Lupin
0
alexandretlse Messages postés 35 Date d'inscription vendredi 25 mars 2011 Statut Membre Dernière intervention 28 avril 2011 7
28 avril 2011 à 13:23
Ok merci je vais essayer je te tiens au jus de l'avancement du truc!!!
Bonne fin de journee.
0
Utilisateur anonyme
10 mai 2007 à 18:45
Bon maintenant j'ai un niveau suffisant pour réussir à faire un programme comme celui que j'ai décrit... personne ne m'a répondu c'est bien dommage...
0
alexandretlse Messages postés 35 Date d'inscription vendredi 25 mars 2011 Statut Membre Dernière intervention 28 avril 2011 7
12 avril 2011 à 16:28
Salut ca m'interesse, car je cherche a récuperer ce qui est ecrit en permanence sur un fichier txt donc si tu as une breve de pgm ca seait cool merci.
0
Utilisateur anonyme
12 avril 2011 à 17:04
Bonjour,

Vous pouvez utiliser les objets de scripting sous VB pour lire/écrire
dans un fichier texte.

Puisque VBS est un sous ensemble de VB, VB reconnait les instructions
"VBS".

Exemple pour lire écrire :

' Fichier Lire.vbs

  Const ctePourLecture = 1
  Const ctePourEcrire = 2
  Const ctePourAjouter = 8
  Const cteRapport = "Rapport.txt"

  Dim objFSO, objFichier, varNomFic, Texte, Message

  Set objFSO = CreateObject("Scripting.FileSystemObject")

  ' Localisation du script et du fichier à lire
  varNomFic = WScript.ScriptFullName
  varNomFic = Left(varNomFic, InStrRev(varNomFic, "\"))
  varNomFic = varNomFic & cteRapport

  If ( objFSO.FileExists(varNomFic) ) Then
    Set objFichier = objFSO.OpenTextFile(varNomFic,ctePourAjouter)
  Else
    Set objFichier = objFSO.CreateTextFile(varNomFic,ctePourEcrire)
  End If

  While Not objFichier .AtEndOfStream
        Texte = objFichier .ReadLine
        Message = Message & vbCrLf & Texte
  Wend
  objFichier.Close

  Set objFichier = Nothing
  Set objFSO = Nothing

  WScript.Echo Message

WScript.Quit(0)
'
'----------------------------------------------------------------------------------------------------------------------------------------------
' Fichier Ecrire.vbs

  Const ctePourLecture = 1
  Const ctePourEcrire = 2
  Const ctePourAjouter = 8
  Const cteRapport = "Rapport.txt"

  Dim objFSO, objFichier, varNomFic

  Set objFSO = CreateObject("Scripting.FileSystemObject")

' Localisation du fichier à écrire
  varNomFic = WScript.ScriptFullName
  varNomFic = Left(varNomFic, InStrRev(varNomFic, "\"))
  varNomFic = varNomFic & cteRapport

 ' Valide si fichier existe 
  If ( objFSO.FileExists(varNomFic) ) Then
    Set objFichier = objFSO.OpenTextFile(varNomFic,ctePourAjouter)
  Else
    Set objFichier = objFSO.CreateTextFile(varNomFic,ctePourEcrire)
  End If

  ' Écrire dans fichier
  objFichier.WriteLine "Bonjour le monde"
  objFichier.Close

  Set objFichier = Nothing
  Set objFSO = Nothing

WScript.Quit(0)
'----------------------------------------------------------------------------------------------------------------------------------------------

'


En VB, ça donne quelque chose comme :

Option Explicit

Const ctePourLecture = 1
Const ctePourEcrire = 2
Const ctePourAjouter = 8
Const cteRapport = "Rapport.txt"
'

Sub LireFichier()

  Dim objFSO As Object, objFichier As Object
  Dim varNomFic As String, Texte As String, Message As String

  Set objFSO = CreateObject("Scripting.FileSystemObject")

  ' Localisation du script et du fichier à lire
  varNomFic = Application.Path
  varNomFic = Left(varNomFic, InStrRev(varNomFic, "\"))
  varNomFic = varNomFic & cteRapport

  If (objFSO.FileExists(varNomFic)) Then
    Set objFichier = objFSO.OpenTextFile(varNomFic, ctePourAjouter)
  Else
    Set objFichier = objFSO.CreateTextFile(varNomFic, ctePourEcrire)
  End If

  While Not objFichier.AtEndOfStream
        Texte = objFichier.ReadLine
        Message = Message & vbCrLf & Texte
  Wend
  objFichier.Close

  Set objFichier = Nothing
  Set objFSO = Nothing


End Sub
'

Sub Ecrire()

  Dim objFSO As Object, objFichier As Object, varNomFic As String

  Set objFSO = CreateObject("Scripting.FileSystemObject")

' Localisation du fichier à écrire
  varNomFic = Application.Path
  varNomFic = Left(varNomFic, InStrRev(varNomFic, "\"))
  varNomFic = varNomFic & cteRapport

 ' Valide si fichier existe
  If (objFSO.FileExists(varNomFic)) Then
    Set objFichier = objFSO.OpenTextFile(varNomFic, ctePourAjouter)
  Else
    Set objFichier = objFSO.CreateTextFile(varNomFic, ctePourEcrire)
  End If

  ' Écrire dans fichier
  objFichier.WriteLine "Bonjour le monde"
  objFichier.Close

  Set objFichier = Nothing
  Set objFSO = Nothing

End Sub
'


Cdt

Lupin
0
alexandretlse Messages postés 35 Date d'inscription vendredi 25 mars 2011 Statut Membre Dernière intervention 28 avril 2011 7
13 avril 2011 à 09:19
bonjour Lupin,

Tt d'abord merci pour ton aide.
J'ai encore besoin de tes services. J'ai compilé le code que tu m'as envoyé pour lire un fichier en VB. Je n'ai pas recopié le code pour la solution écrire puisque je n'écrit pas dans le fichier txt. Mais ca servira pour d'autre.

Pour le code lire il me dit que j'ai deux erreurs:

'Path' n'est pas un membre de 'System.windows.forms.application
'Public Property Left() As integer' n'a aucun paramètre et son type de retour ne peut pas etre indexé.

As tu une idée a tt ca? J'ai cherché mais sans succes!!!
Merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
re:

1er Point :

L'instruction [ Application.Path ] vient du VBA, j'aurais du me souvenir
que la syntaxe était différente sous VB.

Je ne sais s'il s'agit de VB6 ou VB.NET ...

Sous VB.NET, l'instruction se lit :
Chemin = Application.ExecutablePath

Sous VB6, l'instruction se lit :
Chemin = App.Path

2è Point :
L'instruction [Left] dans :
varNomFic = Left(varNomFic, InStrRev(varNomFic, "\"))

Essai avec la syntaxe suivante :
varNomFic = Left$(varNomFic, InStrRev(varNomFic, "\"))

sinon :

Le groupe d'instruction :
' Localisation du script et du fichier à lire
varNomFic = Application.Path
varNomFic = Left(varNomFic, InStrRev(varNomFic, "\"))
varNomFic = varNomFic & cteRapport

devrait pouvoir être écrite ainsi sous VB6:

varNomFic = App.Path
varNomFic = varNomFic & "\" & cteRapport

Vérifie le chemin avec l'instruction pour ne pas avoir 2 [ \ ] dans le chemin:

MsgBox varNomFic

Cdt

Lupin
0
alexandretlse Messages postés 35 Date d'inscription vendredi 25 mars 2011 Statut Membre Dernière intervention 28 avril 2011 7
13 avril 2011 à 14:57
Salut je me suis permi de le mettre a la sauce VB6 (je t'ai mis des étoiles la ou j'avais des modif si ca t'interesse) et donc voici ce que ca donne il n'y a plus d'erreurs de compil mais j'ai encore un PB c'est le chemin. Il ne trouve pas le bon chemin et je vois pas ou est ce qu'il va chercher ca.


Public Class Form1

Const ctePourLecture = 1
Const ctePourEcrire = 2
Const ctePourAjouter = 8
Const cteRapport = "doc.txt"
'

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim objFSO As Object, objFichier As Object
Dim varNomFic As String, Texte As String, Message As String


objFSO = CreateObject("Scripting.FileSystemObject")

' Localisation du script et du fichier à lire

varNomFic = Application.ExecutablePath '*****

varNomFic = varNomFic & "\" & cteRapport

MsgBox(varNomFic)

If (objFSO.FileExists(varNomFic)) Then
objFichier = objFSO.OpenTextFile(varNomFic, ctePourAjouter)
Else
objFichier = objFSO.CreateTextFile(varNomFic, ctePourEcrire)
End If

While Not objFichier.AtEndOfStream
Texte = objFichier.ReadLine
TextBox1.Text = TextBox1.Text & vbCrLf & Texte '*****

End While
objFichier.Close()

objFichier = Nothing
objFSO = Nothing

End Sub
End Class
0
Utilisateur anonyme
13 avril 2011 à 15:13
re:

Sous VB6 c'est :

varNomFic = App.Path
varNomFic = varNomFic & "\" & cteRapport

Cdt

Lupin
0
alexandretlse Messages postés 35 Date d'inscription vendredi 25 mars 2011 Statut Membre Dernière intervention 28 avril 2011 7
13 avril 2011 à 15:21
Non dsl il m'envoie dans le mur en me disant App n'est déclaré.
Le fichier txt est sur le bureau mais le programme lui ne va a la bonne adresse.
Merci pour la patience.
0
Utilisateur anonyme
13 avril 2011 à 17:13
re:

J'ai plusieurs projet et ma Bible de VB6 à la maison, je vais regarder
et te fournir la syntaxe exact.

Il me faudra un peu de temps.

Depuis que je fais du VB.NET, je perds ma maîtrise du VB6 :-(

Cdt

Lupin
0
alexandretlse Messages postés 35 Date d'inscription vendredi 25 mars 2011 Statut Membre Dernière intervention 28 avril 2011 7
13 avril 2011 à 17:25
Pas de souci c'est déja super cool de m'aider!
0