Spacje z Literami

0

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.

0

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.

0
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;
0

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!

0
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

0

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'

0

no doobra.. zwracam honor :-] uehehe.. sie zbłaźniłem [wstyd] nom.. trudno :P wiec nie jestem mastah :D

0

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;
0

Nie rozumiesz :) wczesniej mialem full dziur w kodzie, dlatego tak wyszło :P trza było poprawić :d

0

Chyba ten twoj niby poprawiony kod nie zadziala :-P Sprawdz zanim cos napiszesz :-)

// działa działa, spokojna twoja rozczochrana - ŁF

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