Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Problème de caractères nom conformes

1 réponse
Avatar
Jacques \(BE\)
Bonjour,

J'appelle une fonction qui contient en paramètre le répertoire de mon
fichier.
(cette fonction se trouve dans une DLL)

CRT.Chiffrement( "0000000002", "server=371", "project_X","C:\toto");

Je récupère la valeur et je la concatène avec un nom de fichier

Dim Chemin as string = var_chemin
Dim NomFichier as string = "test.log"
Chemin = Chemin & NomFichier
Je devrais voir "C:\tototestt.log"

Donc j'ajoute ("\")
Chemin = Chemin & "\" & NomFichier
Je devrais voir "C:\toto\testt.log"
et bien non je reçois "C:\toto\\testt.log"

J'ai aussi essayé Chemin = Chemin & Chr(92) & NomFichier
Même résultat je reçois "C:\toto\\testt.log"

Si dans l'appel de la fonction je mets "C:\toto\"
alors là j'ai "C:\toto\\\\testt.log"...!!

Comment résoudre cela ??

Merci de vos réponses

Jacques

1 réponse

Avatar
loïc
bonsoir,

Je pense que c'est que parce que le backslash sert à spécifier les
caractères spéciaux (style t pour tab, n pour nouvelle ligne, ...) en c,
c++ et c# ! Un backslash tout seul ne peut donc pas exister dans une chaine.
Mais si on veut en afficher un , on code '' dans la chaine.

pour les chaines codés en dur dans le code, utilise plutôt les chaines
verbatim (string toto = @"c:toto";)
et pour manipuler les noms de fichiers, utilise les classes Path, Directory,
Directoryinfo qui sont dans le Namespace System.IO.


"Jacques (BE)" a écrit :

Bonjour,

J'appelle une fonction qui contient en paramètre le répertoire de mon
fichier.
(cette fonction se trouve dans une DLL)

CRT.Chiffrement( "0000000002", "server71", "project_X","C:toto");

Je récupère la valeur et je la concatène avec un nom de fichier

Dim Chemin as string = var_chemin
Dim NomFichier as string = "test.log"
Chemin = Chemin & NomFichier
Je devrais voir "C:tototestt.log"

Donc j'ajoute ("")
Chemin = Chemin & "" & NomFichier
Je devrais voir "C:tototestt.log"
et bien non je reçois "C:tototestt.log"

J'ai aussi essayé Chemin = Chemin & Chr(92) & NomFichier
Même résultat je reçois "C:tototestt.log"

Si dans l'appel de la fonction je mets "C:toto"
alors là j'ai "C:toto\testt.log"...!!

Comment résoudre cela ??

Merci de vos réponses

Jacques