Récupération d'infos dans un fichier texte.
Fermé
DevMicrop
-
28 janv. 2014 à 12:08
Kalissi Messages postés 218 Date d'inscription jeudi 2 mai 2013 Statut Membre Dernière intervention 15 juillet 2019 - 3 févr. 2014 à 22:30
Kalissi Messages postés 218 Date d'inscription jeudi 2 mai 2013 Statut Membre Dernière intervention 15 juillet 2019 - 3 févr. 2014 à 22:30
A voir également:
- Récupération d'infos dans un fichier texte.
- Fichier rar - Guide
- Comment ouvrir un fichier epub ? - Guide
- Comment réduire la taille d'un fichier - Guide
- Ouvrir un fichier .bin - Guide
- Convertisseur récupération de texte - Guide
6 réponses
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
28 janv. 2014 à 17:08
28 janv. 2014 à 17:08
Salut,
La fonction Split() récupère dans un tableau les éléments d'une chaîne de caractères délimités par un séparateur. Dans ton cas c'est ";".
sr est la ligne récupérée par le StreamReader.
Le tableau généré par la fonction Split() a pour 1er index 0. Dans ton cas le tableau retourné par Split() aura cette forme pour la première ligne de ton exemple:
mtab(0) -> Maison
mtab(1) -> ruenoble
mtab(2) -> agence2000
mtab(3) -> 174000
Bonne continuation et bon courage
;0)
La fonction Split() récupère dans un tableau les éléments d'une chaîne de caractères délimités par un séparateur. Dans ton cas c'est ";".
Dim mTab() mTab = Split(sr, ";") MsgBox(mTab(2))
sr est la ligne récupérée par le StreamReader.
Le tableau généré par la fonction Split() a pour 1er index 0. Dans ton cas le tableau retourné par Split() aura cette forme pour la première ligne de ton exemple:
mtab(0) -> Maison
mtab(1) -> ruenoble
mtab(2) -> agence2000
mtab(3) -> 174000
Bonne continuation et bon courage
;0)
Kalissi
Messages postés
218
Date d'inscription
jeudi 2 mai 2013
Statut
Membre
Dernière intervention
15 juillet 2019
20
Modifié par Kalissi le 1/02/2014 à 00:48
Modifié par Kalissi le 1/02/2014 à 00:48
Bonjour,
Exemple :
n..b. Il est possible de faire un import en début de classe
K
Exemple :
Private Sub btn_LireFichier_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_LireFichier.Click
' Déterminer le chemin du répertoire
Dim Chemin As String = Application.ExecutablePath
Dim Position As Int32 = Chemin.LastIndexOf("\")
Dim Dossier As String = Chemin.Substring(0, (Position + 1))
' Variable de travail
Dim Chaine As String = String.Empty
Dim ChaineSplit() As String
Dim Valeur As String = String.Empty
Dim LeResultat As System.IO.StreamWriter = System.IO.File.AppendText(String.Concat(Dossier , "resultat.txt"))
Dim LeFichier As System.IO.StreamReader = System.IO.File.OpenText(String.Concat(Dossier , "sommaire.txt"))
Do Until LeFichier.Peek = -1
Chaine = LeFichier.ReadLine
ChaineSplit = Chaine.Split(";"c)
Valeur = ChaineSplit(2)
If (Valeur.Equals("agence2000")) Then
LeResultat.WriteLine(Chaine)
End If
Loop
LeFichier.Close()
LeResultat.Close()
End Sub
n..b. Il est possible de faire un import en début de classe
Imports System.IO
' Le code devient
'n.b. Pour utiliser l'instruction File.AppendText, le fichier doit exister,
' sinon il faut le créer.
Dim LeResultat As StreamWriter = File.AppendText(String.Concat(Dossier , "resultat.txt"))
Dim LeFichier As StreamReader = File.OpenText(String.Concat(Dossier , "sommaire.txt"))
K
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
28 janv. 2014 à 12:38
28 janv. 2014 à 12:38
@flomine
Depuis quand Split() génère un tableau à 2 dimensions ?
Depuis quand Split() génère un tableau à 2 dimensions ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Un grand merci toi Polux !
Plus qu'a savoir comment creer automatiquement une case a cocher (checkbox) quand une condition est remplis (En indiquant le nom qui doit apparaitre a coté..)
Plus qu'a savoir comment creer automatiquement une case a cocher (checkbox) quand une condition est remplis (En indiquant le nom qui doit apparaitre a coté..)
flomine
Messages postés
274
Date d'inscription
vendredi 2 janvier 2009
Statut
Membre
Dernière intervention
4 décembre 2017
126
28 janv. 2014 à 12:15
28 janv. 2014 à 12:15
Le fonction split génère un tableau en deux dimensions à partir d'une variable. Un exemple:
Dim Séparer() as string
Split (Séparer, ";")
Puis pour récupérer la valeur, simplement Split (n°delachaine) par exemple pour la 1ère ligne ce sera Split (2).
Dim Séparer() as string
Split (Séparer, ";")
Puis pour récupérer la valeur, simplement Split (n°delachaine) par exemple pour la 1ère ligne ce sera Split (2).
Modifié par Kalissi le 1/02/2014 à 00:56
Avec tout le respect qui t'es du et ce sans préjudice, cette façon de faire
est plutôt selon la nomenclature de VB6
Sous Vb.Net, on devrait plutôt écrire :
mtab = sr.Split(";"c)
K
1 févr. 2014 à 03:12
Mais la méthode que j'ai donné fonctionne également en VB.Net.
;0)
1 févr. 2014 à 14:12
1 févr. 2014 à 14:29
T'assures-tu que ton StreamReader n'est pas vide avant de l'envoyer à la fonction Split() ?
Modifié par Kalissi le 3/02/2014 à 22:57
À ma grande surprise, je confirme que ta syntaxe fonctionne aussi chez moi sous VB2010.
Je croyais que tu avais chargé des DLLs de rétrocompatibilité pour que ça fonctionne, mais
non j'ai testé sans ces DLLs et j'obtiens aussi le même résultat avec l'une ou l'autre des deux
syntaxes.
Étrangement, au bureau l'instruction "IsNumeric" et "MsgBox", n'est plus reconnu sous VB.2010,
avec des classes d'héritage que je n'ai pas conçu, alors je ne puis te dire quelles librairies
ils ont utilisé, puisque ma classe est construite de façon automatique avec un héritage de base.
Par contre, ici à la maison, ça fonctionne ???
Selon Microsoft, on pourrait croire que non, mais !!!
https://docs.microsoft.com/en-us/previous-versions/visualstudio/visual-studio-2008/6cd3f6w1(v=vs.90)?redirectedfrom=MSDN
Néanmoins, je continue de suivre la syntaxe de la Programmation Orientée Objet (POO),
que j'ai apprise avec le livre de :
Deitel et Deitel
Introduction à la conception Orientée Objets avec l'UML.
Troisième Édition
Version française de Deitel & Deitel
Copyright 2001,1998,1994 par Prentice-Hall Inc.
Publié avec l'accord de Prentice Hall Inc., une division de Pearson Education
Je me dis que la pérennité de mon code est plus fiable avec cette syntaxe.
Edit:
J'ai oublié de dire que mon test à été réalisé sous l'OS de Windows XP et
qu' au bureau je code sous l'OS de Windows Serveur 2008.
Je suis en train de virtualiser Windows Vista, le comportement pourrait être
différent selon l'OS. Je me suis laisser dire que Windows 8 inclus son propre
Framework. Mais je n'en suis pas encore là, quand j'aurai fini de virtualisé
Windows Vista, je passerai à Windows 7 et j'essaierai peut-être Windows 8.
Mon OS de base est Linux Open Suse 12.2.
:-)
K