Découper une chaine de caractères tous les x caractères

z980x Messages postés 897 Date d'inscription jeudi 6 juin 2002 Statut Membre Dernière intervention 26 juillet 2007 - 26 juin 2004 à 22:15
z980x Messages postés 897 Date d'inscription jeudi 6 juin 2002 Statut Membre Dernière intervention 26 juillet 2007 - 27 juin 2004 à 09:51
Salut

J'ai une listbox dans laquelle j'ai des suites de lettres et de chiffres.

Je voudrais, en fonction de la ligne, découper cette chaine.
Exemple pour la premiere ligne:

@10005.........

Je voudrais que dans ma listbox j'ai:

@100
05
.........

(Bien sur si c'est dans une autre listbox c'est pas grave !)

Mais la ou ca se complique, c'est que ce n'est pas pour toutes les lignes pareil. (Pour la premiere c'est:
4/2/9, mais pour les autres ce n'est pas forcement pareil...

Enfin si vous me dites comment faire pour la premiere, je pense que je pourrais trouver pour les autres ! lol

Voila, merci d'avance, ca m'embete vraiment ce truc !

9 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:45
je ne saisis pas encore tout !!!, si ta longueur de chaine est fixe. la différence entre chaque cas de figure
-- encore que la longueur de la chaine n'est pas tres importante, mais juste savoir si l'endroit ou tu dois couper est fixe
mais je pense que tu peux utiliser le "mid", le "left", le "right"

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 à 22:54
Salut,

les chaines de caractères ne sont pas fixes les unes par rapport aux autres.

Mais en fait, tu voies, ce que j'ai c du style:

ezfzefzefzef
zefzefzfzefzefzefzef
zefzefze
zefzefzfzefzefzefzefzefzef
-----------------------
ezfzefzefzef
zefzefzfzefzefzefzef
zefzefze
zefzefzfzefzefzefzefzefzef

En fait, par groupe, les lignes sont identiques.
(La premiere du premier groupe est de la meme forme que la premiere du second groupe etc...)

Moi ce que je veux faire c'est:

Premiere ligne, on coupe à 4 caracteres du debut
ensuite a 2 caractères, ensuite à 9

Pour la deuxieme ligne, 4/2/6

etc... Enfin plusieurs sortes de découpage...

Pour ce qui est de Left, Right ca ne peut prendre que les "extremes" de la chaine.
Mid, je ne sais pas comment ca marche, donc si tu pouvais m'éclairer...

Sachant que les chaines découpées, doivent etre ajoutées dans une listbox...

Merci
0
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:59
c'est répondu plus bas --
|
|
|
\ /
:big)
bonne prog
liquide
0
cs_RDX Messages postés 117 Date d'inscription samedi 26 juin 2004 Statut Membre Dernière intervention 27 août 2005
26 juin 2004 à 23:57
Mais ca sert a quoi tout ca?
Si ca se trouve il y a peut etre un moyen moins compliqué de faire ce que tu veux, mais faudrait kon sache ce que c'est pour comprendre et t'aider au mieux!
0

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

Posez votre question
cs_RDX Messages postés 117 Date d'inscription samedi 26 juin 2004 Statut Membre Dernière intervention 27 août 2005
27 juin 2004 à 00:07
mid ca sert a extraire une partie d'une chaine de caractere,

disons que tu veuille extraire le mot forum de ca :

"123456FORUM_56"

mid("123456FORUM_56", 7, 5) = "FORUM"


parce ke la premiere lettre de "forum" est en 7eme position
et parce ke "forum" comporte 5 caracteres.

MID(Chaîne, position de depart, longueur)

voila, si avec ca t'as pas compris...
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:10
C'est dur a expliquer mais bon...

J'ai un fichier texte avec des trucs comme ca:

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

(les @ sont normalement tous alignés.)
Je veux pouvoir récupérer les infos dispos sur les lignes.
Mais comme ce n'est pas toujours la meme ligne ni la meme info, eh bien je veux decouper le texte.
Exemple pour le premier:

@100
05
000031609
@110
05
163115164900450
U
######
P
######
####
@120
05
0211631
######
####
6061

etc... Le découpage varie en fontion de la ligne...

J'espere que vous pourrez m'aider car c'est vraiment chaud...
0
cs_RDX Messages postés 117 Date d'inscription samedi 26 juin 2004 Statut Membre Dernière intervention 27 août 2005
27 juin 2004 à 00:27
je pige que dale

c'est bien de donner un exemple mais tu ne dit pas en fonction de kel criteres tu les découpes, alors si on doit les trouver tout seul ca va pas etre facile!

comment on sait de quelle longueur est la chaine a extraire, et si tu as des caracteres de separation faudrait mieux le dire...
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
27 juin 2004 à 09:39
ensuite tu lis toute ta ligne , tu teste le type de ligne (trois premiers chiffres ?)

Dim Enregistrements() as String
Dim Count as integer
Dim i as integer

While Not File.Eof
     Ligne = File.ReadLine
     Redim Preserve Enregistrements ( Count , i)
     Enregistrements ( Count , 0) = Left$ ( Ligne , 4)

     Select case left$ ( Ligne , 4)
          Case "@110"
              redim preserve Enregistrements ( Count , 4)
              Enregistrements ( Count , 1) = Mid$ ( Ligne , 4 , 2)
              Enregistrements ( Count , 2) = Mid$ ( Ligne , 6 , 5)
              Enregistrements ( Count , 3) = Mid$ ( Ligne , 11,1)
              Enregistrements ( Count , 4) = Mid$ ( Ligne , 12,10)
          Case "@120"
              découpage adapté
          Case "@100"
              etc
      End Select
      Count = Count +1
Wend
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 à 09:51
Salut !

Le code ressemble à ce que je voudrais je pense...

Mais j'ai deux problèmes:

Déja, il me dit qu'un objet est requis pour File...

Et ensuite, comment fais tu pour récupérer les infos que tu as coupé?
(Dans une listbox par exemple)

Merci
0
Rejoignez-nous