...

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Psycode
Messages : 131
Inscription : lun. 23/août/2004 18:47
Localisation : Jupiter ?

...

Message par Psycode »

...
Dernière modification par Psycode le ven. 03/sept./2004 17:04, modifié 3 fois.
Avatar de l’utilisateur
ZapMan
Messages : 460
Inscription : ven. 13/févr./2004 23:14
Localisation : France
Contact :

Message par ZapMan »

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"))
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
Psycode
Messages : 131
Inscription : lun. 23/août/2004 18:47
Localisation : Jupiter ?

Message par Psycode »

...
Dernière modification par Psycode le ven. 03/sept./2004 17:05, modifié 1 fois.
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message par nico »

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$
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

le truc c'est que t'as qu'à te coder une fonction qui gere ca..
mi je ferais un mélange de PB et d'assembleur...

Dri
Répondre