Code:

{ **** UBPFD *********** by delphibase.endimus ****

>> Заполнение списка (TargetList) словами из строки (Text),

с возможностью укзания множества разделителей

 

Функция заполняет список TargetList, словами (наборами символов)

из строки Text. Имеется возможность получения позиции каждого

слова в строке (ReturnWordPlaces = True); добавления в TargetList

не только слов, но и разделителей (ReturnWordDeviders = True);

указания более чем одного разделителя (все в строке WordDeviders).

Ограничением является невозможность указания разделителя,

длинной более чем 1 символ.

 

Result = TargetList.Count; {количество строк в TargetList}

 

Зависимости: sysutils, classes, system

Автор: VID, vidsnap0mail.ru, ICQ: 132234868, Махачкала

Copyright: VID

 

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

* * * * * * * * * * * * }

 

function GetWordListFromText(Text, WordDeviders: string; TargetList: TStrings;

ReturnWordPlace, ReturnWordDeviders: Boolean): Integer;

var

X, TextLength, WP: Integer;

W: string;

begin

Result := 0;

TextLength := Length(Text);

if TextLength = 0then

Exit;

if Length(WordDeviders) = 0then

Exit;

if TargetList = nilthen

Exit;

TargetList.BeginUpdate();

TargetList.Clear;

WordDeviders := AnsiUpperCase(WordDeviders);

W := '';

X := 0;

WP := 1;

repeat

X := X + 1;

if (POS(AnsiUpperCase(Text[x]), WordDeviders) = 0) and (X <= TextLength)

then

W := W + Text[x]

else

begin

if W <> ''then

begin

case ReturnWordPlace of

True: TargetList.Add(W + '=' + Inttostr(WP));

False: TargetList.Add(W);

end;

end;

W := '';

WP := X + 1;

if ReturnWordDeviders = true then

begin

case ReturnWordPlace of

True: TargetList.Add(Text[x] + '=' + Inttostr(x));

False: TargetList.Add(TEXT[x]);

end;

end;

end;

until (X > TextLength);

TargetList.EndUpdate;

Result := TargetList.Count;

end;

Добавить комментарий

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить