|
|
Регистрация | << Правила форума >> | 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; Не профи, но и не чайник . D6 - лучше не придумали. Пока. |
#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; THE CRACKER IS OUT THERE |
#6
|
|||
|
|||
Спасибо всем за ответы.
|