Bonjour,
Je cherche (mais ne trouve pas) à mettre en majuscule chaque premiere lettre des mots se trouvant dans un texte.
ex: je cherche sans trouver. deviendrait
Je Cherche Sans Trouver.
André
Bonjour,
Je cherche (mais ne trouve pas) à mettre en majuscule chaque premiere lettre des mots se trouvant dans un texte.
ex: je cherche sans trouver. deviendrait
Je Cherche Sans Trouver.
André
Je crois que tu vas être obligé de le faire 'à la main'. Style, pour chaque string :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 sTemp := upCase(sTemp[1])+copy(stemp,2,length(sTemp)-1);
Utilises la fonction pos(' ',ligne) pour detecter les espaces contenu dans le texte.
En gros à chaque espace rencontré, tu coupes ta chaine. tu ajoutes une Majuscule à chaque fragment.
Tu codes une fonction style:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 type TStringsArray = array of string; function Explode(txt: string; delimit: char): TStringsArray; var i: integer; deb: integer; idx: integer; begin i := 1; deb := 1; idx := 0; txt := Trim(txt); SetLength(Result,0); while (i <= length(txt)) do begin if (txt[i] = delimit) then begin SetLength(Result, idx +1); Result[idx] := copy(txt, deb, i - deb); deb := i+1; inc(idx); end; inc(i); end; if i <> deb then begin SetLength(Result, idx +1); Result[idx] := copy(txt, deb, length(txt)); end; end;
Merci pour vos réponses...
J'avais déja testé la fonction pos(' ',ligne) mais sans résultat convainquant.
Pouvez vous me développer un peu vos idées car je n'ai pas le niveau me permetant de rebondir sur vos début.
Merci,
André
Bon si on considère que tout ton texte est dans une string sText :
...bon ni testé ni optimisé...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 sText[1]:=Uppercase(sText[1]); for iBcl := 2 to length(sText) do begin if sText[iBcl-1]=' ' then if sText[iBcl] in ['a'..'z'] then sText[iBcl]:=UpperCase[iBcl]; end;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 function ConvertFirstChar(sText : String) : String; var i : integer; sTmp : String; begin Result := ''; With TStringList.Create do try Text := sText; Text := StringReplace(Text,' ',#13#10,[rfReplaceAll]); for i := 0 to count -1 do begin sTmp := Strings[i]; if Trim(sTmp) <> '' then begin sTmp[1] := UpCase(sTmp[1]); Strings[i] := sTmp; end; end; Text := StringReplace(Text,#13#10,' ',[rfReplaceAll]); Result := Trim(Text); finally free; end; end;
Modérateur Delphi
Le guide du bon forumeur :
- Les règles du forum tu liras
- La FAQ et les tutoriels tu consulteras
- La fonction Recherche tu utiliseras
- Google tu vénèreras
__________
Rayek World : Youtube Facebook
=> Malatar :Beau code, par contre si il y a des #13#10 dans son texte ça va les détruire.
Super !!!
ça fonctionne impec.
Il me reste à étudier le code pour bien le comprendre.
Un grand merci à tous![]()
André
Partager