Bonjour à tous,
j'ai un petit soucis avec CopyFile dans Delphi.
Je m'explique, en fait je veux faire un truc tout bête, j'ai une liste déroulante que je génère en automatique avec le contenu d'un dossier, ainsi elle se remplie avec tous les fichires qu'il y a à l'intérieur de ce dossier.
Mon but est de selectionner ce fichier, et d'appuyer sur un bouton pour qu'il soit copier sur mon bureau.
En gros j'envoi les chemins sources et destinations dans deux variables, ainsi que le nom du fichier
si je fais CopyFile(Pchar(la_source + le_fichier_selec),Pchar(la_destination + le_fichier_selec),False);
ça ne fonctionne pas, or si je fais
CopyFile(Pchar(la_source + 'test.txt'),Pchar(la_destination + 'test.txt'),False);
ça fonctionne.
Je pense donc avoir un probleme au niveau de la récupération du fichier de ma combobox :
le_fichier_selec:=Combobox.Items[Combobox.itemindex];
j'ai testé d'envoyer cette variable dans un mémo et elle s'affiche correctement, c'est bien le bon fichier, sans erreur ou fautes.
Bingo!
Le problème était donc bien la, il me créait a chaques fois un retour a la ligne en trop.
J'ai utiliser la function Trim(const S: string): string; qui supprime les espaces et les sauts de lignes.
Merci à tous!
Peux-tu nous dire le format qu'ont les variables "la_source", "le_fichier_selec", "la_destination" ? Il s'agit probablement d'une erreur de formatage (lorsque tu mets bout à bout deux chaînes formatées, il peut y avoir des petits oublis (notamment un backslash en trop ...). Ca m'arrive souvent.
Oui merci mais je voulais savoir comment était formaté ce qu'ils contenaient.
As-tu essayé de faire un ShowMessage(la_destination + le_fichier_selec) pour voir ce que était envoyé au copyfile ?
Ouais j'ai essayer d'envoyer ça dans un Mémo.
Ca marche impeccable, le fichier est bien le bon.
C'est pour ça que je ne comprends pas...
J'ai même envoyer tout le chemin dans ce mémo, y'a pas d'erreurs...
J'ai delphi 6, et je ne connais pas "8 composants de base".
Sinon, oui j'ai les droits requis pour faire ce copier coller puisque lorsque je passe en parametre dans le CopyFile le nom du fichire "en dur" ça passe sans probleme et ça se copie sur le bureau.
Sinon j'avais remarquer que lorsque j'envoyais ma variable contenant le nom du fichier dans un mémo, même en faisant memo1.text:=''; j'avais
test.txt
En gros c'est comme si il appuyait sur la touche entrer apres avoir écrit le contenu de ma variable.
J'ai donc essayer d'ajouter un +chr(8) (le backspace) mais non ça ne change rien...
Les 8 composants de base se trouvent normalement dans ton répertoire Exemples et Win 3.1. Néanmoins, il faut peut-être installer un ActiveX pour les composants Shell ...
Non ça marche pas,par contre j'ai fait un test et ça confirme tout à fait ce que je pensais :
il retourne a la ligne une fois quand il récupère le fichier_selec, je m'explique
à la place qu'il m'affiche (memo1.text:= ( '"' + la_source + le_fichier_selec + '"')+(chr(13)+chr(10))+('"' + la_destination + le_fichier_selec + '"'), :
Alors que je ne lui demande qu'une seule mise a la ligne dans le code (chr(13)+chr(10))!
Il fait donc un retour a la ligne tout seul lors de la selection du fichier! j'ai essayer d'annuler ça avec un backspace (chr(8)) ça ne marche pas...
Je rappel que le fichier je l'obtient comme ça :
le_fichier_selec: =combobox.items[combobox.itemindex];