Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

function для точки


mangoost ©   (2005-08-02 03:25:00) 

шас хочу написать редактор,и там задумался над одной фукцией.при нажатие на кнопку ,после всех точек на RichEdit-е написат толко первую букву большым.очень прошу помочь в этом мне! (извеняюсь за транслит)


pasha_golub   (2005-08-03 04:34:00) [1]

Eraser ©   (03.08.05 02:06) [5]
Угу, лучше... как же... Тупее. Не хотят головой думать.


mangoost   (2005-08-03 02:41:00) [2]

pasib mujiki :)


Eraser   (2005-08-03 02:06:00) [3]

Джо ©   (03.08.05 01:45) [4]

Респект. Если бы все отвечали как вы сегодня, мир был бы лучше :-)


Джо   (2005-08-03 01:45:00) [4]

Держи, второклассник :-)

function MakeUpperAfterDot (const AString: string): string;
var
 I,
 State: Integer;
begin
 Result := AString;
 I := 1;

 // первую букву текста тоже сделать заглавной
 // если нет, установить в 0
 State := 1;

 while I < Length(Result) do
 begin
   case Result[I] of
     '.': State := 1;
     ' ',#13,#10: ; //do nothing - нейтральные разделители
     else
       if State = 1 then
       begin
         Result[I] := ANSIUpperCase((Result[I]))[1];
         State := 0
       end;
   end;
   Inc (I);
 end
end;

Пример:

procedure TForm1.Button1Click(Sender: TObject);
begin
 Memo1.Lines.Text := MakeUpperAfterDot(Memo1.Lines.Text);
end;


mangoost   (2005-08-03 01:24:00) [5]

a mne vot eto i nado. chtob funksiya smoqla posle tochki napisat bukvi bolshimi. esli daje mejdu tochkoy i slovom est probel.


mangoost   (2005-08-03 01:23:00) [6]

a mne vot eto i nado. chtob funksiya smoqla posle tochki napisat bukvi bolshimi. esli daje mejdu tochkoy i slovom est probel.


pasha_golub   (2005-08-02 04:50:00) [7]

var Prev: char;
begin
Prev := #0;
for i := 2 to length(RichEdit1.Lines.Text)
begin
 Prev := RichEdit1.Lines.Text[i-1];
 If Prev = '.' then
  RichEdit1.Lines.Text[i] := Uppercase(RichEdit1.Lines.Text);
end;

end;

ЗЫ Писал пянный, посему баги возможны. Вернее, обязательны. Однако надеюсь мысль ясна. а-а, и работает, только если после точек сразу идет слово. Пробел нужно тоже учитывать. И вообще, зверь, задачка для второго класса. Чего ты уважаемых пацанов напрягаешь? ;0)


Наверх

Титульная страница Поиск, карта сайта Написать письмо