Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3504 connectés 

 


Dernière réponse
Sujet : [Delphi] question stupide
antp Tiens c'est toujours après que quelqu'un ait quoté un de mes posts que je vois les fautes:
"...à la limite que tu dois obligé..." :sweat:

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
antp Tiens c'est toujours après que quelqu'un ait quoté un de mes posts que je vois les fautes:
"...à la limite que tu dois obligé..." :sweat:
Buitoni

antp a écrit a écrit :

:??: Espace <> Zéro de fin de chaîne
À la limite que tu dois obligé de rajouter des " " autout du nom dans la chaîne je comprendrais...  




 
Oui, ca a rien a voir l'espace et la fin de chaîne, faut se calmer les gars... Tu as totalement raison antoine, il FAUT foutre le path entre "" quand c'est un nom long.
 
Sinon t'as qu'a le transformer en nom 8.3 avant, mais bon, si tu le fais correctement y a pas de problème.
 
Pour info, cette fonction est la même depuis Windows 3.11, ils ont juste rajouté le support des noms longs moyennant le "
 :sarcastic:

Ciler

antp a écrit a écrit :

:??: Espace <> Zéro de fin de chaîne
À la limite que tu dois obligé de rajouter des " " autout du nom dans la chaîne je comprendrais...  




 
Je te l'accorde, espace<>null... Sauf que si tu essaye le truc que je tesuggère, tu verra que les noms avec espace provoquent une exception (ou alors mon système est buggé). Moi non plus je ne comprend pas pourquoi, mais l'expérience est impossible à nier !

antp :??: Espace <> Zéro de fin de chaîne
À la limite que tu dois obligé de rajouter des " " autout du nom dans la chaîne je comprendrais...
Ciler

antp a écrit a écrit :

 
Le PChar est nécessaire pour quand on a des + car il s'agit de plus chaînes concaténées, mais ça n'a rien à voir avec le contenu des chaînes  




 
 :hello:  
Puis-je te suggérer d'essayer de déplacer un fichier d'un disque vers un autre avec par exemple le BUFilesUtils...
Tu obtiendra un splendide échec dû à ce que je mentionne plus haut, car comme l'a dit Poire, la fonction CopyFile prend des chaines à zéro terminal en paramètre (des PChar quoi). Et si tu lui met un string, c'est le compilo quifait la conversion, et il la fait très mal puisqu'il flingue les noms longs...

antp

Ciler a écrit a écrit :

 
 
Fait aussi un PChar sur ce paramètre parce-que si ta chaine contient un espace, tu cours droit dans le mur...
(en effet, le convertiseur fera 'C:\Mes Documents \toto.txt'->'C:\Mes')  




 
:heink:
Le PChar est nécessaire pour quand on a des + car il s'agit de plus chaînes concaténées, mais ça n'a rien à voir avec le contenu des chaînes

Ciler

JWhy a écrit a écrit :

CopyFile(  
PChar(StringGrid.Cells[2,1]+StrinGrid.Cells[1,1]), 'c:\plustoto\a.txt', True  
);  




 
Fait aussi un PChar sur ce paramètre parce-que si ta chaine contient un espace, tu cours droit dans le mur...
(en effet, le convertiseur fera 'C:\Mes Documents \toto.txt'->'C:\Mes')

Buitoni

[SDF]Poire a écrit a écrit :

 
F1 ?  




 
Trop dur! T'es fou toi!
 :non:

antp Bon bhen j'étais pas là pour la suite de la réponse... j'étais absorbé dans ce que je faisais (du Delphi justement), puis après HFR était en panne :/
Aratorn :jap:  :jap:  :jap:  :jap:  :jap:  :jap:  
Merci merci, ça marche impec
JWhy CopyFile(  
PChar(StringGrid.Cells[2,1]+StrinGrid.Cells[1,1]), 'c:\plustoto\a.txt', True  
);  
 
fais un cast !
Aratorn Merci Poire  :jap:  
Bon, ben ça marche si je fais :
 
CopyFile(
'c:\toto\a.txt', 'c:\plustoto\a.txt', True
);
 
mais si je fais :
 
CopyFile(
StringGrid.Cells[2,1]+StrinGrid.Cells[1,1], 'c:\plustoto\a.txt', True
);
 
Avec dans la cellule 1,1 un nom et dans la 2,1 un chemin, il me répond "Types incompatible String et PChar"  :??:

 

[jfdsdjhfuetppo]--Message édité par Aratorn--[/jfdsdjhfuetppo]

[SDF]Poire The CopyFile function copies an existing file to a new file.  
 
BOOL CopyFile(
 
    LPCTSTR lpExistingFileName, // pointer to name of an existing file  
    LPCTSTR lpNewFileName, // pointer to filename to copy to  
    BOOL bFailIfExists  // flag for operation if file exists  
   );  
 
 
Parameters
 
lpExistingFileName
 
Points to a null-terminated string that specifies the name of an existing file.  
 
lpNewFileName
 
Points to a null-terminated string that specifies the name of the new file.  
 
bFailIfExists
 
Specifies how this operation is to proceed if a file of the same name as that specified by lpNewFileName already exists. If this parameter is TRUE and the new file already exists, the function fails. If this parameter is FALSE and the new file already exists, the function overwrites the existing file and succeeds.  
 
 
 
Return Values
 
If the function succeeds, the return value is nonzero.
If the function fails, the return value is zero. To get extended error information, call GetLastError.  
 
Remarks
 
Security attributes for the existing file are not copied to the new file.  
File attributes (FILE_ATTRIBUTE_*) for the existing file are copied to the new file. For example, if an existing file has the FILE_ATTRIBUTE_READONLY file attribute, a copy created through a call to CopyFile will also have the FILE_ATTRIBUTE_READONLY file attribute. For further information on file attributes, see CreateFile.
 
See Also
 
CreateFile, MoveFile
[SDF]Poire

Aratorn a écrit a écrit :

:lol: C bô les réponses rapides
J'ai peut-être fait une erreur de syntaxe ...
Tu peux me la donner stp  :hello:  




F1 ?

Aratorn :lol: C bô les réponses rapides
J'ai peut-être fait une erreur de syntaxe ...
Tu peux me la donner stp  :hello:
antp :heink: Normalemment elle fonctionne... Tu l'utilises comment ? Elle te renvoie quoi ?
Aratorn mais je la pose quand même :  :hello:  
Comment on fait pour copier un fichier simplement.
Il y a bien la fonction CopyFile, mais il semble qu'elle ne marche pas.
Un peu d'aide svp

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)