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

  FORUM HardWare.fr
  Programmation
  Ada

  Problème de chaine en ADA

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème de chaine en ADA

n°138929
tilateur
Posté le 14-05-2002 à 22:33:39  profilanswer
 

je veux une chaine de 255 de long, jusque la pas de probleme :
 
nom1       : string(1..lg_nom); (lg_nom est une variable initialisee a 255)
 
mais le truc c'est que ensuite je veux ecrire un truc dans cette chaine, pas avec un get (scanf en C) mais directement dans mon prog et remplir le reste de la chaine avec des blanc
 
sachant que l'on peut initialiser une chaine de blanc comme ca :
 
nom1       : string(1..lg_nom) := (others => ' ';);  
 
 
 
j'ai essayé de faire ca :
 
nom2       : string(1..lg_nom) := "mon texte" & (others => ' ';);  
 
....mais ca marche pas!!!!!
ca fait 1/2h que je suis dessus, je comprends pas.....AIDEZ-MOI!!!!!!!! :hello:


---------------
Ma passion : [:sunny delight]
mood
Publicité
Posté le 14-05-2002 à 22:33:39  profilanswer
 

n°138933
benou
Posté le 14-05-2002 à 22:38:41  profilanswer
 

pourquoi tu le fait pas à la main, avec une boucle for pour remplir le reste d'espace ?


---------------
ma vie, mon oeuvre - HomePlayer
n°138935
tilateur
Posté le 14-05-2002 à 22:41:29  profilanswer
 

le truc c que si je fait
 
machaine := "montexte";
for.....
.....
end loop;
 
le compilo gueule (warning) des le machaine:="montexte";  
parce que ADA veut pas que je mette une chaine de 8 caracteres (montexte) dans une string prevue pour 255....


---------------
Ma passion : [:sunny delight]
n°138938
Willyzekid
Posté le 14-05-2002 à 22:46:33  profilanswer
 

1) tu dois tout remplir dans une chaine
2) l'opérateur & ne marche que pour des concatenation de string
Donc tu peux faire
 
Nom1 : string (1..x) := "             ";  -- ou x = le nombre de char
Nom2 : string (1..lg_nom) := "mon texte" & Nom1;
 
ou
Nom1 : string (1..lg_nom) := "mon texte" & "        "; -- avec le nombre d'espace qu'il faut

 

[jfdsdjhfuetppo]--Message édité par Willyzekid le 14-05-2002 à 22:47:22--[/jfdsdjhfuetppo]

n°138939
tilateur
Posté le 14-05-2002 à 22:50:20  profilanswer
 

bon tant pis, merci :hello:


---------------
Ma passion : [:sunny delight]
n°138940
Willyzekid
Posté le 14-05-2002 à 22:51:44  profilanswer
 

heu et pourquoi ca marche pas ca?

n°138944
tilateur
Posté le 14-05-2002 à 22:57:01  profilanswer
 

sisi ca marche
mais le probleme c'est que je vais devoir mettre 255-(nbre ce char de mon txt) blancs ds ma string nom1
 
le truc c que j'aimerai utiliser le others, comme ca, pas besoin de faire les 255 blancs....


---------------
Ma passion : [:sunny delight]
n°138948
Willyzekid
Posté le 14-05-2002 à 23:09:04  profilanswer
 

Effectivement...je vois pas trop comment faire!
Si t'as beaucoup de chaine de charactère à faire comme ca, tu peux faire une fonction qui remplit le reste avec des " ".  
 
Au pire:
nom1 : string(1..lg_nom) := (others=>' ';);
nom2 : string(1..lg_nom) := "mon texte" & nom1(1..x); -- x = longeur de "mon texte"
 
Mais bon c'est la même chose et c'est pas très sexy :)

n°139056
benou
Posté le 15-05-2002 à 09:55:51  profilanswer
 

tilateur a écrit a écrit :

le truc c que si je fait
 
machaine := "montexte";
for.....
.....
end loop;
 
le compilo gueule (warning) des le machaine:="montexte";  
parce que ADA veut pas que je mette une chaine de 8 caracteres (montexte) dans une string prevue pour 255....  




 
il faut que tu fasses ca : (ou un truc du genre : je me souviens plus de la syntaxe)
 
machaine(1.."montexte".length) := "montexte";
for.....
.....
end loop;


---------------
ma vie, mon oeuvre - HomePlayer
n°157972
ratapouak
Posté le 12-06-2002 à 17:37:08  profilanswer
 

Salut,  
Avec le get_line t pas obligé de déclarer ta chaine avec une longueur. Tu vides ton buffer avec skip_line pis après tu fais un get_line de ta saisie clavier et il remplit le reste de blanc normalement.
Enfin g un peu lâché l'ada depuis un moment mais renseigne toi sur la fontion get_lien, elle marche et c plus zoli qu'avec une boucle de blancs.

mood
Publicité
Posté le 12-06-2002 à 17:37:08  profilanswer
 

n°157979
DLR_Ninja
Ku Lung Vo Dao Child Incognito
Posté le 12-06-2002 à 17:43:53  profilanswer
 

nom1       : string(1..lg_nom) := (others => ' ' );  
 
nom1       : string(1..lg_nom) := "mon texte";  
 
ca marche pas ca?


---------------
Narf... [:dlr_ninja]  
n°157980
DLR
Hein c'était quoi la question?
Posté le 12-06-2002 à 17:44:15  profilanswer
 

merde g encore oublié mon masque...


---------------
Narf... It is broken...
n°157983
benou
Posté le 12-06-2002 à 17:45:08  profilanswer
 

mais ditent donc, ca se fait pas de détérer les topics morts !


Message édité par benou le 06-12-2002 à 17:45:17
n°158001
El Scorcho
Posté le 12-06-2002 à 18:01:12  profilanswer
 

Si ça intéresse tjs qqun les chaines en Ada, mon prof m'avait conseillé d'utiliser ça :
http://perso.wanadoo.fr/adalog/com [...] ble_String


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Ada

  Problème de chaine en ADA

 

Sujets relatifs
Probleme avec DirectX et VC++5.0, help me !![C] Comment comment mettre un caractere de fin de chaine a la fin ?
[C] Problème avec union REGS et C++ Builder 5 !Probleme de lien .... ../ ? ou ../../ ? ou ../../../ ?
[Interbase] Problème curieux sur les exceptionsprobleme d optimisation
[VB] Petits problème qui me bloque depuis lgtsProbleme de visible/invisible sur un controle (VC++)
Tj Pb d extraction de chaine lolPb de VB tt bete sur extraction de chaine
Plus de sujets relatifs à : Problème de chaine en ADA


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