[Delphi] Probleme de pascal

Probleme de pascal [Delphi] - Delphi/Pascal - Programmation

Marsh Posté le 23-09-2002 à 12:27:16    

viiz a écrit a écrit :

Chui un peu limite en pascal la...
 
[pascal]procedure toto;
var
  PathBuffer: array [0..MAX_PATH + 1] of Char;
begin
  PathBuffer := '\\' + FRemoteAddress + '\Système\Temps'; error
  ...
  ...
  AppelAPI(truc, bidule, PathBuffer);
end;[/pascal]
 
Ce code ne compile pas car pathbuffer de type array et ma chaine de type string sont incompatibles. Je suis obligé de garder le tableau de char car je fais un appel API par la suite.
Comment faire pour que ce code tourne ?
 :hello:  
 




 
J'ai pas de Pascal sous la main mais ...
 
Essaye :
 
var
  PathBuffer: String [MAX_PATH + 1];
 

Reply

Marsh Posté le 23-09-2002 à 12:27:16   

Reply

Marsh Posté le 23-09-2002 à 12:30:09    

procedure toto;
var
  PathBuffer: array [0..MAX_PATH + 1] of Char;
  FRemoteAddress: String;
  P: PChar;
begin
  FRemoteAddress := 'toto';
  //GetMem(P, MAX_PATH + 1);
  P := @PathBuffer;
  P :=  PChar('\\' + FRemoteAddress + '\Système\Temps');
  AppelAPI(truc, bidule, PathBuffer);
end;


 
A tester


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
Reply

Marsh Posté le 23-09-2002 à 12:35:00    

remplace
PathBuffer := '\\' + FRemoteAddress + '\Système\Temps';
par
StrCopy(PathBuffer, PChar('\\' + FRemoteAddress + '\Système\Temps';));


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 23-09-2002 à 12:35:42    

vttman2 a écrit a écrit :

 
var
  PathBuffer: String [MAX_PATH + 1];
 
 




 
ça fait une ShortString au lieu d'AnsiString/LongString, mais ça donnera pas un PChar ;)


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 23-09-2002 à 12:36:42    

[SDF]Poire a écrit a écrit :

 
  P := @PathBuffer;
  P :=  PChar('\\' + FRemoteAddress + '\Système\Temps';);
  AppelAPI(truc, bidule, PathBuffer);




 
heu là PathBuffer ne contiendra jamais les chaînes voulues, à moins d'un miracle :D


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 23-09-2002 à 12:37:05    

Glups j'avais lu un peu vite,
je suis à coté de la plaque ...  :benetton:  
Je retire mon précédent message !  :eek2:

Reply

Marsh Posté le 23-09-2002 à 12:55:04    

pour le StrCopy (qui est la seule solution correcte :ange:) si ça marche pas c'est peut-être que la variable passée est pas bonne
Y a aussi StrPCopy qui accepte une variable de type string
 
essaie:
 
P: PChar;
 
P := GetMem(P, MAX_PATH + 1);
StrPCopy(P, '\\' + FRemoteAddress + '\Système\Temps';);
AppelAPI(truc, bidule, P);
 
...
 
FreeMem(P); // quand t'as plus besoin du buffer


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 23-09-2002 à 12:57:10    

viiz a écrit a écrit :

 
 
mais ca ca compile pas
 

Code :
  1. PathBuffer := '\\' + FRemoteAddress + '\Système\Temps d''activité système';






 
heu je viens de relire le truc, FRemoteAddress est de quel type ?
 
si tu fais
PathBuffer := '\\' + PChar(FRemoteAddress) + '\Système\Temps d''activité système'
ça marche ?


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 23-09-2002 à 13:05:54    

Reply

Marsh Posté le 23-09-2002 à 13:18:22    

ça dépend... tu fais un RaiseLastOSErrror il te balance une exception avec une description claire de la dernière erreur normalement :)


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 23-09-2002 à 13:18:22   

Reply

Marsh Posté le 23-09-2002 à 13:26:59    

antp a écrit a écrit :

 
 
heu là PathBuffer ne contiendra jamais les chaînes voulues, à moins d'un miracle :D




Ah  :D  
Pointeur & Pascal & moi =   :ouch:


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
Reply

Marsh Posté le 23-09-2002 à 14:25:24    

[SDF]Poire a écrit a écrit :

 
Ah  :D  
Pointeur & Pascal & moi =   :ouch:  




 
c'est pas une question de pointeur, c'est que t'assigne à P le buffer puis t'assigne un autre truc à P, mais jamais t'assigne le truc au buffer :D

Reply

Marsh Posté le 23-09-2002 à 14:49:23    

l'id C T de faire pointer P vers le buffer  :D
 
genre
p = &ca;
*p = "bloub";
 
en C  :D  
C ptet pas exactement ça même en C, ça fait longtemps que G pas pratiqué


Message édité par [SDF]Poire le 23-09-2002 à 14:52:34

---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
Reply

Marsh Posté le 23-09-2002 à 14:55:03    

mwouais je m'en doutais, mais c'était un peu raté
 
p^ := ...  
alors
mais je suis pas sûr que ce soit accepté et/ou bien interprété par le compilo..
 
en Pascal vaut mieux pas trop jouer avec ce genre de choses je crois :)


Message édité par antp le 23-09-2002 à 14:55:42
Reply

Marsh Posté le 23-09-2002 à 14:59:04    

antp a écrit a écrit :

mwouais je m'en doutais, mais c'était un peu raté
 
p^ := ...  
alors
mais je suis pas sûr que ce soit accepté et/ou bien interprété par le compilo..
 
en Pascal vaut mieux pas trop jouer avec ce genre de choses je crois :)




oué je C :-/
C domage :(


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
Reply

Marsh Posté le 23-09-2002 à 15:19:22    

antp a écrit a écrit :

mwouais je m'en doutais, mais c'était un peu raté
 
p^ := ...  
alors
mais je suis pas sûr que ce soit accepté et/ou bien interprété par le compilo..




non ça marche po...
p^ est de type char... (vu que pointeur sur char C assez logique)
Donc à priori on peut pas faire comme en C  :(


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed