Ajouter un caractère a un endroit précis...

Signaler
Messages postés
897
Date d'inscription
jeudi 6 juin 2002
Statut
Membre
Dernière intervention
26 juillet 2007
-
Messages postés
1016
Date d'inscription
samedi 22 mars 2003
Statut
Membre
Dernière intervention
24 juin 2008
-
Re-Salut à tout le monde !
lol

Bon, voici mon problème.

J'ai dans une listbox des caractères.

La liste se présente tjrs comme ca:

efzefzefzefzef
zefzefzefzefze
zefzefzefzefzef
zefzefzefzefezf
zefzefzefzefezf
zefzefzefzefezf

(Les caractères ne sont pas du tout ceux la, mais c'est juste pour donner un exemple)

Je veux que:
a la premiere ligne, on fasse:
efze/fz/efzefzef

C'est a dire, placer un / apres le 4eme caractere, placer un / apres le 6eme (ou 7eme avec le /)

La place des / variant selon les lignes.
(Par exemple pour la deuxieme ligne:
zefz/ef/zefzefze/ etc....)

Merci a tous ceux qui pourront m'aider...
Si le résultat pouvait etre dans une autre listbox, ca serait cool.

MERCI A TOUS !

7 réponses

Messages postés
1016
Date d'inscription
samedi 22 mars 2003
Statut
Membre
Dernière intervention
24 juin 2008

tu peux parcourir 1 a 1 les caracteres, du fait que l'emplacement n'est pas constant.

for i = 1 to len(dutexte)
MonTexte = MonTexte & mid(dutexte,i,1)
select case i 'ou utiliser le if then
case 4,6,7
MonTexte = MonTexte & "/"
end select
next i

dutexte = MonTexte

je crois que ca répond a un post plus récent aussi

bonne prog
liquide
Messages postés
897
Date d'inscription
jeudi 6 juin 2002
Statut
Membre
Dernière intervention
26 juillet 2007
2
C'est cool, je te remercie, mais j'ai encore un problème que je n'arrive pas à résoudre...

Comme je l'ai dit, les lignes ne sont pas toutes identiques.
Je les différencie grace à une entete. (Ici c'est @100)

Voici le code que j'ai mis:

For a = 0 To List2.ListCount - 1 'On va vérifier la liste
DEBUT = Left(List2.List(a), 4) 'On regarde le début de la liste
If DEBUT = "@100" Then 'Si le début est @100
For i = 1 To Len(List2.List(a))
Text5 = Text5 & Mid(List2.List(a), i, 1)
Select Case i 'ou utiliser le if then
Case 4, 6, 16
'If i = 4 Or 6 Or 16 Then
Text5 = Text5 & ""
List3.AddItem Text5
Text5 = ""
DEBUT = ""
End Select
Next i
End If
Next a

Je voulais avec ca, obtenir dans une listbox:

@100
05 (C'est la suite de la chaine)
######### (Suite de 9 chiffres)
@100
05 (C'est la suite de la chaine)
######### (Suite de 9 chiffres)
@100
05 (C'est la suite de la chaine)
######### (Suite de 9 chiffres)

Mais je n'obtiens pas, j'ai ca:

@100
05
#########@100
05
#########@100
05
#########@100

C'est donc pas ce que je veux...

Pouvez vous m'aider? C'est vachement important !

Merci !
Messages postés
1016
Date d'inscription
samedi 22 mars 2003
Statut
Membre
Dernière intervention
24 juin 2008

For a = 0 To List2.ListCount - 1
If Mid(rr, 1, 4) = "@100" Then
List3.AddItem Mid(rr, 1, 4)
List3.AddItem Mid(rr, 5, 2)
List3.AddItem Mid(rr, Len(Var2) + Len(Var1) + 1, Len(rr) - Len(Var2) - Len(Var1) + 1)
End If
next a

je ne vois pas pk il y a un select case puis que tu ne met rien dans : Text5 = Text5 & ""
ca ne servait qu'au "/"

si l'endroit est précis dans ton texte, plus besoin de parcourir 1 a 1 , tu connais les endroits

bonne prog
liquide
Messages postés
1016
Date d'inscription
samedi 22 mars 2003
Statut
Membre
Dernière intervention
24 juin 2008

merde, je rectifie car j'ai remplacer du code au dernier moment a l'arrache
dsl

If Mid(rr, 1, 4) = "@100" Then
    Var1 = Mid(rr, 1, 4)
    Var2 = Mid(rr, 5, 2)
    Var3 = Mid(rr, Len(Var2) + Len(Var1) + 1, Len(rr) - Len(Var2) - Len(Var1) + 1)
    List1.AddItem Var1
    List1.AddItem Var2
    List1.AddItem Var3
End If


liquide
Messages postés
897
Date d'inscription
jeudi 6 juin 2002
Statut
Membre
Dernière intervention
26 juillet 2007
2
Bon, alors en fait je vais faire autre chose...

J'ai toujours ca dans mon fichier texte:

@10005000031609
@11005163115164900450U###### P###### ####
@120050211631###### #### 6061
@1609904176603190003429
@210990137600000270902270902000000000020000000200010000002000PC 0010010000100002000 000000000000000000000000000000
@99005000031609 0000000200000002000P
-------------------------------------------
@10005000043652
@11005165109935097939U## ###### P## ###### #######
@120051210651## ###### ####### 6021
@1609904176603190003432
@210990137600000260503260503000000000020000000200010000002000PC 0010010000100002000 000000000000000000000000000000
@99005000043652 0000000200000002000P
-------------------------------------------

Sachant que ces parties, j'en ai plus que deux, mais combien, je ne sais pas, ca varie tout le temps...
Aussi, il y a un autre truc qui change, c'est le @210
Il peut y avoir plusieurs @210 donc il faut pouvoir gérer ca...

Ce que je veux faire:

Le prog cherche le @100, et prend sur la ligne les infos qui l'interesse.
Ensuite, il fait la meme chose jusqu'aux autres, jusqu'a @210

A @210, le prog dit:
Je regarde si ya un autre @210, dans ce cas je fais ca.
Sinon, je fais si. (Et il recommence avec le @100)

C'est dur à comprendre mais bon... En plus la je commence sérieusement à fatiguer, donc je sais pas si c'est bien clair...
Messages postés
897
Date d'inscription
jeudi 6 juin 2002
Statut
Membre
Dernière intervention
26 juillet 2007
2
J'ai remarqué un truc, ya aussi @990 après les @210, ce qui pourrait faciliter la tache, puisque cela ne dépendant pas du nb de @210...
Messages postés
1016
Date d'inscription
samedi 22 mars 2003
Statut
Membre
Dernière intervention
24 juin 2008

olalalla, si tu as msn, viens, poele_a_frire@hotmail.com

si tu pars a la base de ton fichier,
- fait un split du "@"
- ensuite, tu recupere chaque split
- cherche dans le split les 3 er caracteres
- puis tu n'as plus qu'a analyser les restants de ta chaine qui sont dans le split

pour l'analyse, elle reste a connaitre, ou et comment tu traite tes données.

bonne prog, y'a toujours msn si tu veux
liquide