Chaine(date) peut mieux faire

Tombe dessus par hasard :
<code 4D>
C_DATE($dt)
C_LONGINT($end;$i)
C_TEXT($msg;$aaa)
$dt:=Current date
$end:=Tickcount+60
$i:=0
Repeat
$i:=$i+1
$aaa:=String(Day of($dt);“00”)+"/"+String(Month of($dt);“00”)+"/"+String(Year of($dt);“0000”)
Until (Tickcount>$end)
$msg:=String($i)
$end:=Tickcount+60
$i:=0
Repeat
$i:=$i+1
$aaa:=String($dt)
Until (Tickcount>$end)
$msg:=$msg+"\r"+String($i)
ALERT($msg)
</code 4D>

interprete 55000 vs 5280 ~ 10 fois plus rapide
compile 210900 vs 5800 ~ 36 fois plus rapide

Une fonction qui va moins vite que la combinaison de 6 autres, c’est pas tres enthousiasmant. Bon, c’est toujours moins dramatique que Split string qui flirte dangereusement avec la roue d’la mort.

Bonjour,

J’ai peut-etre une explication�c

Je suis pas alle voir le code C++ qui est derriere, mais la fonction string(date) renvoie une date basee sur les preferences systeme (dd/mm/yy ou mm/dd/yyyy, etc.) alors que toutes les autres fonctions de votre exemple ont des actions autonomes�c

Pas de conclusions hatives donc :slight_smile:

Roland Lannuzel

Bonjour Roland,
c’est vrai, je suis pas cool la ; disons que sur des traitements de conversion massifs il vaut mieux contourner String(uneDate). Par contre, pour Split string, je trouve anormal qu’une aussi belle fonction supporte aussi mal la montee en charge.

Bonjour Arnaud,

: Arnaud DE MONTARD

Par contre, pour Split string, je trouve anormal qu’une aussi belle
fonction supporte aussi mal la montee en charge.
Sur quelle version de 4D ?
Des optimisations ont ete faites en v17R6 permettant de gros gains de performance sur des textes volumineux.
Cordialement,
Damien

Bonjour Damien,
merci de l’info, c’est vraiment une fonction dont je n’ai aucune envie de me passer, tres attendue et parfaite du point de vue parametres E/S. En l’etat je l’utilise quand la volumetrie le permet mais je regarderai - encore un peu englue dans la 17r4 (mais ca se soigne).