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

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

Функции работы со строковыми типами в Delphi [D7, XP]


Slim ©   (2007-11-08 09:18:00) 

РЕбята, привет! Не могу найти функцию которая бы отрезала от строки слева (справа) первые например 5 символов.Или может есть функция которая бы резала предложение по пробелам не более N символов???
Спасибо!


umbra   (2007-11-08 12:02:00) [1]


> Не могу найти функцию которая бы отрезала от строки слева
> (справа) первые например 5 символов.

LeftStr, RightStr, MidStr


Anatoly Podgoretsky   (2007-11-08 12:01:00) [2]

LeftStr/RightStr/Trim


Slim   (2007-11-08 09:32:00) [3]

Спасибо, то что НАДО!


Lamer666   (2007-11-08 09:29:00) [4]

Спасибо, то что НАДО!


Palladin   (2007-11-08 09:27:00) [5]

что то я лишнего повырезал много :)


Procedure vtParseWords(Const s:String;p_theWords:TStringList;Const p_strAddChars:String='';p_nMinWordLen:Integer=3);
Var
 i,n,nFrom:Integer;
Begin
 nFrom:=1;
 For i:=1 to Length(s) Do
  If (Not (s[i] in Letters)) and (Pos(s[i],p_strAddChars)=0) Then
   Begin
    If (nFrom<>-1) and (i-nFrom>=p_nMinWordLen) Then
      p_theWords.Add(Copy(s,nFrom,i-nFrom),n);
    nFrom:=-1;
   End Else If nFrom=-1 Then nFrom:=i;
 If (nFrom<>-1) and (Length(s)-nFrom>=p_nMinWordLen) Then
  p_theWords.Add(Copy(s,nFrom,Length(s)));
End;


korneley   (2007-11-08 09:25:00) [6]

A
>  function Copy(S; Index, Count: Integer): string;

не устроит? Или надо обязательно"отрезать"? Тогда
procedure Delete(var S: string; Index, Count:Integer);
из System


Palladin   (2007-11-08 09:23:00) [7]

Letters это множество всех допустимых в слове символов


Сергей М.   (2007-11-08 09:22:00) [8]

Что значит "отрезала" ?


Palladin   (2007-11-08 09:22:00) [9]

слева copy
справа можно и setlength

Procedure vtParseWords(Const s:String;p_theWords:TStringList;Const p_strAddChars:String='';p_nMinWordLen:Integer=3);
Var
Word:String;
i,n,nFrom:Integer;
Begin
nFrom:=1;
For i:=1 to Length(s) Do
 If (Not (s[i] in Letters)) and (Pos(s[i],p_strAddChars)=0) Then
  Begin
   If (nFrom<>-1) and (i-nFrom>=p_nMinWordLen) Then p_theWords.Add(Word);
   nFrom:=-1;
  End Else If nFrom=-1 Then nFrom:=i;
If (nFrom<>-1) and (length(s)-nFrom>=p_nMinWordLen) and Then p_theWords.Add(Word,n);
End;


Наверх

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