cs_Miss1
Messages postés221Date d'inscriptionvendredi 21 octobre 2005StatutMembreDernière intervention22 décembre 2010
-
14 mai 2006 à 17:08
cs_Miss1
Messages postés221Date d'inscriptionvendredi 21 octobre 2005StatutMembreDernière intervention22 décembre 2010
-
14 mai 2006 à 19:47
salut j'avais déja poster un théme su ce sujet mais je n'aivais pas encore trouver de solution. Maintenant je sais comment remplacer(vb6)ur cela j'ai appris qu'il y avais la fonction replace le pb c que je ne sais pas l'utiliser. Donc je voudrais savoir si il y a un autre moyens. Je dois en réaliter renomer les certaines données.
pour cela je vais vous montrais un ex de ce que j'ai et de se que je veux:
ce que j'ai
5; A; toto;mimi;1569,0,2
5; B toto;mimi;1569,0;2
4;A;bernard;duranfd;14789;0;1
ce que je veux
5; A; toto;mimi;1569,0,2
5; B toto;mimi;1569,45;2
4;A;bernard;duranfd;14789;0;1
le pb c'est que a part avec un replace je ne sais pas comment faire
mais cela doit se faire de facon automatique pour ttout ligne se constitaunt de cette facon
5; A; toto;mimi;1569,0,2
5; B toto;mimi;1569,0;2
. merci de bien vouloire m'aider de nouveau.
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 14 mai 2006 à 18:18
Re
Ma boule de cristal me suggère une anomalie dans la 2eme ligne : manquerait bien un ; après le B
Donc, je résume :
Si 2eme donnée sur la ligne est B, alors remplacer 0 par 45
Est-ce que tu as déjà séparé chaque élément de ta ligne ? (isolé 5 puis B puis le prénom ...) ?
Je suppose que oui, pour pouvoir t'en servir ensuite ...
Toujours des suppositions ... pas très bavard sur tes explications
Méthode simple :
A chaque ligne que tu vas traiter, il faut convertir ta ligne en ensemble de données :
Dim Tableau() As String
Tableau = Split(laLigneLue, ";")
Comme ça, tu trouveras "5" dans Tableau(0), "B" dans Tableau(1), ...
Revenons za nos moutons : "Si 2eme donnée sur la ligne est B, alors remplacer 0 par 45"
Facile maintenant : La 2eme donnée est l'index 1 (car tableau commence à 0), et le chiffre à modifier est dans 5If Tableau(1) "N" And Tableau(5) "0" Then Tableau(5) = "45"
Si tu te fiches d'avoir les éléments dans un tableau, tu peux recréer ta chaine initiale corrigée avec Join. Je te laisse le soin de trouver comment cette instruction fonctionne, faut bien que tu bosses un peu ...
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
Champion du monde de boule de cristal - 2005 Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 14 mai 2006 à 17:23
Salut
Replace porte bien son nom. Il remplace tout
Donc, même si tu arrivais à maitriser cette monstrueuse instruction, il remplacerait aussi bine le 0 de la 1er eligne que celui de la 2eme ligne.
Ton problème est donc de reconnaitre la seconde ligne et de lui appliquer le mode Replace.
Quels sont tes paramètres de sélection ? Pourquoi cette ligne et pas une autre ?
Il faut que ton programme le sache, sinon, aucune magie n'est valable
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
Champion du monde de boule de cristal - 2005 Le savoir est la seule matière qui s'accro
cs_Miss1
Messages postés221Date d'inscriptionvendredi 21 octobre 2005StatutMembreDernière intervention22 décembre 2010 14 mai 2006 à 17:43
pour la ligne 2 je me base en réaliter sur la lettre B cela signifie que la personne existe deux fois mais que le paramettre B a cahnger si c le cas le 0 devient dc 45. Pour pouvoir savoir si cela est exacte je fais un test qui demande si non prenon num sont identique si c non ""ok" ligne suivante si c oui je vérifie dc la lettre si c un B a la place du a je met 45 a la place de 0.
ps: pour mes tests j'ai fais cette facon if (instr nom1,nom2)............