...
1- Voilà une question de fond sur la "bonne façon" de programmer. Avec l'expérience, j'en suis arrivé à la conclusion que le plus important n'était pas de gagner du temps lors de l'écriture ou de la lecture du programme. Ce qui fait perdre le plus de temps sur le long terme, c'est de corriger les problèmes et de pouvoir faire évoluer le code d'origine. Voilà pourquoi, je suis absolument partisan d'un code qui soit le plus "découpé" possible, organisé en partie distinctes... et commenté, bien sûr ! Si ta question concernait la performance de la machine (et non pas du programmeur) ne te prend pas trop le choux. PureBasic est super optimisé et le temps consacré à l'appel de procédure est vraiment trés trés court. Dans la majorité de cas, tu n'obtiendra pas de différence de performance significative entre 2 programmes écrits des deux façons que tu évoque.
2- 1024 octets, de nos jours, représentent vraiment trés peu de chose en mémoire. L'avantage des donnés qui résident en mémoire c'est qu'on peut y accéder trés trés vite comparé à un accés sur disque. Si tu cherche la performance, c'est donc la voie que tu doit choisir.
3- Mid, left et right permettent d'accéder à des morceaux de la chaine en mémoire. Pour écrire, il suffit de recomposer la chaine avec des tronçons pris à différents endroit. Par exemple, pour remplacer le mot "voiture" par "automobile" :
pos = findstring(ChaineDepart$,"voiture",1)
ChaineaArrive$=left(ChaineDepart,pos-1)+"automobile"+right(ChaineDepart,len(ChaineDepart)-pos-len("voiture"))
2- 1024 octets, de nos jours, représentent vraiment trés peu de chose en mémoire. L'avantage des donnés qui résident en mémoire c'est qu'on peut y accéder trés trés vite comparé à un accés sur disque. Si tu cherche la performance, c'est donc la voie que tu doit choisir.
3- Mid, left et right permettent d'accéder à des morceaux de la chaine en mémoire. Pour écrire, il suffit de recomposer la chaine avec des tronçons pris à différents endroit. Par exemple, pour remplacer le mot "voiture" par "automobile" :
pos = findstring(ChaineDepart$,"voiture",1)
ChaineaArrive$=left(ChaineDepart,pos-1)+"automobile"+right(ChaineDepart,len(ChaineDepart)-pos-len("voiture"))
Tout obstacle est un point d'appui potentiel.
Bibliothèques PureBasic et autres codes à télécharger :https://www.editions-humanis.com/downlo ... ads_FR.htm
Bibliothèques PureBasic et autres codes à télécharger :https://www.editions-humanis.com/downlo ... ads_FR.htm
Code : Tout sélectionner
;/1ère solution --> Remplace le 1 par 0 sur le premier 1 trouvé
chaine$="0010000000000000000000000000000000"
pos = FindString(chaine$, "1", 1)
chaine$=Left(chaine$,pos-1)+"0"+Right(chaine$,Len(chaine$)-pos)
Debug chaine$
;/2ème solution --> Remplace le 1 par 0 sur tous les 1 trouvés
chaine$="0010000000000000000000000000000000"
chaine$ = ReplaceString(chaine$, "1", "0" , 1 )
Debug chaine$
;/3ème solution --> Remplace le 1 par 0 en sachant que l'on connait la position du 1
chaine$="0010000000000000000000000000000000"
*pointeur=@chaine$
PokeB(*pointeur+2, 48) ; 48 est la valeur ASCII de 0
Debug chaine$