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

  FORUM HardWare.fr
  Programmation
  Divers

  [Fortran 90] Longueur de chaine dans un format... Help plz

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Fortran 90] Longueur de chaine dans un format... Help plz

n°552500
Coockie
koin koin....
Posté le 28-10-2003 à 13:38:54  profilanswer
 

Je veux definir un format d'ecriture. Dans ce format je veux inserer une chaine de caractere dont la taille peut varier...
 
Je voudrais que l'affichage de la chaine s'adapte à la longueur de celle ci:
 
print '("Date de stage :",1x,"du",1x,I2,1X,"au",1x,I2,1x,A10,1X,I4)',j1,j2,mois,a
 
Ici le A10 permet l'écriture d'une chaine de 10 caracteres. Je peux obtenir la longueur de la chaine mais je n'arrive pas à l'integer dans le format...  :(  
 
 
m = len_trim(mois)
 
print '("Date de stage :",1x,"du",1x,I2,1X,"au",1x,I2,1x,Am,1X,I4)',j1,j2,mois,a
 
Ca par exemple ne marche pas..
Help plz  :jap:  

mood
Publicité
Posté le 28-10-2003 à 13:38:54  profilanswer
 

n°552684
Carbon_14
Posté le 28-10-2003 à 15:35:32  profilanswer
 

Vieux souvenir le Fortran...
Si pas de solution, faudrait avoir autant de formats que de cas
,"au",1x,I2,1x,A7,1X,I4)'
,"au",1x,I2,1x,A8,1X,I4)'
,"au",1x,I2,1x,A9,1X,I4)'
et faire branchement selon
 
ou essayer, sais pas si ça marcherait, comme en C, faire une chaîne format
sprintf(szChne, "%f bidule %u", ...);
on peut le remplacer par  
sprintf(szChne, szChneFormat, ...); avec szChneFormat une chaîne de caractères qui contiendrait ici {"%f bidule %u"}.
Si la fonction l'admet, c'est gagné.
 
NB : des champs alignés (pour le mois), c'est pas mal non plus, ça fait "ancienne mode".

n°552837
Coockie
koin koin....
Posté le 28-10-2003 à 17:15:15  profilanswer
 

CARBON_14 a écrit :

Vieux souvenir le Fortran...
Si pas de solution, faudrait avoir autant de formats que de cas
,"au",1x,I2,1x,A7,1X,I4)'
,"au",1x,I2,1x,A8,1X,I4)'
,"au",1x,I2,1x,A9,1X,I4)'
et faire branchement selon
 
ou essayer, sais pas si ça marcherait, comme en C, faire une chaîne format
sprintf(szChne, "%f bidule %u", ...);
on peut le remplacer par  
sprintf(szChne, szChneFormat, ...); avec szChneFormat une chaîne de caractères qui contiendrait ici {"%f bidule %u"}.
Si la fonction l'admet, c'est gagné.
 
NB : des champs alignés (pour le mois), c'est pas mal non plus, ça fait "ancienne mode".


 
Bon j'avais bien pensé à la première solution mais bon elle est un peu lourd qd même...
 
Pour la deuxième je ne comprend pas vriament bien ce que tu veux faire (faut m'escuser, newbee inside  ;)  )
 
Tu veux remplacer le "A10" par exemple par une chaine de caractere qui contiendrais A10 ??
 
Enfin bon j'ai bien l'impression qu'il ne va pas accepter autre chose que "A puis un entier".


Message édité par Coockie le 28-10-2003 à 17:15:37
n°553069
Carbon_14
Posté le 28-10-2003 à 22:58:00  profilanswer
 

C'est moins souple que le C alors...
S'il n'accepte PAS une chaîne en argument, c'est cuit.... Ca serait souple comme méthode.
En créant une chaîne "A9", il n'en veut pas à la place de A9 dans la définition du format ? On peut rêver....
Mes souvenirs sont vieux, vieux, ...(1978-1980)... Fortran 77 je crois (?) sur PDP7 DIGITAL puis UNIVAC.
 
EDIT : sinon, y a pas moyen (j'ai oublié) de concaténer chaînes, les fixes et la variable ?


Message édité par Carbon_14 le 28-10-2003 à 23:27:10
n°553360
Coockie
koin koin....
Posté le 29-10-2003 à 11:39:45  profilanswer
 

CARBON_14 a écrit :

C'est moins souple que le C alors...
S'il n'accepte PAS une chaîne en argument, c'est cuit.... Ca serait souple comme méthode.
En créant une chaîne "A9", il n'en veut pas à la place de A9 dans la définition du format ? On peut rêver....
Mes souvenirs sont vieux, vieux, ...(1978-1980)... Fortran 77 je crois (?) sur PDP7 DIGITAL puis UNIVAC.
 
EDIT : sinon, y a pas moyen (j'ai oublié) de concaténer chaînes, les fixes et la variable ?


 
Bien en attendant que j'essaye de comprendre ton histoire de concaténation là voilà comment je me suis débrouillé:
C'est pas forcement bau et court mais bon ca marche.
 
Le but était de redeclarer des chaines avec la bonne taille, donc j'ai fait la procedure suivante:
 

Code :
  1. program ecrire
  2. implicit none
  3. integer :: i,j,a,m,taille
  4. character(len=9) :: mois
  5. read*,i,j,a,mois
  6. taille = len_trim(mois)
  7. call bonne_taille(i,j,a,taille,mois)
  8. end
  9. subroutine bonne_taille (i,j,a,taille,mois)
  10. implicit none
  11. integer, intent(in) :: taille,i,j,a
  12. character(len=9), intent(in) :: mois
  13. character(len=taille) :: bon_mois
  14. bon_mois = mois
  15. print '("Date de stage :",1x,"du",1x,I2,1X,"au",1x,I2,1x,A,1X,I4)',i,j,bon_mois,a
  16. end

n°553446
Carbon_14
Posté le 29-10-2003 à 12:43:14  profilanswer
 

C'est la chaîne qui est ajustée, et non le format A qui est paramétré...
Pas mal.
 
NB : le Fortran a drolement évolué en syntaxe et possibilités. Le mien, on le perforait encore (j'ai gardé des cartes (obsolètes) !).

n°553510
Coockie
koin koin....
Posté le 29-10-2003 à 13:46:03  profilanswer
 

CARBON_14 a écrit :

C'est la chaîne qui est ajustée, et non le format A qui est paramétré...
Pas mal.
 
NB : le Fortran a drolement évolué en syntaxe et possibilités. Le mien, on le perforait encore (j'ai gardé des cartes (obsolètes) !).


 
Vi apparament c'est un tres vieux langage... Moi je travail sur le 90 mais il existe le 95 et même une version 2000 du langage je crois...
 
Enfin bon merci pour l'aide  ;)


Message édité par Coockie le 29-10-2003 à 13:46:22

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

  [Fortran 90] Longueur de chaine dans un format... Help plz

 

Sujets relatifs
[borland c++] Petite erreur de compil svp help .......[C++] Recherche d'une chaine dans un fichier
Format scanfComment déclare t on une chaine de caractere ?
Help, programmation en C du port parallele.httpsession java help please !!!!!
[help] barre de defilement non-standard...[closed](help) Pb de compatibilité pour macros
test d'une chaine de caractère?[VC++7] int en chaine de caractère :o/
Plus de sujets relatifs à : [Fortran 90] Longueur de chaine dans un format... Help plz


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