floppy41
Messages postés25Date d'inscriptionvendredi 27 juin 2008StatutMembreDernière intervention 6 novembre 2009
-
2 juil. 2009 à 11:42
JulioDelphi
Messages postés2226Date d'inscriptiondimanche 5 octobre 2003StatutMembreDernière intervention18 novembre 2010
-
15 févr. 2010 à 11:56
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.
floppy41
Messages postés25Date d'inscriptionvendredi 27 juin 2008StatutMembreDernière intervention 6 novembre 2009 2 juil. 2009 à 15:34
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!
Bacterius
Messages postés3792Date d'inscriptionsamedi 22 décembre 2007StatutMembreDernière intervention 3 juin 201610 2 juil. 2009 à 11:49
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.
Bacterius
Messages postés3792Date d'inscriptionsamedi 22 décembre 2007StatutMembreDernière intervention 3 juin 201610 2 juil. 2009 à 11:55
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 ?
Cordialement, Bacterius !
Vous n’avez pas trouvé la réponse que vous recherchez ?
floppy41
Messages postés25Date d'inscriptionvendredi 27 juin 2008StatutMembreDernière intervention 6 novembre 2009 2 juil. 2009 à 12:00
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...
floppy41
Messages postés25Date d'inscriptionvendredi 27 juin 2008StatutMembreDernière intervention 6 novembre 2009 2 juil. 2009 à 12:17
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...
Bacterius
Messages postés3792Date d'inscriptionsamedi 22 décembre 2007StatutMembreDernière intervention 3 juin 201610 2 juil. 2009 à 12:19
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 ...
floppy41
Messages postés25Date d'inscriptionvendredi 27 juin 2008StatutMembreDernière intervention 6 novembre 2009 2 juil. 2009 à 15:27
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];