Code: |
//Функция возвращающая N-ое слово в строке //Если N=0, то функция возвращает подстоку начиная с первого разделителя function GetWord(str:string;n:word;sep:char):string; var i,space,l,j:integer; buf:string; begin l:=length(str); if n=0thenbegin//особый параметр j:=pos(GetWord(str,2,sep),str); GetWord:=copy(str,j,l-j+1); exit end; space:=0; i:=0; while (space<>(n-1))and(i<=l) do begin i:=i+1; if str[i]=sep then space:=space+1 end; i:=i+1; buf:=''; while (i<=l)and(str[i]<>sep) do begin buf:=buf+str[i]; i:=i+1 end; GetWord:=buf; end; |
Автор: TP@MB@Y
Взято с Vingrad ruhttps://forum.vingrad
Code: |
function GetToken(aString, SepChar: string; TokenNum: Byte): string; { параметры: aString : полная строка
SepChar : единственный символ, служащий разделителем между словами (подстроками) TokenNum: номер требуемого слова (подстроки)) result : искомое слово или пустая строка, если количество слов
меньше значения 'TokenNum' } var Token: string; StrLen: Byte; TNum: Byte; TEnd: Byte; begin StrLen := Length(aString); TNum := 1; TEnd := StrLen; while ((TNum <= TokenNum) and (TEnd <> 0)) do begin TEnd := Pos(SepChar, aString); if TEnd <> 0then begin Token := Copy(aString, 1, TEnd - 1); Delete(aString, 1, TEnd); Inc(TNum); end else begin Token := aString; end; end; if TNum >= TokenNum then begin GetToken1 := Token; end else begin GetToken1 := ''; end; end;
function NumToken(aString, SepChar: string): Byte; { parameters: aString : полная строка
SepChar : единственный символ, служащий разделителем между словами (подстроками) result : количество найденных слов (подстрок) } var RChar: Char; StrLen: Byte; TNum: Byte; TEnd: Byte; begin if SepChar = '#'then begin RChar := '*' end else begin RChar := '#' end; StrLen := Length(aString); TNum := 0; TEnd := StrLen; while TEnd <> 0do begin Inc(TNum); TEnd := Pos(SepChar, aString); if TEnd <> 0then begin aString[TEnd] := RChar; end; end; Result := TNum; end; |
https://delphiworld.narod
DelphiWorld 6.0
Code: |
function CopyColumn(const s_string: string; c_fence: char; i_index: integer): string; var i, i_left: integer; begin result := EmptyStr; if i_index = 0then begin exit; end; i_left := 0; for i := 1to Length(s_string) do begin if s_string[i] = c_fence then begin Dec(i_index); if i_index = 0then begin result := Copy(s_string, i_left + 1, i - i_left - 1); exit; end else begin i_left := i; end; end; end; Dec(i_index); if i_index = 0then begin result := Copy(s_string, i_left + 1, Length(s_string)); end; end; |
https://delphiworld.narod
DelphiWorld 6.0
Code: |
{ **** UBPFD *********** by delphibase.endimus **** >> Получение N-го слова из строки
Зависимости: System Автор: Gua, Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра., ICQ:141585495, Simferopol Copyright: Gua Дата: 02 мая 2002 г. ***************************************************** }
{ Str: Строка Smb: Разгранечительный символ WordNmbr: Номер нужного сова }
function GetWord(Str, Smb: string; WordNmbr: Byte): string; var SWord: string; StrLen, N: Byte; begin
StrLen := SizeOf(Str); N := 1;
while ((WordNmbr >= N) and (StrLen <> 0)) do begin StrLen := Pos(Smb, str); if StrLen <> 0then begin SWord := Copy(Str, 1, StrLen - 1); Delete(Str, 1, StrLen); Inc(N); end else SWord := Str; end;
if WordNmbr <= N then Result := SWord else Result := ''; end; //Пример использования:
GetWord('Здесь ваш текст',' ',3); // Возвращает -> 'текст'
|
Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.
ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!