Fonction split
Résolu
lowenbrau
-
lowenbrau -
lowenbrau -
Bonsoir,
Je suis sous VB 2008 ,
j'ai effectuer un streamreader permettant de lire un fichier texte
j'ai fais une conneciton entre un bouton et le chemin d'acces du fichier texte.
ce que je voudrais faire c'est:
par ex on trouve des ligne de ce genre dans le code:
!A1!T2!ABC AZERTY!AQWZSX!10.000!15.000!0.000!NO!MULTIMOD!
!A4!9999!ABC AZERTY!AQWSX!20.000!12.010!90.000!NO!SMD!
Ensuite j'essaye de faire un select à l'aide de la fonction split pour récuperer les lignes ayant un !SMD! à la fin
et seulement celle-la !! les multimod ne m'interressent pas
est-ce correct ?
y a t il une autre fonctoin disponible ?
Dans quels cas comment faire svp
j'ai déjà chercher depuis pas mal de temps et pas c'est pas très clair.
Merci à vous
Bonne soirée
Je suis sous VB 2008 ,
j'ai effectuer un streamreader permettant de lire un fichier texte
j'ai fais une conneciton entre un bouton et le chemin d'acces du fichier texte.
ce que je voudrais faire c'est:
par ex on trouve des ligne de ce genre dans le code:
!A1!T2!ABC AZERTY!AQWZSX!10.000!15.000!0.000!NO!MULTIMOD!
!A4!9999!ABC AZERTY!AQWSX!20.000!12.010!90.000!NO!SMD!
Ensuite j'essaye de faire un select à l'aide de la fonction split pour récuperer les lignes ayant un !SMD! à la fin
et seulement celle-la !! les multimod ne m'interressent pas
est-ce correct ?
y a t il une autre fonctoin disponible ?
Dans quels cas comment faire svp
j'ai déjà chercher depuis pas mal de temps et pas c'est pas très clair.
Merci à vous
Bonne soirée
A voir également:
- Fonction split
- Fonction si et - Guide
- Split cam - Télécharger - Messagerie
- Fonction miroir - Guide
- Fonction moyenne excel - Guide
- Split 4g - Télécharger - Gestion de fichiers
3 réponses
Bonjour
Split n'est pas dans toute les versions Excel, j'ai 2002 c'est Ok, mais 97 pas bon et 2000 je ne sais pas
tu cherche les 5 derniers caractères
si tu fais split(maligne;"!") tu auras tes 2 dernier caracteres sur les 3 denieres position du tableau que split te renvoie
!
SMD
!
alors qu'ile est plus simple d'utiliser pour le controle : right
if right(maligne,5) = "!SMD!" then
Split n'est pas dans toute les versions Excel, j'ai 2002 c'est Ok, mais 97 pas bon et 2000 je ne sais pas
tu cherche les 5 derniers caractères
si tu fais split(maligne;"!") tu auras tes 2 dernier caracteres sur les 3 denieres position du tableau que split te renvoie
!
SMD
!
alors qu'ile est plus simple d'utiliser pour le controle : right
if right(maligne,5) = "!SMD!" then
re:
la commande : est devient assez bizarre, car dans le cas ou !SMD! n'est pas present, tu risques de te retrouver avec une erreur
le seul moyen est de tester la position 0 avec la ligne elle meme, si elles sont egales, SMD absent, sinon SMD present
voici le code, j'ai testé et ca marche
autre fonction avec instr (ce qui permet ou qu'il soit dans la liste il est trouvé)
msgbox cherche1(maligne, "!SMD!")
msgbox cherche2(maligne, "!SMD!")
la commande : est devient assez bizarre, car dans le cas ou !SMD! n'est pas present, tu risques de te retrouver avec une erreur
le seul moyen est de tester la position 0 avec la ligne elle meme, si elles sont egales, SMD absent, sinon SMD present
voici le code, j'ai testé et ca marche
Function cherche1(ligne as string, caractere as string) as boolean if split(ligne,caractere)(0) = ligne then cherche1 = false else cherche1 = true end function
autre fonction avec instr (ce qui permet ou qu'il soit dans la liste il est trouvé)
Function chercher2( ligne as string, caractere as string) as boolean if instr(ligne,caractere) = 0 then cherche2 = false else cherche2 = true end if
msgbox cherche1(maligne, "!SMD!")
msgbox cherche2(maligne, "!SMD!")
re:
je ne sais pas trop, tu as essayé sur une ligne qui ne contient pas !SMD! ?????
Personnellement je pense que ca ne devrait pas marcher, si tu n'as pas !SMD! Dans ta ligne, split renvoie une seule valeur : un tablo(0 to 0)
donc : sur une ligne ou !SMD! n'est pas present
SPlit(ligne,"!SMD!")(9) renverra Erreur d'execution "9": L'indice n'apartient pas à la selection
C'est cela que ca provoque sur mon Excel
je ne sais pas trop, tu as essayé sur une ligne qui ne contient pas !SMD! ?????
Personnellement je pense que ca ne devrait pas marcher, si tu n'as pas !SMD! Dans ta ligne, split renvoie une seule valeur : un tablo(0 to 0)
donc : sur une ligne ou !SMD! n'est pas present
SPlit(ligne,"!SMD!")(9) renverra Erreur d'execution "9": L'indice n'apartient pas à la selection
C'est cela que ca provoque sur mon Excel
salut
La je pense que tu n'a pas compris ce que je recherchais à faire avec mon petit programme.
En effet je me sers de la fonction split pour pouvoir faire une sorte de select dans une sous-chaîne
Je veux pour le moment récuperer les lignes contenant !SMD! à la 9ème position de la ligne, ce qui marche
L'erreur que tu as écrite ne s'affiche pas, pour le moment tout fonctionne comme je le veux.
Dans mon fichier, il y a même des cas où il n'y a pas 9 champs dans une ligne et pourtant ca marche.
Maintenant il va falloir que je cherche comment sélectionner des données dans le champ déjà sélectionne ...
a plus
La je pense que tu n'a pas compris ce que je recherchais à faire avec mon petit programme.
En effet je me sers de la fonction split pour pouvoir faire une sorte de select dans une sous-chaîne
Je veux pour le moment récuperer les lignes contenant !SMD! à la 9ème position de la ligne, ce qui marche
L'erreur que tu as écrite ne s'affiche pas, pour le moment tout fonctionne comme je le veux.
Dans mon fichier, il y a même des cas où il n'y a pas 9 champs dans une ligne et pourtant ca marche.
Maintenant il va falloir que je cherche comment sélectionner des données dans le champ déjà sélectionne ...
a plus
Merci de répondre d'une part
d'autre part en utilisant ma fonction split je disais
split(maligne;"!SMD!") est cela ne correpondait pas du tout avec le résultat attendu.
mais là je vais voir la fonction right peut etre que cela marchera. merci je vous tiens au courant
Bonne journée