![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
|
Приветствую!
Ребята, скажите как из строки такого типа: "255,155,155" вытащить каждое из трех значений в переменную? |
|
#2
|
||||
|
||||
|
Copy() с позициями групп чисел. Подходит при постоянной длине исходной строки.
|
| Этот пользователь сказал Спасибо NumLock за это полезное сообщение: | ||
Alloc (14.02.2016)
| ||
|
#3
|
|||
|
|||
|
Если строка всегда по одному шаблону,то
Код:
var S,S1,S2,S3:String; begin S:='255,255,255'; S1:=Copy(S,1,3); S2:=Copy(S,4,3); S3:=Copy(S,9,3); end; |
| Этот пользователь сказал Спасибо Oleg.E за это полезное сообщение: | ||
Alloc (14.02.2016)
| ||
|
#4
|
||||
|
||||
|
Цитата:
Дело в том, что значения могут быть и такого типа: 10,122,255.. поэтому нужно как то смотреть по запятым, но вот я не знаю как. Вообще это у меня цвет в RGB который я буду сохранять и загружать в/из ini файла |
|
#5
|
||||
|
||||
|
Цитата:
большая ссылка |
| Этот пользователь сказал Спасибо Verevkin за это полезное сообщение: | ||
Alloc (15.02.2016)
| ||
|
#6
|
|||
|
|||
|
как-то так
Код:
var
S:String;
S1,S2,S3:String;
p:Integer;
begin
S:='1,15,255';
p:=pos(',',S);
S1:=copy(S,1,p-1);
S:=copy(S,P+1,100);//100-заведомо большое число
S2:=Copy(S,1,p-1);
S3:=Copy(S,p+1,100);
end; |
|
#7
|
||||
|
||||
|
Можно ещё средствами строкового списка
Код:
var dt: array of byte; sl: TStrings; i: integer; begin Memo1.Clear; sl:= TStringList.Create; sl.DelimitedText:= '10,122, 255,243 1,5,62'; SetLength(dt, sl.Count); for i := Low(dt) to High(dt) do dt[i]:= StrToInt(sl[i]); sl.Free; end; |