JulioDelphi
Messages postés2226Date d'inscriptiondimanche 5 octobre 2003StatutMembreDernière intervention18 novembre 201014 1 nov. 2006 à 19:05
ça roule, tu pourrais donner le lien a l'auteur en MP ? cette source va disparaitre. dsl pour lui
f0xi
Messages postés4205Date d'inscriptionsamedi 16 octobre 2004StatutModérateurDernière intervention12 mars 202235 1 nov. 2006 à 18:46
oui julio, ce genre de source serait mieux sur Codyx ... mais une meilleure fonction est deja presente dans les sources codyx, posted by me depuis un moment.
JulioDelphi
Messages postés2226Date d'inscriptiondimanche 5 octobre 2003StatutMembreDernière intervention18 novembre 201014 1 nov. 2006 à 11:19
je suis ok pour les performances execrables ^^ la boucle en est la cause, me trompe je ?
au fait, ce genre de code est à poster sur www.codyx.org, tu peux utiliser ton login/pass actuel pour le poster.
pourquoi le poster sur codyx ? et bien codes-sources regorge et degorge de mini-sources/-10 lignes de codes etc
>> Codyx est la "caisse moins de 10 articles" de codes-sources =)
cette source sera supprimée demain (01-11-06)
merci d'avance
f0xi
Messages postés4205Date d'inscriptionsamedi 16 octobre 2004StatutModérateurDernière intervention12 mars 202235 1 nov. 2006 à 02:10
Il existe une fonction identique dans les sources, qui fonctionne mieux, ( chainepos ).
ici ta fonction as des performances trop execrable, pour qu'elle puisse etre utilisée.
JulioDelphi
Messages postés2226Date d'inscriptiondimanche 5 octobre 2003StatutMembreDernière intervention18 novembre 201014 31 oct. 2006 à 19:25
yeeeees ok ça roule =)
donc les 3 "bugs" sont :
- si ma chaine fait plus de 255 caracteres > erreur de compilation
- si ma chaine commence par le caractere de séparation > décalage
- si ma chaine fini par le caractere de séparation > ne renvoie rien
allez hop au boulot
japee
Messages postés1727Date d'inscriptionvendredi 27 décembre 2002StatutModérateurDernière intervention 6 novembre 20218 31 oct. 2006 à 18:54
Voilà :
Function Extraire(carset: string; chaine: string; i: integer): string;
var
y:integer;
z:integer;
//chaineextraite:string;
begin
for y:=1 to i do
begin
z:=Pos(carset,chaine);
//chaineextraite:=Copy(chaine,1,z-1);
Result :=Copy(chaine,1,z-1);
Delete(chaine, 1,z);
end;
//Result:=chaineextraite;
end;
A + ;-)
JulioDelphi
Messages postés2226Date d'inscriptiondimanche 5 octobre 2003StatutMembreDernière intervention18 novembre 201014 31 oct. 2006 à 18:45
jappe : ha bon ? tu remplaces la ligne avant le delete ? a mon avis ya une couinnerie si tu fais ça =)
copie/colle moi la fonction complete avec ton remplacement
japee
Messages postés1727Date d'inscriptionvendredi 27 décembre 2002StatutModérateurDernière intervention 6 novembre 20218 31 oct. 2006 à 18:37
Salut,
Tu peux faire l'économie de la variable "chaineextraite" et écrire directement :
Result := Copy(chaine,1,z-1);
JulioDelphi
Messages postés2226Date d'inscriptiondimanche 5 octobre 2003StatutMembreDernière intervention18 novembre 201014 31 oct. 2006 à 15:21
idem pour char et cardinal ^^ je l'avais remplacé quand j'ai testé, et donc si la chaine ne se termine pas par le CARSET, rien n'est retourné, et si la chaine commence par CARSET, il y aura un décalage.
elguevel
Messages postés718Date d'inscriptionjeudi 19 décembre 2002StatutMembreDernière intervention22 novembre 20163 31 oct. 2006 à 15:14
J'ai pas le temps de tester là, mais j'aurai plutôt declaré :
Function Extraire ( Carset : Char; chaine : String; I : Cardinal ) : String;
Et à vu d'oeil si ta chaine ne se termine pas par le caractère separateur, et que tu demande à recupérer le dernière élément, ta fonction ne doit rien retourner.
Fait un zip avec un exemple, çà sera plus simpa :-)
Bon code, ++
JulioDelphi
Messages postés2226Date d'inscriptiondimanche 5 octobre 2003StatutMembreDernière intervention18 novembre 201014 31 oct. 2006 à 14:53
Fonctionne bien avec "test123" mais pas avec une phrase de 256 caractères. A modifier =)
1 nov. 2006 à 19:05
1 nov. 2006 à 18:46
1 nov. 2006 à 11:19
au fait, ce genre de code est à poster sur www.codyx.org, tu peux utiliser ton login/pass actuel pour le poster.
pourquoi le poster sur codyx ? et bien codes-sources regorge et degorge de mini-sources/-10 lignes de codes etc
>> Codyx est la "caisse moins de 10 articles" de codes-sources =)
cette source sera supprimée demain (01-11-06)
merci d'avance
1 nov. 2006 à 02:10
ici ta fonction as des performances trop execrable, pour qu'elle puisse etre utilisée.
31 oct. 2006 à 19:25
donc les 3 "bugs" sont :
- si ma chaine fait plus de 255 caracteres > erreur de compilation
- si ma chaine commence par le caractere de séparation > décalage
- si ma chaine fini par le caractere de séparation > ne renvoie rien
allez hop au boulot
31 oct. 2006 à 18:54
Function Extraire(carset: string; chaine: string; i: integer): string;
var
y:integer;
z:integer;
//chaineextraite:string;
begin
for y:=1 to i do
begin
z:=Pos(carset,chaine);
//chaineextraite:=Copy(chaine,1,z-1);
Result :=Copy(chaine,1,z-1);
Delete(chaine, 1,z);
end;
//Result:=chaineextraite;
end;
A + ;-)
31 oct. 2006 à 18:45
copie/colle moi la fonction complete avec ton remplacement
31 oct. 2006 à 18:37
Tu peux faire l'économie de la variable "chaineextraite" et écrire directement :
Result := Copy(chaine,1,z-1);
31 oct. 2006 à 15:21
31 oct. 2006 à 15:14
Function Extraire ( Carset : Char; chaine : String; I : Cardinal ) : String;
Et à vu d'oeil si ta chaine ne se termine pas par le caractère separateur, et que tu demande à recupérer le dernière élément, ta fonction ne doit rien retourner.
Fait un zip avec un exemple, çà sera plus simpa :-)
Bon code, ++
31 oct. 2006 à 14:53