[Delphi] Algorytm

0

Jak zrobić taki algorytm że po zaznaczeniu tekstu w richeditcie i kliknięciu(np.) buttona zaznaczony tekst konwertuje sie na Jak W Tytule?!?!
Zaznaczony tekst :
Ala ma kota a kot ma ale.

Powinło wyjść :
Ala Ma Kota A Kot Ma Ale.

a co do Jak w zdaniu :

ala ma kota. kot ma ale

Ala ma kota. Kot ma ale

Edytory które mają te funkcje niemają źródła [glowa]

0

może tak:

lastletter:=false;
for j:=1 to Length(s) do begin
if s[j] in litery then begin
if not lastletter then s[j]:=AnsiUpperCase(s[j]);
lastletter:=true
end else lastletter:=false
end;

0

Niedziaaałaaaaaaaa:(

Po małej przeróbce po wpisaniu aa aa otrzymuje aa aaaa aaaa aaaa aaaa aa

0

lastletter:=false;
for j:=1 to Length(s) do begin
if s[j] in litery then begin
if not lastletter then s[j]:=[b]duza_litara_z/b;
lastletter:=true
end else lastletter:=false
end;

0

Nadal wyżuca błąd przy if s[j] in litery then begin

Możesz podać całą procedure?

0

Nadal wyżuca błąd przy if s[j] in litery then begin

To nie był dokłądny kod.
s[j] in litery znaczy mniej więcej:

s[j] in ['a'..'z', 'A'..'Z', 'ą', 'Ą']

to litery tylko tak napisałem :P

0

aaaaaaaaaaaaaaaaaaaaaaaaaaaaa :)
oja jeszcze trzeba zrobić jak w zdaniu:(

0

Wcale się nie namęczyłem ;)

var
s:string;
j:integer;
lastletter: boolean;
begin
s:=editor.seltext;
lastletter:=false;
for j:=1 to Length(s) do begin
if s[j] in ['a'..'z','A','Z','Ą','ą','ę','Ę','Ó','ó','Ł','ł','ż','Ż','Ź','ź','ć','Ć','ń','Ń'] then begin
if not lastletter then s[j]:=UpCase(s[j]);
lastletter:=true
end else begin
if (s[j]='.') then
lastletter:=false
else
lastletter:=true;
end;
end;
editor.seltext:=s;

P.S. To działa jeśli zdanie wygląda tak

"niebo jest niebieskie.czasami czarne",

a nie działa jeśli txt wygląda tak

"niebo jest niebieskie. czasami czarne"

0

^^^^^^^^^^^^^^^^ To napisałem Ja tylko ciągle zapominam się logować. qrde! a jeśli chcesz aby działało możesz użyć funkcji zamieniającej ". " na "." ;)

0

var
s:string;
j:integer;
[b]dot: boolean;[/b]
begin
s:=editor.seltext;
[b]dot:=true;[/b]
for j:=1 to Length(s) do begin
if s[j] in ['a'..'z','A','Z','Ą','ą','ę','Ę','Ó','ó','Ł','ł','ż','Ż','Ź','ź','ć','Ć','ń','Ń'] then begin
if [b]dot[/b] then s[j]:=UpCase(s[j]); [i]//napisz własne upcase, bo standardowe nie działa na pl litery[/i]
[b]dot:=false[/b]
end else if (s[j]='.') then [b]dot:=true[/b]
end;
editor.seltext:=s;
end;

Może tak??

1 użytkowników online, w tym zalogowanych: 0, gości: 1