Communauté
Inventor - Français
Bienvenue sur les forums Inventor d’Autodesk. Partagez vos connaissances, posez des questions, collaborez sur des idées, et explorez les sujets Inventor populaires.
annuler
Affichage des résultats de 
Afficher  uniquement  | Rechercher plutôt 
Vouliez-vous dire : 

Inventor - Spliter le "nom de fichier" dans 2 propriétés personnalisées

7 RÉPONSES 7
RÉSOLU
Répondre
Message 1 sur 8
Tripalere
235 Visites, 7 Réponses

Inventor - Spliter le "nom de fichier" dans 2 propriétés personnalisées

Bonjour à tous,

Je cherche à faire 2 propriétés personnalisées avec 2 parties de mon "nom de fichier". J'ai essayé en regardant le post suivant :

https://forums.autodesk.com/t5/inventor-programming-ilogic/ilogic-split-a-string/td-p/8777436

Mais je n'arrive pas au bon résultat, je ne comprends pas les fonctions.

Je désire extraire les premiers n caractères jusqu'au premier "." dans une propriété, puis tout le reste dans une autre.

Le format se présente ainsi:

XXXX.YYYY.YY.YY.YY.YY

et j'aimerais arriver à:

prop1: XXXX

prop2: YYYY.YY.YY.YY.YY

sachant que le nombre de caractères avant et après le premiers "." est variable.

Merci par avance pour votre aide.

Boris

7 RÉPONSES 7
Message 2 sur 8
vpeuvion
en réponse à: Tripalere

Bonjour,

Voici un exemple qui peut t'aider : 

Dim MonNom As String = "XXXX.YYYY.YY.YY.YY.YY"
Dim Propriete1 As String = MonNom.Split(".")(0) ' Je conserve le premier élément avant le .
Dim Propriete2 As String = MonNom.Replace(Propriete1 & ".","") ' Je remplace le premier élément + le premier . par du vide
MessageBox.Show(Propriete1)
Messagebox.show(Propriete2)

Vincent. 

Message 3 sur 8
ThomasB44
en réponse à: Tripalere

Salut @Tripalere 

Tu as besoin de manipuler une chaîne de caractères (String)

Les fonctions communes sont les suivantes, et ressemblent beaucoup à celles que tu peux trouver dans les formules Excel :

Len(String) = longueur de la chaîne de caractère

Left(String, Integer) = extrait un nombre de caractère depuis la gauche

Right(String, Integer) = extrait un nombre de caractère depuis la droite

InStr(String, String) = donne la position d'une chaîne de caractères dans une autre chaîne de caractères, en recherchant depuis la gauche

InStrRev(String, String) = idem, mais depuis la droite

Dim MyText As String
MyText = "XXXX.YYYY.YY.YY.YY.YY"

MessageBox.Show("La longueur de mon texte est : " & Len(MyText), "iLogic")
MessageBox.Show("Mes 6 premiers caractères sont : " & Left(MyText,6), "iLogic")
MessageBox.Show("Mes 6 derniers caractères sont : " & Right(MyText,6), "iLogic")
MessageBox.Show("La position du premier . est : " & InStr(MyText, "."), "iLogic")
MessageBox.Show("La position du dernier . est : " & InStrRev(MyText, "."), "iLogic")

A l'aide de ces fonctions, on peut résoudre la plupart des besoins en manipulations de chaînes textuelles.

Pour ta propriété 1, il suffit d'extraire par la gauche jusqu'au 1er "." (-1)

Pour ta propriété 2, il suffit d'extraire par la droite de la longueur de la chaîne textuelle moins la position du 1er "."

 

La fonction Split peut fonctionner aussi, mais est un peu plus complexe à manipuler :

Dim MyWords As String()
MyWords = MyText.Split(".")
MessageBox.Show("Ma chaîne textuelle est divisée en " & UBound(MyWords) & " mots", "iLogic")
Dim i As Integer
For i = 0 To UBound(MyWords)
	MessageBox.Show("La chaîne textuelle " & i & " est : " & MyWords(i), "iLogic")
Next

 


Thomas
Mechanical Designer / Inventor Professionnal 2023
Inventor Professional EESignature

Message 4 sur 8
ThomasB44
en réponse à: vpeuvion

@vpeuvion 

Pour ce besoin particulier, et avec une fonction Split, on peut ajouter l'argument de compteur, à condition que le séparateur soit de Type Char

Split(Char[], Int32, StringSplitOptions)

Ce qui rend l'opération plutôt simple :

Dim MyText As String = "XXXX.YYYY.YY.YY.YY.YY"
Dim MyWords As String() = MyText.Split({"."c}, 2)

MessageBox.Show("Avant le premier ""."" il y a : " & MyWords(0) _
& vbNewLine & "Après le premier ""."" il y a : " & MyWords(1), "iLogic")

 😉


Thomas
Mechanical Designer / Inventor Professionnal 2023
Inventor Professional EESignature

Message 5 sur 8
vpeuvion
en réponse à: ThomasB44

Salut @ThomasB44,

Oui bien vu, je ne connaissais pas. c'est encore plus simple.👍

Vincent.

Message 6 sur 8
patrick.emin
en réponse à: Tripalere

Bonjour @Tripalere 

Si une des réponses résout votre problème ou vous a permis de mieux le comprendre, voulez vous avoir l'amabilité de cliquer sur le bouton  APPROUVER LA SOLUTION  en bas de la réponse qui apporte une solution?
Cela facilitera la navigation de nos utilisateurs qui pourront directement atteindre la solution

Sachez qui si vous avez marqué une réponse comme solution par erreur, vous pouvez annuler ce marquage en cliquant sur le menu du fil (les trois points verticaux) et choisir "pas la solution"
Merci de ne pas accepter comme solution le message que vous êtes en train de lire.


Patrick Emin animateur de la communauté francophone


Vous avez trouvé un message utile? Alors donnez un "J'aime" à ce message!
Votre question a eu une réponse satisfaisante? Voulez vous avoir l'amabilité de cliquer sur le bouton
 APPROUVER LA SOLUTION  en bas de la réponse qui apporte une solution?
Signez notre Livre d'Or
Message 7 sur 8
Tripalere
en réponse à: Tripalere

Merci à vous! Vous êtes des Kings.

Plus qu'a intégrer ces quelques lignes...

A+

Boris

Message 8 sur 8
ThomasB44
en réponse à: Tripalere

👍

Rappelle toi que les fonctions que j'indique dans mon premier message seront plus polyvalentes, et plus facile à utiliser. Contrairement à la fonction Split, avec laquelle tu dois manipuler un tableau contenant du texte.

 

Dim MyText, MyProp1, MyProp2 As String
MyText = "XXXX.YYYY.YY.YY.YY.YY"

'Extrait depuis la gauche jusqu'au 1er "." - 1 caractère
MyProp1 = Left(MyText, InStr(MyText, ".") - 1)
'Extrait depuis la droite jusqu'au 1er "."
MyProp2 = Right(MyText, Len(MyText) - InStr(MyText, "."))

MessageBox.Show("MyProp1 : " & MyProp1 _
& vbNewLine & "MyProp2 : " & MyProp2)

 


Thomas
Mechanical Designer / Inventor Professionnal 2023
Inventor Professional EESignature

Vous n'avez pas trouvé ce que vous recherchiez ? Posez une question à la communauté ou partagez vos connaissances.

Publier dans les forums  

Autodesk Design & Make Report