StringReplace - Delphi/Pascal - Programmation
Marsh Posté le 28-11-2004 à 13:58:32
pour le flag, tu dois utiliser :
rfReplaceAll : remplace toutes les occurences. Si tu ne mets pas ce drapeau, seule la première occurence de la sous chaine sera remplacée.
rfIgnoreCase : Ce drapeau permet d'ignorer la casse de la chaine remplacée. Si tu ne mets pas ce drapeau, seule les chaines correspondant à la même casse seront remplacées.
Pour ta fonction, j'ai pas cherché encore mais je jette un oeil dès que j'ai le temps, sauf si entre temps le big boss antp trouve une solution
Marsh Posté le 28-11-2004 à 14:00:22
s := StringReplace(s, old, new, []);
à la place de [] tu peux mettre [rfReplaceAll] pour toutes les occurences, [rfReplaceAll, rfIgnoreCase] pour ne pas tenir compte de la casse, etc. Il y a pas un exemple dans l'aide ?
Pour ta fonction, outre le fait que ce ne soit pas très optimisé (:D) ni bien indenté, tu sembles avoir oublié que les chaînes commencent à 1 et non à 0
Marsh Posté le 28-11-2004 à 14:11:52
j'ai regardé antp, y'a pas d'exemple dans l'aide, y'a juste la description de la fonction et celle des flag mais pas d'exemple.
Marsh Posté le 28-11-2004 à 14:22:01
En effet, pas d'exemple... Bizarre. Peut-être que c'est dans l'aide de C++Builder alors (où là l'utilisation des flags est plus compliquée que dans Delphi)
Marsh Posté le 28-11-2004 à 22:39:02
Merci beaucoup!
Je savais pas que les chaînes commençant a 1 et non a 0, c'est bon a savoir.
Sinon oui il n'y a pas d'exemple dans l'aide c'est pour sa que je n'y arrivai pas, je comprenai pas tout a fait cette histoire de flag.
En tout cas merci beaucoup!
Marsh Posté le 28-11-2004 à 13:32:22
Voila, j'aimerai remplacé un caractère par un autre dans une chaine.
J'ai vu qu'il éxistait une fonction qui s'appelle string replace:
function StringReplace(const S, OldPattern, NewPattern: string; Flags: TReplaceFlags): string;
Seulement je n'arrive pas a me servir de cette fonction car je ne sais pas quoi mettre pour le TReplaceFlags...
Sinon, j'ai tenté de faire une fonction moi même:
Cette fonction marche bien quand C2 est une chaîne vide, mais lorsqu'elle contient quelque chose, j'obtien un Access Violation a cette ligne : if S[a]=C1 then
Voila, donc j'aimerai soit savoir comment marche StringReplace et encore mieux d'ou vient cet Access Violation qui me revien souvent
Merci d'avance !