Split

Résolu
trucss Messages postés 189 Date d'inscription jeudi 17 février 2022 Statut Membre Dernière intervention 23 janvier 2024 - 2 mars 2022 à 16:02
Whismeril Messages postés 19024 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 18 avril 2024 - 2 mars 2022 à 23:25
Bonjour,
J'ai une ligne
Chemin du répertoire des fichiers :C:\test

Je voudrais récupérer que le c:\test
J'ai fait
recupinfo = ligne.Split(" :")(1)

ça récupère du je ne comprend pas

9 réponses

Whismeril Messages postés 19024 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 18 avril 2024 656
2 mars 2022 à 23:23
Quand je teste recupinfo ça me recupere "du"


Ha voilà qui est surprenant, car voici ce que ça donne en framework 4.7 (que tu as cité dans un post précédent, pour info idem dans tous les sous versions de la 4, de la 3 et de la 2).


Une erreur de compilation.
Et si j'en crois l'aide en ligne, en framework 6, c'est pareil, ainsi qu'en 5 et dans toutes les .Net Core, donc c'est pas un problème de framework.

Alors comment cela peut il être possible?

Mais bien sûr, tu n'as (une fois plus) pas lu ce qu'on t'as conseillé de lire....
Et bien quelque part dans tout ce qu'on t'as conseillé de lire, il est écrit d'activer Option Strict.

Et tu sais pourquoi? Ça empêche Visual Studio de se débrouiller quand le codeur écrit "n'importe quoi".

Alors souvent Visual Studio force un peu les choses et ça marche.
Mais pas toujours.
En plus quand il trouve la parade, le codeur se retrouve conforté dans son n'importe quoi et continue.

Donc parmi les notions, que tu aurais pu apprendre ces 3 dernières semaines, il y a la notion de surcharge.
Je dis bien notions car si ce n'est pas la base de la base, c'est une ou deux marches au-dessus, c'est avant l'objet, qui est pourtant l'essence de .Net.
Donc un minima à connaitre pour coder.

Si tu avais prêté attention à cette notion, tu te serais renseigné sur les surcharges de split et tu aurais pu te rendre compte qu'il n'est pas possible de lui fournir une string comme délimiteur. Donc on en revient à la même chose depuis 3 semaines. les 2 ou 3 jours que tu croyais inutile de "perdre" à lire le cours de Tahé, tu les a déjà largement perdus à bloquer sur des trucs bêtes comme ça.

Cependant, ce qui aurait pu te sauver c'est d'activer Option Strict et là Visual Studio t'aurait dit (comme chez moi),
ben non t'a pas le droit.

Sauf que tu ne l'as pas fait, alors Visual studio a décidé qu'en fait tu voulais découper à chaque espace (sauf que non, mais ça il ne le sait pas).

Et voilà, tu t'es puni toi même de ne pas avoir fait d'efforts....

Et avec tout ça, si tu t'étais renseigné sur les surcharges, tu aurais vu qu'il y en a 1 en framework 4.8 (et toutes celles d'avant) et 2 pour les autres que tu pourrais utiliser facilement.
Tellement facilement, qu'avec elle, à mon boulot, j'ai ajouté la surcharge avec une string dans une dll que j'inclue dans tous mes projets.


1
Whismeril Messages postés 19024 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 18 avril 2024 656
2 mars 2022 à 18:04
Bonjour
ça récupère du je ne comprend pas

moi c'est cette phrase que je ne comprends pas.
0
trucss Messages postés 189 Date d'inscription jeudi 17 février 2022 Statut Membre Dernière intervention 23 janvier 2024 1
2 mars 2022 à 21:47
Quand je teste recupinfo ça me recupere "du"
0
dysorthographie Messages postés 92 Date d'inscription jeudi 27 janvier 2022 Statut Membre Dernière intervention 3 avril 2024 5
2 mars 2022 à 18:56
Bonjour,
test ça!
Function MyReperoire(ByVal txt As String) As String
        Dim pose As Long = txt.IndexOf(":")
        txt = txt.Substring(pose + 1, txt.Length - pose - 1)
        pose = txt.IndexOf(":")
        txt = $"{txt.Substring(0, pose)}©\{txt.Substring(pose + 1, txt.Length - pose - 1)}"
        txt = txt.Replace(":", "").Replace("\\", "\").Replace("©", ":\").Replace("\\", "\")
        If txt.Substring(0, 1) = "\" Then txt = "\" + txt
        Return txt
    End Function
    Sub test()
        Dim d As String = "Chemin du fichier légumes :C:test\:\test1.TXT"
        MessageBox.Show(MyReperoire(d))
        MessageBox.Show(MyReperoire("Chemin du répertoire des fichiers :C:\test"))
    End Sub
0
Whismeril Messages postés 19024 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 18 avril 2024 656
2 mars 2022 à 19:00
Comme tu as supprimé ton premier message, et avec le commentaire que j’y avais fait, je le remets là

Heu oui, mais c’est beaucoup plus simple avec split….

Si trucss avait pris la peine de lire le cours de Tahé que je lui ai conseillé plusieurs fois depuis 3 semaines (soit largement le temps de le lire 5 fois…) ou même simplement l’aide en ligne, il y serait arrivé de lui-même je pense…
1
dysorthographie Messages postés 92 Date d'inscription jeudi 27 janvier 2022 Statut Membre Dernière intervention 3 avril 2024 5
2 mars 2022 à 19:10
Le Split ne m'a pas paru pertinent car il peut avoir plusieurs ":" je préfère gérer les deux premiers et remplacer les autres !

Voir l'exemple que j'ai trouvé sur son poste de DVP.com
0
Whismeril Messages postés 19024 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 18 avril 2024 656
2 mars 2022 à 19:20
Si c'est pertinent, car il y a un espace avant le : qui pourrait servir de délimiteur, et trucss l'a vu.

Mais je le répète, il faudrait lire le cours ou l'aide en ligne pour voir l'erreur dans la ligne de code.
0
Whismeril Messages postés 19024 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 18 avril 2024 656 > Whismeril Messages postés 19024 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 18 avril 2024
2 mars 2022 à 19:59
Et puis cette méthode part du principe qu'il y aura des : au milieu du chemin et ça n'est pas dans la demande initiale.
0

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

Posez votre question
dysorthographie Messages postés 92 Date d'inscription jeudi 27 janvier 2022 Statut Membre Dernière intervention 3 avril 2024 5
2 mars 2022 à 20:01
J'ai enticipé car elle figure dans DVP.com
0
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
Modifié le 2 mars 2022 à 22:55
En .NET, le split split sur un des caractères de la chaine, ce n'est pas la chaine complète, mais ses caractères, donc dans ton cas, ça coupe sur " " et ":".
Utiliser IndexOf et SubString serait plus utile, je pense.

0
trucss Messages postés 189 Date d'inscription jeudi 17 février 2022 Statut Membre Dernière intervention 23 janvier 2024 1
Modifié le 2 mars 2022 à 22:14
Je vais tester ça pour voir
recupinfo(1) = split ("Chemin du répertoire des fichiers :C:\test"," :")

Je devrais recuperer C:\test
0
Whismeril Messages postés 19024 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 18 avril 2024 656
2 mars 2022 à 22:47
Tu recommences à mélanger vb6 et .Net.
Quand tu voudras vraiment progresser, aura t on encore envie de t'aider?
0
trucss Messages postés 189 Date d'inscription jeudi 17 février 2022 Statut Membre Dernière intervention 23 janvier 2024 1
Modifié le 2 mars 2022 à 23:04
tu as un lien pour le cours de Tahé
0
Whismeril Messages postés 19024 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 18 avril 2024 656
2 mars 2022 à 23:25
oui, je te l'ai donné y'a 3 semaines
0
trucss Messages postés 189 Date d'inscription jeudi 17 février 2022 Statut Membre Dernière intervention 23 janvier 2024 1
2 mars 2022 à 23:18
Ah j'ai trouvé merci

Dim str() As String = ligne.Split(" :")
MsgBox(str(1))


Merci a tous
0
dysorthographie Messages postés 92 Date d'inscription jeudi 27 janvier 2022 Statut Membre Dernière intervention 3 avril 2024 5
Modifié le 2 mars 2022 à 23:29
bonsoir

'En VB6 ou VBA!
Dim str() As String 
 str() = Split(ligne," :")
MsgBox(str(1))

,
Dim str() As String = ligne.Split(" :")
MessageBox.Show(str(1)) 'Tu fais du VBA ou du VB.net?
1
Rejoignez-nous