![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Функции работы со строковыми типами в 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;