Combobox et copyfile [Résolu]

Messages postés
25
Date d'inscription
vendredi 27 juin 2008
Dernière intervention
6 novembre 2009
- 2 juil. 2009 à 11:42 - Dernière réponse :
Messages postés
2354
Date d'inscription
dimanche 5 octobre 2003
Dernière intervention
18 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.

Une idée?
Par avance Merci
Afficher la suite 

Votre réponse

18 réponses

Meilleure réponse
Messages postés
25
Date d'inscription
vendredi 27 juin 2008
Dernière intervention
6 novembre 2009
- 2 juil. 2009 à 15:34
3
Merci
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!

Merci floppy41 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 86 internautes ce mois-ci

Commenter la réponse de floppy41
Messages postés
3869
Date d'inscription
samedi 22 décembre 2007
Dernière intervention
3 juin 2016
- 2 juil. 2009 à 11:49
0
Merci
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.

Cordialement, Bacterius !
Commenter la réponse de Bacterius
Messages postés
25
Date d'inscription
vendredi 27 juin 2008
Dernière intervention
6 novembre 2009
- 2 juil. 2009 à 11:53
0
Merci
Ce sont tous des String.
exemples :
le_fichier_selec : 'test.txt'
la_source : 'C:\Users\Toto\Desktop\gp2\'
la_destination : 'C:\Users\Toto\Desktop\'
Commenter la réponse de floppy41
Messages postés
3869
Date d'inscription
samedi 22 décembre 2007
Dernière intervention
3 juin 2016
- 2 juil. 2009 à 11:55
0
Merci
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 !
Commenter la réponse de Bacterius
Messages postés
25
Date d'inscription
vendredi 27 juin 2008
Dernière intervention
6 novembre 2009
- 2 juil. 2009 à 12:00
0
Merci
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...
Commenter la réponse de floppy41
Messages postés
3869
Date d'inscription
samedi 22 décembre 2007
Dernière intervention
3 juin 2016
- 2 juil. 2009 à 12:09
0
Merci
Etrange, as-tu les droits requis pour copier dans le répertoire Bureau ?

Cordialement, Bacterius !
Commenter la réponse de Bacterius
Messages postés
2354
Date d'inscription
dimanche 5 octobre 2003
Dernière intervention
18 novembre 2010
- 2 juil. 2009 à 12:11
0
Merci
Avec 8 compos DE BASE, tu as été obligé de réinventer la roue et galérer ?
Commenter la réponse de JulioDelphi
Messages postés
25
Date d'inscription
vendredi 27 juin 2008
Dernière intervention
6 novembre 2009
- 2 juil. 2009 à 12:17
0
Merci
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...
Commenter la réponse de floppy41
Messages postés
3869
Date d'inscription
samedi 22 décembre 2007
Dernière intervention
3 juin 2016
- 2 juil. 2009 à 12:19
0
Merci
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 ...

Cordialement, Bacterius !
Commenter la réponse de Bacterius
Messages postés
25
Date d'inscription
vendredi 27 juin 2008
Dernière intervention
6 novembre 2009
- 2 juil. 2009 à 12:20
0
Merci
Oui peut être, enfin mon but c'est quand même de comprendre pourquoi ça ne fonctionne pas.
Commenter la réponse de floppy41
Messages postés
3869
Date d'inscription
samedi 22 décembre 2007
Dernière intervention
3 juin 2016
- 2 juil. 2009 à 12:30
0
Merci
Oui, mais souvent à problème bizarre il y a solution simple !

Cordialement, Bacterius !
Commenter la réponse de Bacterius
Messages postés
4229
Date d'inscription
vendredi 23 juillet 2004
Dernière intervention
3 août 2018
- 2 juil. 2009 à 12:40
0
Merci
La première opération serait d'afficher le résultat de :
la_source + le_fichier_selec
et de :
la_destination + le_fichier_selec

il est fort possible que le problème s'y localise.
 
@+
Cirec

<hr siz="" />
Commenter la réponse de Cirec
Messages postés
25
Date d'inscription
vendredi 27 juin 2008
Dernière intervention
6 novembre 2009
- 2 juil. 2009 à 14:01
0
Merci
Oui il est même a peu pres certains que le probleme se situ à ce niveau, seulement j'ai vérifier, et les chemins sont correctes :s
Commenter la réponse de floppy41
Messages postés
4229
Date d'inscription
vendredi 23 juillet 2004
Dernière intervention
3 août 2018
- 2 juil. 2009 à 15:12
0
Merci
essaye comme ça :

CopyFile(Pchar('"' + la_source + le_fichier_selec + '"'),
  Pchar('"' + la_destination + le_fichier_selec + '"'), False);

 
@+
Cirec

<hr siz="" />
Commenter la réponse de Cirec
Messages postés
25
Date d'inscription
vendredi 27 juin 2008
Dernière intervention
6 novembre 2009
- 2 juil. 2009 à 15:27
0
Merci
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 + '"'),  :

"C:\Users\Toto\Desktop\gp2\test.txt"
"C:\Users\Toto\Desktop\test.txt"

Il m'affiche :

"C:\Users\Toto\Desktop\gp2\test.txt
"
"C:\Users\Toto\Desktop\test.txt
"

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];
Commenter la réponse de floppy41
Commenter la réponse de f0xi
Messages postés
3
Date d'inscription
dimanche 14 février 2010
Dernière intervention
1 août 2010
- 15 févr. 2010 à 11:45
0
Merci
Bonjour,

Je débute avec Delphi et je dois créer un programme identique à celui-ci.

Je dois afficher les fichiers d'un répertoire pour copier dans un autre répertoire le fichier sélectionné et ensuite appeler un programme .bat.

Je ne sais pas encore générer la liste déroulante.


Pouvez-vous me conseiller ?

Merci
Commenter la réponse de bienbon75
Messages postés
2354
Date d'inscription
dimanche 5 octobre 2003
Dernière intervention
18 novembre 2010
- 15 févr. 2010 à 11:56
0
Merci
Tu as déjà posté ta question ailleurs, merci de ne pas faire remonter des vieux posts pour reposer votre question. ...
Commenter la réponse de JulioDelphi

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.