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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.11.2010, 20:07   #1
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
Вопрос Разбиение строки по значениям

Добрый вечер! Нужна помощь в вопросе связанным по разбиению строки на части. Например, имеется строка 01D180810C361736A03777830. Нужно выполнить разбиение этой строки на составляющие, т.е. должно получиться примерно следующее:
Label1.Caption:=01;
Label2.Caption:=180810;
Label3.Caption:=361736;
Label4.Caption:=377783;
Нули после "С" и "А" должны быть отброшены. С помощью какой функции можно выполнить все это? Прошу подсказать. Заранее спасибо.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 10.11.2010, 20:19   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну если строка четко разбивается по группам символов то:
Код:
type
 okak=record
  q:array[1..2] of char;  d:char;
  w:array[1..6] of char;  d1,d2:char;
  e:array[1..6] of char;  d3,d4:char;
  r:array[1..6] of char;  d5,d6:char;
 end;
var s:string;t:okak;
begin
 s:='01D180810C0361736A03777830';
 move(s[1],t,sizeof(t));
Label1.Caption:=t.q;
Label2.Caption:=t.w;
Label3.Caption:=t.e;
Label4.Caption:=t.r;
end;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.11.2010, 20:24   #3
Dimasw
Пользователь
 
Регистрация: 12.09.2010
Сообщений: 69
По умолчанию

Эту функцию надо написать самому с помощью таких функций как pos, length, copy
SELECT BEST FROM LIFE

Последний раз редактировалось artemavd; 10.11.2010 в 20:37.
Dimasw вне форума Ответить с цитированием
Старый 10.11.2010, 20:42   #4
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Виталий, а если между "С" и "А" будет количество чисел разное? Может быть 5, может быть 6.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 10.11.2010, 21:11   #5
Marsel737
Форумчанин
 
Аватар для Marsel737
 
Регистрация: 09.11.2009
Сообщений: 669
По умолчанию

Как отбросить нули думаю догадаешся

Код:
var
  CurLines: string;
  I, CurIndex: Integer;
  arStrings: array [1 .. 4] of string;
begin
  CurIndex := 0;
  CurLines := '01D180810C361736A03777830';
  for I := 0 to Length(CurLines) - 1 do
  begin
    if CurLines[I] in ['0' .. '9'] then
      arStrings[CurIndex] := arStrings[CurIndex] + CurLines[I]
    else
      Inc(CurIndex);
  end;
  ShowMessage(arStrings[1] + '|' + arStrings[2] + '|' + arStrings[3] + '|' +
    arStrings[4]);
end;
Я не всегда знаю, о чем говорю, но знаю, что прав. © Мухаммед Али.
К чёрту обстоятельства. Я создаю возможности. © Брюс Ли
Marsel737 вне форума Ответить с цитированием
Старый 11.11.2010, 06:33   #6
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Marsel737, не работает. Выдается ошибка, что "Range check error"
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 11.11.2010, 08:17   #7
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

В строках нумерация символов с 1
Код:
  for I := 1 to Length(CurLines) do
Sibedir вне форума Ответить с цитированием
Старый 11.11.2010, 09:51   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
а если
А вот тогда нужно задание уточнять.
И уточнять как можно точнее.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос по диапазонам и значениям PashaNastya Microsoft Office Excel 3 25.03.2010 09:28
МЕДИАНА и 75 квартиль по определенным значениям Екатрина Microsoft Office Excel 5 25.12.2009 12:08
Переход от ссылок к значениям! mephist Microsoft Office Excel 5 10.07.2009 16:01
Сортировка одной БД по значениям другой Кот из Лета БД в Delphi 4 28.12.2007 13:35
Нарисовать Ellipse по значениям из... Apollo_13 Общие вопросы Delphi 3 17.06.2007 02:53