Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Remplacement auto de caractères [ Archives / Texte ] (finipe)

dimanche 29 décembre 2002 à 12:01:08 | Remplacement auto de caractères

finipe

Bonjour à tous.

Il y a qques temps de ça, j'avais demandé un coup de pouce pour le problème suivant : remplacer automatiquement un caractère par un autre pendant la saisie d'une chaîne. On m'avait donné la fonction suivante, qui marche impeccable (c'est magique ! ) :

function Replace(sData: String; sSubstring: String; sNewsubstring: string): String;
var pos1:integer;
s2,res:string;
begin
s2:=sData;
pos1:=pos(sSubstring,s2);
res:='';
while (pos1<>0) do
begin
res:=res+copy(s2,1,pos1-1)+sNewsubstring;
s2:=copy(s2,pos1+length(sSubstring),length(s2)+1-(pos1+length(sSubstring))); //le fait sauf au dernier passage
pos1:=pos(sSubstring,s2);
end;
res:=res+s2;
Result:=res;
end;

Ensuite il suffit donc de placer une ligne du type...

name.Text := Replace(name.Text,' ','.');

... pendant un événement de type OnKeyPress pour remplacer automatiquement les espaces par des points.

Tout fonctionne très bien, sauf que maintenant je voudrais justement que le dernier caractère soit pris en compte, ce qui n'est pas le cas de cette fonction. J'ai beau essayer de trouver la combine, je capte pas bien la fonction déjà, donc je suis mal barré pour y arriver tout seul.

Un autre coup de pouce des programmateurs surdoués ?

Merci à vous et à +

-----------------------------------------------
"La liberté, c'est de pouvoir dire merde à tout le monde." (R. Dorgelès)

dimanche 29 décembre 2002 à 14:53:23 | Re : Remplacement auto de caractères

Delphiprog

Administrateur CodeS-SourceS
Il me semble aussi avoir proposé ceci :
"StringReplace renvoie une chaîne dans laquelle les occurrences d?une sous-chaîne sont remplacées par une autre sous-chaîne.

Unité : SysUtils

Catégorie : routines de gestion des chaînes

type
TReplaceFlags = set of (rfReplaceAll, rfIgnoreCase);
function StringReplace(const S, OldPattern, NewPattern: string; Flags: TReplaceFlags): string;

Description

StringReplace remplace dans une chaîne les occurrences d?une sous-chaîne, OldPattern, par une autre sous-chaîne, NewPattern. StringReplace considère que la chaîne peut contenir des caractères multi-octets.

Si le paramètre Flags n?inclut pas rfReplaceAll, StringReplace ne remplace que la première occurrence de OldPattern dans la chaîne S. Si le paramètre Flags inclut rfIgnoreCase, la comparaison ne tient pas compte de la casse."

Cà ne fonctionne pas ?
Comme l'unité SysUtils est incluse avec chaque fiche, ça ne consomme pas de mémoire que d'utiliser ce qui existe déjà !

May Delphi be with you


-------------------------------
Réponse au message :
-------------------------------

> Bonjour à tous.
>
> Il y a qques temps de ça, j'avais demandé un coup de pouce pour le problème suivant : remplacer automatiquement un caractère par un autre pendant la saisie d'une chaîne. On m'avait donné la fonction suivante, qui marche impeccable (c'est magique ! ) :
>
> function Replace(sData: String; sSubstring: String; sNewsubstring: string): String;
> var pos1:integer;
> s2,res:string;
> begin
> s2:=sData;
> pos1:=pos(sSubstring,s2);
> res:='';
> while (pos1<>0) do
> begin
> res:=res+copy(s2,1,pos1-1)+sNewsubstring;
> s2:=copy(s2,pos1+length(sSubstring),length(s2)+1-(pos1+length(sSubstring))); //le fait sauf au dernier passage
> pos1:=pos(sSubstring,s2);
> end;
> res:=res+s2;
> Result:=res;
> end;
>
> Ensuite il suffit donc de placer une ligne du type...
>
> name.Text := Replace(name.Text,' ','.');
>
> ... pendant un événement de type OnKeyPress pour remplacer automatiquement les espaces par des points.
>
> Tout fonctionne très bien, sauf que maintenant je voudrais justement que le dernier caractère soit pris en compte, ce qui n'est pas le cas de cette fonction. J'ai beau essayer de trouver la combine, je capte pas bien la fonction déjà, donc je suis mal barré pour y arriver tout seul.
>
> Un autre coup de pouce des programmateurs surdoués ?
>
> Merci à vous et à +
>
> -----------------------------------------------
> "La liberté, c'est de pouvoir dire merde à tout le monde." (R. Dorgelès)



Cette discussion est classé dans : string, res, s2, pos1, ssubstring


Répondre à ce message

Sujets en rapport avec ce message

Sous Class [ par delphi ] Salut je voudrais savoir comment passer une sous class avec delphi ??par exemple avec vb ça se fait comme ça :Public Declare Function ShowWindow Lib " lancement d'un fichier au démarrage de l'application [ par Pierre ] Comment est-il possible, en Delphi, de lancer un fichier (.txt par exemple comme je l'indique ci-après) au démarrage sans que la TForm apparaisse ? Av limitation de sendtext ? [ par Xavier ] Bonjour,Comme la fonction sendtext prend en parametre un string et sachant qu'un string peut faire 2 Mo, pensez-vous qu'il est raisonnable d'utiliser Pb avec TListView et TListItem [ par Biose ] Salut à tous, Voilà mon problème, je me sert d'une ListView et à ma premiere action, je rempli ma premiere colonne ://ici "ori" à une valeur String et Prendre les deux derniers caractères d'une string... [ par ELECTRORESiSTiK ] Salut,Pourriez-vous m'expliquer comment prendre les deux dernier caractères d'une string ?Merci d'avance!Bonne Soirée String déjà existante... [ par finipe ] Bonjour à tous ! J'ai deux problèmes à vous soumettre :- Dans un programme je passe des items d'une combobox à une listbox, d'un simple clique de bout String et Retour chariot [ par lomig ] J'ai une chaine de caractere constituée de deux mots que je veuxséparer par un retour chariot et ensuite insérer cette chaine dans unfichier texte. Si Impression String [ par teamours ] J'aurais voulu savoir si tu connaissais le moyen d'imprimer le contnue de cet editbox Copier un Fichier dans une string [ par lomig ] Question a la con: comment fait-on pour copier un fichier (texte) dans une chaine (string)?? string de plus de 255 caracteres?:( [ par aliong ] Bonjour!comme vous le remarkerer je suis newbies donc ne m'en voulez po pour cette kestion ki va etre pour la plupart d'entre vous de la rigolade alor


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,281 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.