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

  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  [Delphi] Probleme de pascal

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Delphi] Probleme de pascal

n°218766
vttman2
Je suis Open ...
Posté le 23-09-2002 à 12:27:16  profilanswer
 

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];
 

mood
Publicité
Posté le 23-09-2002 à 12:27:16  profilanswer
 

n°218769
[SDF]Poire
Vive Grumly
Posté le 23-09-2002 à 12:30:09  profilanswer
 

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:
n°218774
antp
Super Administrateur
Champion des excuses bidons
Posté le 23-09-2002 à 12:35:00  profilanswer
 

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


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°218776
antp
Super Administrateur
Champion des excuses bidons
Posté le 23-09-2002 à 12:35:42  profilanswer
 

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
n°218780
antp
Super Administrateur
Champion des excuses bidons
Posté le 23-09-2002 à 12:36:42  profilanswer
 

[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
n°218781
vttman2
Je suis Open ...
Posté le 23-09-2002 à 12:37:05  profilanswer
 

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

n°218790
antp
Super Administrateur
Champion des excuses bidons
Posté le 23-09-2002 à 12:55:04  profilanswer
 

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
n°218792
antp
Super Administrateur
Champion des excuses bidons
Posté le 23-09-2002 à 12:57:10  profilanswer
 

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
n°218797
antp
Super Administrateur
Champion des excuses bidons
Posté le 23-09-2002 à 13:05:54  profilanswer
 
n°218809
antp
Super Administrateur
Champion des excuses bidons
Posté le 23-09-2002 à 13:18:22  profilanswer
 

ç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
mood
Publicité
Posté le 23-09-2002 à 13:18:22  profilanswer
 

n°218820
[SDF]Poire
Vive Grumly
Posté le 23-09-2002 à 13:26:59  profilanswer
 

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:
n°218858
antp
Super Administrateur
Champion des excuses bidons
Posté le 23-09-2002 à 14:25:24  profilanswer
 

[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

n°218878
[SDF]Poire
Vive Grumly
Posté le 23-09-2002 à 14:49:23  profilanswer
 

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:
n°218880
antp
Super Administrateur
Champion des excuses bidons
Posté le 23-09-2002 à 14:55:03  profilanswer
 

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
n°218884
[SDF]Poire
Vive Grumly
Posté le 23-09-2002 à 14:59:04  profilanswer
 

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:
n°218895
[SDF]Poire
Vive Grumly
Posté le 23-09-2002 à 15:19:22  profilanswer
 

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:
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  [Delphi] Probleme de pascal

 

Sujets relatifs
probleme d'envoi de fichiers binaires dans une app client/serveurUtilisation d'une union : probleme
problème de connexion base mysql en php (easyphp 6)Problème de Somme (suite)
C++ : gros probleme avec les unions ![Delphi] Sauvegarde d'une font...[Résolu]
Problème de somme dans requête SQL[Delphi] Déplacement de fenetre a la souris [Résolu]
[HTML,JSP] Problème methode post[BORLAND]Utilisation de paquets Delphi dabs Builder 5
Plus de sujets relatifs à : [Delphi] Probleme de pascal


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR