Bonjour,
Je cherche à parser une chaîne de caractère dont la principale caractéristique est d'être un nombre décimal est d'avoir décomposé cette chaîne pour avoir deux entiers.
Exemple:
Sur le principe c'est un split, j'ai cherché aussi du côté de sscanf et j'arrive à cette conclusion
Code : Sélectionner tout - Visualiser dans une fenêtre à part "3.14" -> x=3 et y=14
Seulement c'est lent, l'objectif est de transformer cette subroutine en une fonction utilisable vers python. Quand je compare les fonctions split et int à ma fonction fortran, je suis 2 fois plus lent. C'est pourquoi je viens vous demander s'il y a plus efficace comme méthode...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 program test character(len=4) :: t="3.14" integer :: a, b call str(t, a, b) print*, a print*, b contains subroutine str(n, x, y) character(len=*), intent(in) :: n integer, intent(out) :: x, y integer :: ind ind = index(n, '.') read(n(1:ind-1), *) x read(n(ind+1:len_trim(n)), *) y end subroutine str end program test
Merci par avance.
Partager