Pb de récupération d'un entier dans une chaîne de caractère

billou_13 Messages postés 860 Date d'inscription jeudi 4 mars 2004 Statut Membre Dernière intervention 19 août 2014 - 8 mars 2004 à 17:19
billou_13 Messages postés 860 Date d'inscription jeudi 4 mars 2004 Statut Membre Dernière intervention 19 août 2014 - 9 mars 2004 à 11:03
Voila mon problème, je voudrais trouver une fonction faisant comme sscanf en c++.

C'est à dire, pour récupérer le numéro du joueur dans une chaîne reçu : "joueur 13 connecté", nous utilisons la fonction:

sscanf("joueur 13 connecté","joueur %i connecté",&num)

Voila, pour l'instant , je peux me passer d'une fonction telle ca rj'utilise la routine delete() mais , je pense fortement qu'il serait plus intéressant de faire comme en c++.

Merci d'avance pour vos réponses,

Billou_13

1 réponse

billou_13 Messages postés 860 Date d'inscription jeudi 4 mars 2004 Statut Membre Dernière intervention 19 août 2014 29
9 mars 2004 à 11:03
G programmer une fonction me permettant de résoudre ce problème. A l'arrache mais ca marche !
Voici le code:

{Fonction trouvant un mot entre deux chaînes en notant les esaces aussi !!!}
function chercher_mot(phrase:string;mot_avant:string;mot_apres:string):string;
var position_mot : integer;
begin
position_mot := pos(mot_avant,phrase);
delete(phrase,1,position_mot + length(mot_avant)-1 );
position_mot := pos(mot_apres,phrase);
delete(phrase,position_mot, length(phrase) - position_mot + 1);
Result := phrase;
end;

{Si vous ne voulez pas prendre en compte les espaces !!!}
function chercher_mot(phrase:string;mot_avant:string;mot_apres:string):string;
var position_mot : integer;
begin
position_mot := pos(mot_avant,phrase);
delete(phrase,1,position_mot + length(mot_avant));
position_mot := pos(mot_apres,phrase);
delete(phrase,position_mot-1, length(phrase) - position_mot + 2);
Result := phrase;
end;

Mais j'attend toujours une fonction à la sscanf si vous avez merci !
0
Rejoignez-nous