Kwai chang caine a écrit :
@DOBRO
Y'a plein de truc qui m'interloque..si je peux regarder dans le mega copyright
Et aussi
Path$= "\" +Path$ ==>
Path$+ "\"
c'est plus lisible..on est pas obligé de faire des lignes a ralonge comme CROCRO
j'ai deja répondu maintes fois a ça !
c'est pas plus lisible, du tout meme !
tu te fie trop a Purebasic ! dans certain langage Basic le fait d'ecrire
Path$+ "\" ; signifie qu'a la variable path$ tu ajoute "\" , MAIS NE SIGNIFIE PAS que tu Altere la Variable Path$ !!
alors que la ligne :
Path$=Path$ +"\" ; signifie bien qu'au contenu de la variable Path$ on ajoute "\" , donc il y a Altération du contenu de la variable !
je sais qu'en Purebasic c'est optionel , mais question visibilité je prefere ma syntaxe , meme si elle est un poil plus longue
il peut y avoir confusion pour d'autres langage ou ecrire :
a+1 , n'as rien a voir avec : a=a+1 !!!

d'ailleurs en C il existe le signe == pour faire la difference ...
Deja je crois que mid (Path$,1,1) = Left(Path$,1)
oui c'est pareil , et ça change rien
je te file une solution , j'ai jamais dis qu'elle etait optimisée ..
Ca c'est quedal...mais pourquoi reverser...si ce n'est pour les impots...je comprend pas pourquoi ???
simplement parce que cette soluce m'est venu plus simplement a la tete , le Basic permet plein de façon de faire différente
comme je te l'ai dis , j'ai pas cherché l'optimisation, mais juste que ça fonctionne
Et "Aut'chose" plus "techenique"...
Okay tu recuperes le pointeur tu copies son adresse dans un long MEM
Mais resoud tu le bleme de mémoire ??? si tu es dans une DLL qui a sa propre table d'allocation mémoire, comment peut elle savoir ce qu'a prevu ton programme qui lui envoie
Tu fait un POKES ça n'empeche pas que tu ecrase peut etre "queque" chose car c'est la DLL qui le fait..pas le programme
Je pense que ta soluce ne marche qu'en Include dans le code source de l'appli, pas avec un process exterieur...mais bon encore une fois, j'suis loin d'etre un expert

je crois que tu te pose trop de question
si tu regarde bien ceci :
Code : Tout sélectionner
if mid(Path$,1,1) <>"\"
Path$="\"+Path$
Path$=ReverseString(Path$)
pokes(mem,path$)
endif
je reforme une variable chaine Path$ en ajoutant le "\"
puis je poke CETTE variable a l'adresse de l'autre
du coup l'autre se trouve reformaté a la taille de ma nouvelle chaine !!
la preuve le Debug montre bien le changement , il n'y a pas de plantage ..
je suppose que le passage d'adresse de variable par procedure (donc par la pile)
gere le truc , sinon , on ne peut pas utiliser la commande Poke dans aucun langage !!
le ramasse miette doit faire son boulot ... (pour KCC : >
http://fr.wikipedia.org/wiki/Ramasse-mi ... matique%29 )
Faudrai que Fred nous confirme ça !!!
ps: la fonction Poke contient le parametre longueur ; il est ecrit ans la Doc :
Note: quand le paramètre 'Options' est spécifié, la 'Longueur' peut être mise à -1, pour écrire toute la chaîne de caractère 'Texte$'.
donc c'est bien que Fred a prévu le coup
