Le téléchargement des pièces jointes est limité aux membres Veuillez vous identifier ou vous inscrire si vous n'avez pas encore de compte ...
Description
Pour renverser une chaîne de caractères, on peut employer une fonction écrite en FoxPro avec une boucle. Cela a le désavantage d'être lent a cause des opérations sur la chaine ( StringReverse_Slow() )
Une solution est d'employer une fonction api. Et on le fait d'une manière transparente
La première fois qu'on appelle StringReverse(), c'est la fonction vfp qui sera appelée. Celle-ci va déclarer une fonction api qui, une fois déclarée, sera toujours appelée directement au lieu de la fonction vfp. En bref, la fonction vfp ne sera executée qu'une fois
Une boucle de 1 a 1000000
14 sec: StringReverse_Slow(m.s)
1.8 sec: StringReverse(m.s)
&& Si la chaîne risque de contenir des hex 0x00 il faut prendre un autre train
6.6 sec : StringReverseX(m.s)
Code source :
local s
s = 'fedcba987654210'
? StringReverse(m.s) && 012456789abcdef
*-------------------------------------------------------------------------- function StringReverse(s)
declarestring _strrev in msvcrt.dllas StringReverse string@