Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > Поиск в строке


Автор: mfn9 8.8.2007, 10:21
Добрый день
вопрос как осуществить поиск в строке.найти определённое значение
и присвоить переменной три знака после найденного значения

пример строки: нужно найти r8 и следующие три символа присвоить переменным

eirtuyior8jskdjgieor8sd645sdf8sdg

результат 
1=jsk
2=sd6
....

Автор: MetalFan 8.8.2007, 10:28
Pos/PosEx (StrUtils)
или за тебя код написать?

Автор: mfn9 8.8.2007, 10:30
ну если не сложно то и код smile
или хотябы примерчик использования этой функции

Автор: somewhere 8.8.2007, 10:49
mfn9, по функциям читаем Help
Код

s:='eirtuyior8jskdjgieor8sd645sdf8sdg';
a:=copy(s, pos('r8',s)+2, 3);

Автор: mfn9 8.8.2007, 11:00
сории за наглость
но еще один вопросик
а как мне найденные значения присвоить разным переменным

Код

s:='eirtuyior8jskdjgieor8sd645sdf8sdg';
a:=copy(s, pos('r8',s)+2, 3);


a=jsk
b=sd6
....
заранее спасибо

Автор: Snowy 8.8.2007, 11:49
Код

var
  sl: TStringList;
  i:  integer;
begin
  sl := TStringList.Create;
  sl.Text := StringReplace('eirtuyior8jskdjgieor8sd645sdf8sdg', 'r8', #13#10, [rfRaplaceAll]);
  for i := 0 to sl.Count-1 do
    ShowMessage(sl[i]);
  sl.Free;
end;

Автор: mfn9 8.8.2007, 12:31
результат получился такой

eirtuyio
jskdjgieo
sd645sdf8sdg

а нужно такой:
jsk
sd6

Спасибо за помощь smile

Автор: Snowy 8.8.2007, 12:33
Ну так отрежь 3 первые символа от каждой строки через copy ;-)

Автор: mfn9 8.8.2007, 12:48
отрезал smile
получилосьsmile
а как сделать что бы не записывалась самая первая строка
eir
jsk
sd6
'eir' - перед ней ведь не стоит r8

Автор: Snowy 8.8.2007, 12:53
Просто не бери её ;-)
Берии с 1-й, а не с нулевой smile

Автор: mfn9 8.8.2007, 15:31
Snowy, 
спасибо большое smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)