Recherche dans un tableau [Résolu]

mr100kv 14 Messages postés samedi 16 septembre 2006Date d'inscription 19 septembre 2011 Dernière intervention - 24 avril 2011 à 19:22 - Dernière réponse : NHenry 14250 Messages postés vendredi 14 mars 2003Date d'inscription 10 août 2018 Dernière intervention
- 25 avril 2011 à 14:44
Bonjour,

je bute sur une recherche dans un tableau.
***************************************************************************
Mon code :

'on lit le fichier
Dim v_Monfichier As StreamReader
Dim v_Contenu As String
v_Monfichier = New StreamReader("Storage Card\2577\ConfigInstall.ini")

' on met tout le contenu du fichier dans une variable
v_Contenu = v_Monfichier.ReadToEnd().ToString

' On le met dans un tableau avec en parametre le séparateur de mot ","
Dim v_Tableau() As String = v_Contenu.Split(",", vbCr)

' on recherche un élément dans le tableau
Dim v_AChercher As String = "Parametres de connexion"
For v_CptA = 1 To v_Tableau.GetUpperBound(0)
MsgBox(v_Tableau(v_CptA))
If v_Tableau(v_CptA) = v_AChercher Then
Exit For
End If
Next
***************************************************************************
mon fichier ini :
Applications
Microsoft .NET CF 3.5 FR-String Resource,01_NETCFv35.Messages.FR.wm.cab,0
Microsoft SQL Mobile 2005,05_sqlce.ppc.wce5.armv4i.CAB,1
PARAMETRES
Parametres de connexion,DisabledAPN.xml
Fin de section
***************************************************************************
ma problématique :
si ma recherche s'effectue sur le premier élément qui fait suite au VbCr (ex : Microsoft .NET CF 3.5 FR-String Resource, PARAMETRES,..), la recherche échoue
si ma recherche s'effectue sur un autre élément (01_NETCFv35.Messages.FR.wm.cab,DisabledAPN.xml,..) pas de pb
tous mes éléments sont de type STring.

Moi y en a rien comprendre...
Merci de votre aide,
Afficher la suite 

Votre réponse

11 réponses

Meilleure réponse
NHenry 14250 Messages postés vendredi 14 mars 2003Date d'inscription 10 août 2018 Dernière intervention - 24 avril 2011 à 20:19
3
Merci
Bonjour,

As-tu testé en pas à pas ?

Tu as pensé à Cr, mais le Lf ?

Pourquoi ne pas utiliser une collection et utiliser io.File.ReadAllLines (avec un split par ligne dans une boucle For Each) ?

Mon site

Merci NHenry 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 75 internautes ce mois-ci

Commenter la réponse de NHenry
Meilleure réponse
NHenry 14250 Messages postés vendredi 14 mars 2003Date d'inscription 10 août 2018 Dernière intervention - 24 avril 2011 à 22:11
3
Merci
Bonjour,

Le but du pas à pas que je te conseil est de vérifier élément par élément pour voir si l'élément recherché apparait, si ce n'est pas le cas, comprendre pourquoi.
Essayes avec ton code d'origine pour voir.

Mon site

Merci NHenry 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 75 internautes ce mois-ci

Commenter la réponse de NHenry
Meilleure réponse
NHenry 14250 Messages postés vendredi 14 mars 2003Date d'inscription 10 août 2018 Dernière intervention - 24 avril 2011 à 23:48
3
Merci
Bonjour,

Jenpense que ça vient du séparateur de ligne, VbCrLf, comme tu ne retire que le Cr, il reste le Lf.

Il y a une surcharges dans le Split (voir si présent dans le CF) qui te permet de lui passer une chaine de caractères et il fais le découpage à chacun de ces caractères. Sinon, utilises un tableau de char pour voir si ça passe.

Mon site

Merci NHenry 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 75 internautes ce mois-ci

Commenter la réponse de NHenry
Meilleure réponse
NHenry 14250 Messages postés vendredi 14 mars 2003Date d'inscription 10 août 2018 Dernière intervention - 25 avril 2011 à 13:24
3
Merci
Bonjour,

Dim lText As String="..."

lText=lText.Replace(vbcr,",").replace (vblf,",")
Ensuite, tu split sur ",", c'est une autre solution.

Mon site

Merci NHenry 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 75 internautes ce mois-ci

Commenter la réponse de NHenry
Meilleure réponse
mr100kv 14 Messages postés samedi 16 septembre 2006Date d'inscription 19 septembre 2011 Dernière intervention - 25 avril 2011 à 14:24
3
Merci
Salut,

on tient le bon bout !
En fait, il y a 2 caractères indésirables : VbCr & VbLf
j'en ai donc renommé un en "," et supprimé l'autre
le code fonctionne avec ceci :

v_Contenu = v_Contenu.Replace(vbCr, "").Trim(vbLf)
Dim v_Tableau() As String = v_Contenu.Split(",", vbLf)

je te remercie encore pour le temps passé.

Excellente journée à toi,

Merci mr100kv 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 75 internautes ce mois-ci

Commenter la réponse de mr100kv
mr100kv 14 Messages postés samedi 16 septembre 2006Date d'inscription 19 septembre 2011 Dernière intervention - 24 avril 2011 à 20:44
0
Merci
Bonjour NHenry,

Merci pour ta réactivité.
Pour le bilan :
1 - j'ai testé le mode pas à pas qui n'a rien donné car pas d'erreur, je n'ai pas la remontée de l'information c'est tout.
2 - j'ai testé aussi avec le VbCrLf qui donne le même résultat
3 - j'ai testé avec ta procédure proposée :

Dim v_Path As String = "Storage Card\2577\ConfigInstall.ini"

Dim v_Tableau() As String = IO.File.ReadAllLines(v_Path, Encoding.Unicode)
Dim s As String
For Each s In v_Tableau
MsgBox(s)
Next

Cependant, j'ai un message " IO.File.ReadAllLines " n'est pas un membre de System.IO.File, sachant que j'ai déclaré les namespace suivants :
Imports System
Imports System.IO
Imports System.IO.File
Imports System.IO.Path
Imports System.Text

Merci pour ton soutien,
Bonne soirée
Commenter la réponse de mr100kv
NHenry 14250 Messages postés vendredi 14 mars 2003Date d'inscription 10 août 2018 Dernière intervention - 24 avril 2011 à 21:00
0
Merci
Bonjour,

Tu utilises le Compact Framework ? Si oui, je n'avais pas pris en compte cela (d'où le ReadAllLines inconnu).

Concernant le pas à pas, tu peux vérifier passage par passage pour savoir pourquoi ton égalité n'est jamais vraie. (caractère en trop ou autre)

Mon site
Commenter la réponse de NHenry
mr100kv 14 Messages postés samedi 16 septembre 2006Date d'inscription 19 septembre 2011 Dernière intervention - 24 avril 2011 à 21:26
0
Merci
Re,

Effectivement, j'utilise le compact Framework 3.5 car c'est un dev pour PDA.
Je développe sous visual studio 2008, le pas à pas, c'est le " pas à pas détaillé " ?
si tel est le cas, comment l'utiliser à bon escient, car je n'ai trouvé aucune erreur particulière ?
Dsl, et encore merci
Commenter la réponse de mr100kv
mr100kv 14 Messages postés samedi 16 septembre 2006Date d'inscription 19 septembre 2011 Dernière intervention - 24 avril 2011 à 23:20
0
Merci
j'ai effectivement effectué divers tests croisés avec des boucles et en affichant les résultats dans un msgbox, comme par exemple afficher un à un tous les éléments du tableau afin de voir comment ils étaient interprétés, de quel type ils étaient.
Ils sont tous sont bien enregistrés dans le tableau, possèdent tous le même type STRING, cependant le pb persiste.
Je pense que la piste à suivre est dépendante du split que j'ai effectué ; comme je le précisait plus haut, les seuls éléments que je n'arrive pas à cibler sont uniquement les premiers items qui font suite au retour chariot (VbCr), les autres pas de soucis.
L'objectif de mon dev est de créer un master sur carte SD auto-installable qui , lors de l'insertion de ladite carte, exécute un autorun.exe qui va consulter un fichier de type .ini dans lequel je précise le séquencement des opérations (installation du cab1, puis du cab2,....puis du fichier de paramétrage provisionning XML,...)
Je bute donc sur la toute première partie.
Voilà, merci pour ton aide et bonne nuit !
Commenter la réponse de mr100kv
mr100kv 14 Messages postés samedi 16 septembre 2006Date d'inscription 19 septembre 2011 Dernière intervention - 25 avril 2011 à 09:03
0
Merci
Salut NHenry,

Comme quoi la nuit porte conseil !
Effectivement, il s'agit bien d'un séparateur VbLf qui me fout la zone.
J'ai effectué un découpage comme suit :
MsgBox("a" & v_Tableau(v_CptA) & "a") qui m'a permis de révéler un séparateur " saut de ligne ".
Maintenant la question reste comment supprimer tous ces sauts qui occupent une place vide dans le tableau ?
Encore merci de m'avoir mis sur la piste.
Commenter la réponse de mr100kv
NHenry 14250 Messages postés vendredi 14 mars 2003Date d'inscription 10 août 2018 Dernière intervention - 25 avril 2011 à 14:44
0
Merci
Bonjour,

Si tu as résolu ton pb, merci de mettre "Réponse acceptées" sur le ou les messages qui t'ont aidés.

Mon site
Commenter la réponse de NHenry

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.