Format de "String" à modoifier pour copie de fichiers ????

Signaler
Messages postés
251
Date d'inscription
samedi 19 novembre 2005
Statut
Membre
Dernière intervention
2 novembre 2010
-
Messages postés
251
Date d'inscription
samedi 19 novembre 2005
Statut
Membre
Dernière intervention
2 novembre 2010
-
bonjour,

HELP >j'ai une exception que mon niveau ne me permet pas de comprendre  :
je fais de la copie de fichiers avec My.Computer.FileSystem

et quand je defini directement les chemins comme ceci par exemple : 
Dim src
As
String = "D:\temp"

Dim dest
As
String = "C:\temp"

cela fonctionne tres bien,

mais je veux utiliser "src" et "dest" dà partir d'un fichier INI
que je parcours avec la fonction GetPrivateProfileString

c'est le drame > j'ai l'erreur "caracteres non conformes dans le chemin d'acces"

pourtant les strings semble correctement (je les affiches par messagebox avant pour m'en assurer)
je recupere bien "c:\temp" et "\d:\temp" en tant que string dans le fichier INI
mais ya qlqchose qui passe pas avec cette methode et je ne trouve pas quoi

merci d'avance pour votre aide

_____________
 (débutant inside)

7 réponses

Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
37
Si tu récupère réellement ceci "\d:\temp" il y a effectivement un caractère non conforme pour un chemin

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
Messages postés
251
Date d'inscription
samedi 19 novembre 2005
Statut
Membre
Dernière intervention
2 novembre 2010

non il n'y a pas le 1er "" > c'est une erreur de frappe de ma part

_____________
 (débutant inside)
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
74
Salut
Mon idée serait que tu ne supprimes pas le 0 à la fin de la chaine que te renvoies GetPrivateProfileString
GetPrivateProfileString est une API et son utilisation n'est pas directe.
Elle te fournit la chaine voulue mais aussi la longueur de la chaine.
Il faut ensuite découper la chaine reçue pour ne garder que les X caractères réels.

Extrait de code exemple de "API-Guide" à propos des APIs :
(NC est le nombre de caractères renvoyés dans la variable Ret)
NC = GetPrivateProfileString(App.Title, "KeyName", "Default", Ret, 255, "C:\test.ini")
If NC <> 0 Then Ret = Left$(Ret, NC)

PS : Je pense qu'avec VB.Net, il doit y avoir des méthodes plus propre dans le Framework pour accéder aux fichiers INI.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
74
Aussi : Il faudrait que tu copies/colles ton code pour quon voit éventuellement les erreurs
Messages postés
251
Date d'inscription
samedi 19 novembre 2005
Statut
Membre
Dernière intervention
2 novembre 2010

bon ça y est ça marche. je ne comprend pas vraiment pourquoi, c'est à force de tatonner avec ce que je trouve sur le ouaib...

pour commencer j'avais recuperé le code suivant :

Private
Declare 

Function GetPrivateProfileString
Lib
"Kernel32"
Alias
"GetPrivateProfileStringA" (
ByVal lpApplicationName
As
String,
ByVal lpKeyName
As
String,
ByVal lpDefault
As
String,
ByVal lpReturnedString
As
String,
ByVal nSize
As
Short,
ByVal lpFileName
As
String)
As
Integer

je l'ai remplacé par celui ci  (difference avec lpReturnedString):

Private
Declare
Function GetPrivateProfileString
Lib
"kernel32.dll"
Alias
"GetPrivateProfileStringA" (
ByVal lpApplicationName
As
String,
ByVal lpKeyName
As
String,
ByVal lpDefault
As
String,
ByVal lpReturnedBuffer
As IntPtr,
ByVal nSize
As
Integer,
ByVal lpFileName
As
String)
As
Integer

_____________
 (débutant inside)
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
74
Ok
Deuxième différence : Lib "Kernel32" et Lib "Kernel32.dll"
Comme tu n'as jamais coller de code, difficile de trouver la réponse.
Essaye d'être plus précis la prochaine fois. Nous, on n'a pas ton code sous les yeux.
Messages postés
251
Date d'inscription
samedi 19 novembre 2005
Statut
Membre
Dernière intervention
2 novembre 2010

ok ! merci quand meme d'avoir essayé

_____________
 (débutant inside)