Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.07.2011, 11:51   #1
aimk0
Пользователь
 
Регистрация: 05.05.2010
Сообщений: 35
По умолчанию Выборка из строки

Всем привет!
Есть строка с размерами, например 100х200х300, разделитель - русская буква 'х'. Надо присвоить каждой переменной свой размер, т.е. a:=100, b:=200, c:=300;
Пробовал делать так
Код:
l:=length(str);
for i:=1 to l do 
 begin
   if str[i]<>'x' then a:=a+str[i];
   if str[i]='x' then continue;
 end;
В общем не пойму, как сделать так, чтобы после того как найден разделитель, следующее число уже записывалось в переменную b, а третье в переменную с.
aimk0 вне форума Ответить с цитированием
Старый 07.07.2011, 12:27   #2
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Ну можно поискать первую позицию х. В вашем случае это будет 4. Затем скопировать 3 символа из оригинала в переменную. Затем отрезать от оригинала 4 символа. Итак до тех пор пока символы не кончатся, либо пока находится символ х.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 07.07.2011, 12:29   #3
MadReason
Ищу работу
Форумчанин
 
Аватар для MadReason
 
Регистрация: 16.02.2007
Сообщений: 269
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  st:TStringList;
  i:Byte;
begin
  st := TStringList.Create;
  st.Delimiter:='x';
  st.DelimitedText:='100x200x300';
  for i:=0 to st.Count-1 do
    Memo1.Lines.Add(st[i]);
end;
в delphi например можно так. причем будет не важно сколько параметров в строке, главное чтоб разделялись иксом.

а в вашем случае из строки просто удалятся иксы.
Пишу на Delphi все что угодно, недорого, красиво, с комментариями
###icq 107335###
MadReason вне форума Ответить с цитированием
Старый 07.07.2011, 12:40   #4
MadReason
Ищу работу
Форумчанин
 
Аватар для MadReason
 
Регистрация: 16.02.2007
Сообщений: 269
По умолчанию

Код:
procedure TForm1.Button2Click(Sender: TObject);
var
i,k:Byte;
str,a:string;
m:array[1..3]of string;
begin
str:='100x200x300';
k:=1;
a:='';
for i:=1 to length(str) do
 begin
   if str[i]<>'x' then a:=a+str[i]
   else
   begin
   m[k]:=a;
   Inc(k);
   a:='';
   end;
 end;
 m[k]:=a;

 {вывод для проверки}
 for i:=1 to 3 do
 Memo1.Lines.Add(m[i]);
end;
а вот ваш видоизмененный метод.
переменные занесутся в массив m[]
Пишу на Delphi все что угодно, недорого, красиво, с комментариями
###icq 107335###
MadReason вне форума Ответить с цитированием
Старый 07.07.2011, 13:03   #5
aimk0
Пользователь
 
Регистрация: 05.05.2010
Сообщений: 35
По умолчанию

Большое спасибо, все отлично работает!
aimk0 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выборка данных, перенос строки на другой лист) Viten2 Microsoft Office Excel 1 03.05.2011 16:14
Выборка чисел из строки (С++) Sparkman Помощь студентам 2 06.09.2010 09:09
Выборка выборка с таблицы с отношением многие-ко-многим 8alig8 БД в Delphi 2 24.06.2010 12:21
выборка части строки Garacio_cain PHP 1 12.11.2009 18:04
Выборка значения, по признаку, из строки SLP Microsoft Office Excel 4 12.02.2009 16:33