Jak można pozamieniać ciąg znaków typu:
"coś mi nie idzie"
na typ:
"Coś Mi Nie Idzie"
Trochę się już męczyłem z tym ale jeśli ktoś pomoże, <ort>zgóry</ort> dzięki.
Rozdzielanie stringa na tablicę słów było już kiedyś, w kilku odmianach. To jest link do jednej z nich, trochę zmienisz i jest okej. A potem zamieniasz pierwszy znak z każdego wyrazu na duży (UpCase, a do polskich literek AnsiUpperCase), a potem łączysz tablicę znów w stringa, wstawiając spacje pomiędzy słowa.
function JakasTam(s: string): string;
var
i: Integer;
begin
s := AnsiLowerCase(s);
s[1] := AnsiUpperCase(string(s[1]))[1];
for i := 1 to Length(s) - 1 do
begin
if (s[i] = ' ') and (i < Length(s)) then s[i+1] := AnsiUpperCase(string(s[i+1]))[1];
if (s[i] = #13) and (i < Length(s)) then s[i+2] := AnsiUpperCase(string(s[i+2]))[1];
end;
Result := s;
end;
ort! ort!!
function lol(s:string):string;
var SL:Tstringlist;ss:string;i:integer;
begin
sl:=tstringlist.create;
sl.text:=stringreplace(s,' ',#13#10,[rfreplaceall]);
for i:=0 to sl.count-1 do
begin
ss:=sl.strings[i];
if trim(ss)<>'' then ss:=upcase(ss[1])+copy(ss,2,length(ss));
sl.strings[i]:=ss;
end;
result:=trimright(stringreplace(sl.text,#13#10,' ',[rfreplaceall]));//mozesz zrobic bez trimright tylko usun ostatni znak
sl.free;
end;
ort!ort!
procedure TitleCase(var s:string);
var
i: integer;
begin
if Length(s) > 0 then
begin
s[1] := UpCase(s[1]);
for i:= 1 to Length(s)-1 do
if s[i]=' ' then
s[i+1]:=UpCase(s[i+1]);
end;
end;
i kto jest mastah? [hurra]
//poprawilem.. :P
Kto jest Mastah?? Ty chyba nie ty Procedura ktora zwraca wartosc typu string?? Tego jeszcze nie slyszalem A sprawdz co bedzie na takim stringu 'ąaa łll ęee śss ćcc óoo ńnn żzz źxx'
no doobra.. zwracam honor :-] uehehe.. sie zbłaźniłem [wstyd] nom.. trudno :P wiec nie jestem mastah :D
no doobra.. zwracam honor :-] uehehe.. sie zbłaźniłem [wstyd] nom.. trudno :P wiec nie jestem mastah :D
zbłaźniłeś? kod jest ok, tylko kilka małych poprawek:
function TitleCase(s:string) : string;
var
i: integer;
begin
if s <> '' then
begin
s[1] := AnsiUpperCase(s[1])[1];
for i:= 1 to Length(s)-1 do
if s[i] in [#10,#32] then s[i+1]:=AnsiUpperCase(s[i+1])[1];
end;
result := s
end;
Nie rozumiesz :) wczesniej mialem full dziur w kodzie, dlatego tak wyszło :P trza było poprawić :d
Chyba ten twoj niby poprawiony kod nie zadziala :-P Sprawdz zanim cos napiszesz :-)
// działa działa, spokojna twoja rozczochrana - ŁF