Récupérer les mots séparés par des espaces dans une chaîne de char....

Récupérer les mots séparés par des espaces dans une chaîne de char.... - Ada - Programmation

Marsh Posté le 04-04-2010 à 18:57:51    

Bonjour,
 
J'ai un petit problème  :sweat:  
 
Je souhaite récupérer les mots séparés par des espace dans une chaîne.
 
Voici mon algo :
 

Code :
  1. Line : Wide_String(1..2024);
  2. Last : Natural := 0;
  3. Top, Bot : Positive := 1;


 

Code :
  1. for I in 1..Last loop
  2.   if Line(I) = Wide_Character'Val(32) then
  3.      Bot := I-1;
  4.      begin
  5.         if not Exist(line(Top..Bot)) then
  6.         begin
  7.           Add(Line(Top..Bot), Count);
  8.           Count := Count + 1;
  9.         exception
  10.       when others =>
  11.          null;
  12.       end;
  13.    end if;
  14.    sentence(sentence_Last + 1) := Keyword(line(Top..Bot));
  15.    sentence_Last := sentence_Last + 1;
  16.    Top := Bot+2;
  17.    exception
  18.       when others =>
  19.            Put_Line(Line(Top..Bot));
  20.    end;
  21.  end if;
  22. end loop;


 
Au second appel l'appel du premier "exist" j'ai une fonction de comparaison de chaines "<" qui me dit "index check failed" donc, j'en déduit qu'une chaine est de longueur zéro.
 
L'échantillon de texte est celui ci "1 Au commencement, Dieu créa les cieux et la terre."
j'y suis depuis 20 minutes et je ne trouve mon l'erreur .
Merci pour votre aide.


Message édité par Profil supprimé le 04-04-2010 à 19:01:48
Reply

Marsh Posté le 04-04-2010 à 18:57:51   

Reply

Marsh Posté le 04-04-2010 à 19:28:00    

Bon, j'ai trouvé, ça fais plusieurs fois que je me laisse avoir avec ça. je vais pas oublier ce coup ci.
Merci.

Reply

Marsh Posté le 14-04-2010 à 20:21:41    

il était ou le problème :??:

Message cité 1 fois
Message édité par fire in the hole !!! le 14-04-2010 à 20:21:48
Reply

Marsh Posté le 16-04-2010 à 10:23:36    

fire in the hole !!! a écrit :

il était ou le problème :??:


 
Lorsque je passais mon tableau de caractères, je délimitais les borne avec deux index, hors, ma fonction de comparaison attendait une chaine commençant à 1.

Reply

Sujets relatifs:

Leave a Replay

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