[Résolu]Fonction Pos : mon code ne marche pas

Fonction Pos : mon code ne marche pas [Résolu] - Delphi/Pascal - Programmation

Marsh Posté le 17-01-2006 à 20:05:05    

Ce code :
 
        Chn_Recherchee := '260.pa';
        Ptr_Chn := nil;
        Position := Pos(Chn_Recherchee, Ptr_Buffer);
        inc(Ptr_Chn, POsition);
        Form1.Lab_Aff_Chn.Caption := Ptr_Chn;
 
ne fonctionne pas.  
 
Chn_Recherchee : string
Ptr_Chn : PChar
POsition : integer
 
Je cherche la position (déplacement, quoi) de la chaîne Chn_Recherchee à l'intérieur du buffer pointé par Ptr_Buffer. Ptr_Buffer pointe sur le tampon où j'ai stocké les octets lus depuis un fichier avec FileRead, et Ptr_Chn devrait pointer sur la chaîne recherchée à l'intérieur de ce buffer. Elle y est (vérifié).
 
Et ça ne marche pas  :heink:  
 
Et comme je ne sais pas utiliser le débogueur interne de Delphi (à part CTRL F7)... J'ai même tenté avec TD32, mais il plante. Comprend pas pourquoi.

Message cité 2 fois
Message édité par HERIBERT le 17-01-2006 à 20:08:55
Reply

Marsh Posté le 17-01-2006 à 20:05:05   

Reply

Marsh Posté le 17-01-2006 à 20:06:30    

HERIBERT a écrit :

Ce code :
 
        Chn_Recherchee := '260.pa';
        Ptr_Chn := nil;
        Position := Pos(Chn_Recherchee, Ptr_Buffer);
        inc(Ptr_Chn, POsition);
        Form1.Lab_Aff_Chn.Caption := Ptr_Chn;
 
ne fonctionne pas.  
 
Chn_Recherchee : string
Ptr_Chn : PChar
POsition : integer
 
Je cherche la position (déplacement, quoi) de la chaîne Chn_Recherchee à l'intérieur du buffer pointé par Ptr_Buffer. Ptr_Buffer pointe sur le tampon où j'ai stocké les octets lus depuis un fichier avec FileRead, et Ptr_Chn devrait pointer sur la chaîne recherchée à l'intérieur de ce buffer. Elle y est (vérifié).
 
Et ça ne marche pas  :heink:  
 
Et comme je ne sais pas utiliser le débogueur interne de Delphi (à part CTRL F7)... J'ai même tenté avec TD32, mais il plante. Comprend pas pourquoi.


C'est bête. Je commence (peut-être) à comprendre après l'affichage de mon post  :heink:

Reply

Marsh Posté le 17-01-2006 à 20:09:59    

HERIBERT a écrit :

Ce code :
 
        Chn_Recherchee := '260.pa';
        Ptr_Chn := nil;
        Position := Pos(Chn_Recherchee, Ptr_Buffer);
        inc(Ptr_Chn, POsition);
        Form1.Lab_Aff_Chn.Caption := Ptr_Chn;
 
ne fonctionne pas.  
 
Chn_Recherchee : string
Ptr_Chn : PChar
POsition : integer
 
Je cherche la position (déplacement, quoi) de la chaîne Chn_Recherchee à l'intérieur du buffer pointé par Ptr_Buffer. Ptr_Buffer pointe sur le tampon où j'ai stocké les octets lus depuis un fichier avec FileRead, et Ptr_Chn devrait pointer sur la chaîne recherchée à l'intérieur de ce buffer. Elle y est (vérifié).
 
Et ça ne marche pas  :heink:  
 
Et comme je ne sais pas utiliser le débogueur interne de Delphi (à part CTRL F7)... J'ai même tenté avec TD32, mais il plante. Comprend pas pourquoi.


La faute était là :
        Chn_Recherchee := '260.pa';
       Ptr_Chn := PChar(Chn_Recherchee);   // et pas nil !
        Position := Pos(Chn_Recherchee, Ptr_Buffer);
        inc(Ptr_Chn, Position);
        Form1.Lab_Aff_Chn.Caption := Ptr_Chn;

Reply

Sujets relatifs:

Leave a Replay

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