![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Привет
Есть строка 1234 88888 9999999 width/left Нужно извлечь из нее width и left Спасибо. |
|
#2
|
||||
|
||||
|
Цитата:
|
|
#3
|
|||
|
|||
|
Не
Мне нужно извлечь слова. Для примера взял , что первое пришло в голову. width и left . Слова и цифры могут быть любыми. Пробелов будет столько , сколько в этой строке. Знак / тоже будет в том же месте где и в примере. Тоесть строка может быть 2121 777777777777 3443 left/right Т.e нужно слово после 3го пробела и после знака / |
|
#4
|
||||
|
||||
|
Вот. StrIn - строка в которой ищем слова, Word1 - слово перед /, Word2 - слово после /.
Код:
procedure GetWords(StrIn : String; var Word1, Word2 : String);
var
i : Integer;
begin
Word1 := '';
Word2 := '';
if (Length(StrIn) < 9) or (Pos(' ', StrIn) = 0) or (Pos('/', StrIn) = 0) then
Exit;
i := Length(StrIn);
while StrIn[i] <> '/' do begin
Word2 := StrIn[i] + Word2;
i := i - 1;
end;
i := i - 1;
while (i <> 0) and (StrIn[i] <> ' ') do begin
Word1 := StrIn[i] + Word1;
i := i - 1;
end;
end; |
|
#5
|
||||
|
||||
|
Еще один вариант реализации:
Код:
procedure TForm1.Button4Click(Sender: TObject);
var
sString1 : String;
sString2 : String;
I : Integer;
iPos : Integer;
begin
i:=0;
while I < 3 do
begin
iPos := PosEx(' ',Label1.Caption,iPos + 1);
Inc(I);
end;
sString1 := MidStr(Label1.Caption,iPos+1,(PosEx(' ',Label1.Caption,iPos+1))-iPos-1);
sString2 := MidStr(Label1.Caption,Pos('/',Label1.Caption)+1, Length(Label1.Caption));
end; |
|
#6
|
|||
|
|||
|
Спасибо всем за ответы.
|