Ce sujet est résolu.
1 | |||||||
Auteur | Messages | ||||||
---|---|---|---|---|---|---|---|
Foromus | #1 Posté le 21/6/2023 à 18:00:43 | ||||||
Bonjour à tous, Soit un fichier texte, génialement appelé "Monfichier.txt" Normalement, il est prévu de le remplir avec des éléments au nom tout aussi sophistiqué, style "eleman1.txt", etc. Là, je sais faire, avec For Append. Côté utilisation, j'ai besoin de tester si un élément quelconque du fichier correspond à la variable String "ma_reference " J'ai pensé que la formule : Dim FileNam As String For Each FileName In Application.Path & "..../Repertoire/Monfichier.txt If ma_reference = elemanN.txt Then Print "Trouvé" Next Le For Each est incomplet ou erroné, et c'est là que je bute. L'erreur me signale que "Monfichier.txt" n'est pas un répertoire ou autre chose quand je change de syntaxe. Je comprends d'autant moins que j'ai déjà utilisé For Each un certain nombre de fois, sans soucis. Mais ça ne devait pas être dans les mêmes conditions et je ne retrouve pas de cas similaire dans mes projets, mais je ne les ai pas tous parcourus ! Après,il est possible que le logiciel considère "elemanN.txt" comme un fichier (et c'est le cas !), mais dans ce cas précis ici, ce n'est simplement qu'une chaîne de caractères : il faudrait peut-être alors, utiliser les guillemets quelque part... Ou faire autrement... Merci de votre aide ! | |||||||
spheris | #2 Posté le 22/6/2023 à 04:50:40 | ||||||
Foromus, Essayons de comprendre cette ligne :
Pour chaque 'NOM DE FICHIER' dans le répertoire "...../repertoire/unfichiertexte" Tu cherches un nom de fichier dans un fichier texte? c'est bien cela? Si oui : A) En supposant que chaque nom dans ton fichier soit séparé par des retours à la ligne :
Ou alors , le problème serait le suivant à savoir: Tu cherches un nom de fichier dans un répertoire qui a un nom bien précis. B) Dans cette liste de fichiers à parcourir. Il suffit d'écrire :
A bientôt. ;) | |||||||
vuott | #3 Posté le 22/6/2023 à 12:24:21 | ||||||
Ne cedere ineluctabili possimus | En effet, comme l'a montré "spheris", en utilisant la boucle "FOR......EACH", le deuxième membre (dans lequel on recherche une référence) doit être un array, sinon vous obtiendrez une erreur. « Vita non suavis esse potest, nec Mors amara. » | ||||||
Foromus | #4 Posté le 24/6/2023 à 12:20:38 | ||||||
Bonjour à tous, Merci pour les renseignements ! J'ai utilisé la première partie du code de spheris et ai solutionné mon problème. J'ai des lacunes : Je ne vois pas trop la différence (hormis la syntaxe...), entre String et NewString[]... Quoique les [] font référence à un tableau il me semble. Pas + que je ne maîtrise la commande Split (pourtant, j'ai vu ça quelque part, probablement utilisée...). Voilà un truc résolu, je refais une autre demande. Merci à vous ! | |||||||
spheris | #5 Posté le 26/6/2023 à 20:01:24 | ||||||
Pour simplifier, String est une variable texte unique qui contient une chaine de caractère. String[] est un tableau de plusieurs String Important de bien mettre le New devant String[] tout simplement car tu crées un nouveau tableau. Un petit exemple :
Ainsi
te renverra dans la console: TOTO
te renverra dans la console: tata ;) | |||||||
1 |