Насчет слова из строки можно так :
Код:
function Get_CountWords_In_String(UnChar : TSetChars; Sx : string) : integer;
//Определить кол-во слов в строке
//UnChar - множество символов - разделителей слов
var
InWord : byte;
i : integer;
begin
Result:=0;
if length(Sx)>0 then begin
InWord := 0;
i:=0;
while i<length(Sx) do
begin
i:=i+1;
if not (Sx[i] in UnChar) then begin //этот символ - НЕ разделитель
if InWord<=0 then Result:=Result+1; //переход на начало слова
InWord:=1; //Мы внутри слова
end
else begin //этот символ - разделитель
InWord:=0; //Мы снаружи слова
end;
end;
end;
end;
function Get_Word_From_String(UnChar : TSetChars; Sx : string; NumWord : integer) : string;
//Получить слово из строки по номеру
//UnChar - множество символов - разделителей слов
//NumWord - номер слова
var
InWord : byte;
NumWordCur, i : integer;
begin
Result:='';
if length(Sx)>0 then begin
if NumWord>0 then begin
InWord := 0;
NumWordCur:=0;
i:=0;
while i<length(Sx) do
begin
i:=i+1;
if not (Sx[i] in UnChar) then begin //этот символ - НЕ разделитель
if InWord<=0 then NumWordCur:=NumWordCur+1; //мы - на начале слова
InWord:=1; //Мы внутри слова
if NumWordCur=NumWord then begin //Это - наше слово
Result:=Result+Sx[i]; //и мы его выдираем из строки
end;
end
else begin //этот символ - разделитель
InWord:=0; //Мы снаружи слова
if NumWordCur=NumWord then begin //Это было - наше слово
i:=length(Sx)+1; //поэтому, выходим из цикла и функции
end;
end;
end;
end;
end;
end;