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

z980x Messages postés 897 Date d'inscription jeudi 6 juin 2002 Statut Membre Dernière intervention 26 juillet 2007 - 26 juin 2004 à 20:08
cs_liquide Messages postés 1016 Date d'inscription samedi 22 mars 2003 Statut Membre Dernière intervention 24 juin 2008 - 27 juin 2004 à 01:00
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

cs_liquide Messages postés 1016 Date d'inscription samedi 22 mars 2003 Statut Membre Dernière intervention 24 juin 2008
26 juin 2004 à 22:56
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
0
z980x Messages postés 897 Date d'inscription jeudi 6 juin 2002 Statut Membre Dernière intervention 26 juillet 2007 2
26 juin 2004 à 23:42
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 !
0
cs_liquide Messages postés 1016 Date d'inscription samedi 22 mars 2003 Statut Membre Dernière intervention 24 juin 2008
27 juin 2004 à 00:16
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
0
cs_liquide Messages postés 1016 Date d'inscription samedi 22 mars 2003 Statut Membre Dernière intervention 24 juin 2008
27 juin 2004 à 00:36
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
z980x Messages postés 897 Date d'inscription jeudi 6 juin 2002 Statut Membre Dernière intervention 26 juillet 2007 2
27 juin 2004 à 00:52
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...
0
z980x Messages postés 897 Date d'inscription jeudi 6 juin 2002 Statut Membre Dernière intervention 26 juillet 2007 2
27 juin 2004 à 00:54
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...
0
cs_liquide Messages postés 1016 Date d'inscription samedi 22 mars 2003 Statut Membre Dernière intervention 24 juin 2008
27 juin 2004 à 01:00
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
0
Rejoignez-nous