IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

[VB.NET]Afficher éléments fichier texte dans plusieurs textbox (séparation ";")


Sujet :

Windows Forms

  1. #1
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    104
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 104
    Points : 58
    Points
    58
    Par défaut [VB.NET]Afficher éléments fichier texte dans plusieurs textbox (séparation ";")
    Bonjour à tous...

    J'ai farfouillé sur le net et j'ai pas trouvé exactement ce que je cherchais.

    Je dois créer une application qui d'une part récupère des informations d'un fichier texte et ensuite qu'on puisse pouvoir modifier ses informations.

    EN fait j'ai un fichier texte que j'ai intégré au projet (qui contient
    +2000 lignes) de cette forme:

    Commune;Code;Client;;;; (certains champs peuvent être vide)

    Je cherche à savoir comment importer les communes dans la TextBox1, le code dans la TextBox2 etc...

    A la fin je voudrais obtenir comme résultat que l'utilisateur séléctionne(ou rentre ) un code et que les informations correspondante à ce code s'affiche. Si celui-ci change le code les autre textbox sont mise a jour...

    donc je me pose plusieurs questions:
    1) est-ce deja possible d'obtenir un tel résulat avec un fichier texte
    si non qu'elle est la meilleur solution (sachant que je veux pas utiliser de base de données)
    2) comment traiter les informations de mon fichier texte entre chaque séparation pour les afficher ds des textbox.

    merci d'avance,

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2003
    Messages : 42
    Points : 34
    Points
    34
    Par défaut
    Salut,

    1) oui tout a fait possible
    2) avec indexof ou plutot instr (InStr("Chaine à chercher", nbEn))

    @+

  3. #3
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    104
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 104
    Points : 58
    Points
    58
    Par défaut
    Merci beaucoup de ta réponse (rapide) je vais me renseigner sur cela

  4. #4
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    104
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 104
    Points : 58
    Points
    58
    Par défaut
    est'il possible d'avoir un exemple concret car la je m'y perd un peu...

    instr permet de cherche une chaine mais comment je peux indiquer la chaine que je désire chercher ds mon fichier texte?
    parce que mon but c'est de retourner cette valeur ds ma textbox

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TestBox1.Text = chainecommune

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2003
    Messages : 42
    Points : 34
    Points
    34
    Par défaut
    non en fait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    Exemple tiré de la doc
    ' String to search in.
    Dim SearchString As String = "XXpXXpXXPXXP"
    ' Search for "P".
    Dim SearchChar As String = "P"
     
    Dim TestPos As Integer
    ' A textual comparison starting at position 4. Returns 6.
    TestPos = InStr(4, SearchString, SearchChar, CompareMethod.Text)
     
    ' A binary comparison starting at position 1. Returns 9.
    TestPos = InStr(1, SearchString, SearchChar, CompareMethod.Binary)
     
    ' If Option Compare is not set, or set to Binary, return 9.
    ' If Option Compare is set to Text, returns 3.
    TestPos = InStr(SearchString, SearchChar)
     
    ' Returns 0.
    TestPos = InStr(1, SearchString, "W")
    Donc en fait tu doit rechercher tes ; et utiliser mid pour extraire une partie

    donc par exemple tu as une chaine

    Commune;Code;Client;;;;
    Tu prend la première chaine de commune au ;
    puis du ; au suivant c'est le code
    puis du ; au suivant c'est le client etc..

    Donc
    Chaine = "Nalinnes;6120;Duprez;;;;;"

    Tu fait instr(";",chaine)
    il va te renvoyer 9 alors tu fait un
    Ret = mid(Chaine,1,9) il va te renvoyer nalinnes
    Ensuite Instr(";",chaine, 10) il te renvoye 15
    ret = Mid(Chaine,10,15) ...

    Faut juste verifier les chiffres que j'ai mis car cela a été vite fait

  6. #6
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 175
    Points : 25 116
    Points
    25 116
    Par défaut

  7. #7
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    104
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 104
    Points : 58
    Points
    58
    Par défaut
    Super! merci.

    J'essaye tout ça, je vous tiens au courant.

  8. #8
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    104
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 104
    Points : 58
    Points
    58
    Par défaut
    Donc j'ai "essayé" de faire comme tu me la dis mais j'ai quelques petit soucis:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
      Sub charger()
                Dim chaine As String
                Dim ret As String
                chaine = (TxtFichier.Text)
                InStr(";", chaine)
                ret = Mid(chaine, 1, 15)
                TextBox1.Text = ret
            End Sub
     
            Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
                charger()
            End Sub
    1) Lorsque je clique sur le bouton je veux donc que la textbox recupere la première partie (avant le 1er ";")
    Mais celui ci ne s'arrete pas au ; mais au nombre de charactère. C'est plutôt embêtant puisque les informations de mon fichier texte n'a pas toujours la même longueur. L'idéal serait qu'il s'arrete a mon ";"

    2)pour le moment la chaine récupère le texte d'une textbox qui se limitte a une ligne de mon fichier texte
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     TxtFichier.Text = sr.ReadLine()
    donc pas de problème pour le moment mais comment récupére les autres lignes?

    Oui, je débute un peu... donc je manque un peu de méthode surement...

  9. #9
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 175
    Points : 25 116
    Points
    25 116
    Par défaut
    il te manque au moins une variable
    en effet les ; ne sont pas toujours placés pareil
    InStr(";", chaine) te permet de connaitre l'emplacement du ";"
    si ca retourne 0 ca veut dire qu'il n'y en a pas
    il aussi possibilité dans instr de préciser à partir de quel caractère il faut commencer à chercher

    donc il serait bien de faire un while (instr(startpos,chaine,";") > 0

  10. #10
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 242
    Points
    4 242
    Par défaut
    Personnellement, je ferais autrement.

    Si les lignes de ton fichier texte ont toute le même format (cad que l'ordre des différentes informations ne varie pas et que si l'information n'est pas renseignée, il y a une "case" vide), je conseillerais d'utiliser la fonction "split".

    Ca rend la chose très simple.

    La fonction split permet de séparer une chaine de caractère en utilisant un caractère donné comme séparateur (dans ton cas ";" si j'ai bien compris).

    Cela te donnera donc à chaque ligne, un tableau de chaine de caractère où tes informations occuperais tjs la même place dans ce tableau.

    Cela donnerait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim tab() as string
    'je saute la partie lecture de ton fichier, je ne sais pas comment tu t'y prends
    tab = ligneDuFichier.split(";")
    Ainsi, tu as donc toutes tes données séparées automatiquement et rangées dans un tableau.

    Regarde dans l'aide pour la fonction split. J'ai écrit ça de tête et il est possible que j'ai commis une erreur.

    Griftou.

  11. #11
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 175
    Points : 25 116
    Points
    25 116
    Par défaut
    ah bah oui, on est bete de pas y avoir pensé, pourtant bien partique split et join ...

  12. #12
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 242
    Points
    4 242
    Par défaut
    Oui, me semblait aussi que c'était compliqué votre truc ^^

  13. #13
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    104
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 104
    Points : 58
    Points
    58
    Par défaut
    J'obtiens ce message d'erreur "L'argument 'Start' doit être supérieur à zéro" lorsque je charge ma textbox.

    Je comprends pas pourquoi...

    Mais le split je sais pas si c'est une bonne solution... ds la mesure ou j'ai plusieurs lignes a traiter non?

    Cela dit je vais essayer d'étudier tout ça

  14. #14
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 242
    Points
    4 242
    Par défaut
    où est le problème d'avoir plusieurs lignes?

    tu fais une boucle et puis voilà

  15. #15
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    104
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 104
    Points : 58
    Points
    58
    Par défaut
    Citation Envoyé par griftou Voir le message
    où est le problème d'avoir plusieurs lignes?

    tu fais une boucle et puis voilà
    Aucun, c'est en effet beaucoup plus simple comme solution, c'est le résultat que je voulais . Plus qu'a gérer le tout dans différentes TextBox et à gérer la boucle donc

    Merci à tous de votre aide.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Lire Fichier Texte Dans Une TextBox Par FTP
    Par pipoi26 dans le forum VB.NET
    Réponses: 5
    Dernier message: 16/02/2011, 18h21
  2. Réponses: 1
    Dernier message: 01/06/2010, 17h25
  3. Lire un fichier text dans un textbox
    Par Ahmed Sat dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 25/06/2009, 12h15
  4. [VB.Net] afficher un fichier pdf dans une page WEB
    Par kasaw dans le forum ASP.NET
    Réponses: 3
    Dernier message: 25/08/2008, 16h02
  5. Comment afficher un fichier texte dans une TextBox multiligne ?
    Par rudylar dans le forum Windows Forms
    Réponses: 7
    Dernier message: 02/06/2008, 17h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo