Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Разделение строки [D7, WinXP]


_vl_ ©   (2007-05-21 16:02:00) 

Как разделить строку по заданным значениям.
Пример:
Строка: #12032007 1245
Значения: 1       - служебный символ заголовка
              2-3    - день
              4-5    - месяц
              7-9    - год
              10-14 - количество измерений
Надо получить: в массиве все по отдельности.
Есть ли способ, кроме простого перебора по циклу?


_vl_   (2007-05-21 17:05:00) [1]

Всем огромное спасибо, все получилось.


{RASkov}   (2007-05-21 16:29:00) [2]

> если поля строго на своих местах и фиксированного размера

type TRes = (rCapt, rDay, rMonth, rYear, rMeasure);
function GetData(const S: String; const R: TRes): String;
begin
 case R of
  rCapt   : Result:=Copy(S, 1, 1);
  rDay    : Result:=Copy(S, 2, 2);
  rMonth  : Result:=Copy(S, 4, 2);
  rYear   : Result:=Copy(S, 6, 4);
  rMeasure: Result:=Copy(S, 11, 4);
 else Result:=S;//Result:='';
 end;
end;

Вызов
var S: String;
.....
S:=GetData('#12032007 1245', rDay);


_vl_   (2007-05-21 16:12:00) [3]

Спасибо, попробую.


clickmaker   (2007-05-21 16:12:00) [4]

вернее, даже Pos тут нафик не нужна


clickmaker   (2007-05-21 16:07:00) [5]

если поля строго на своих местах и фиксированного размера, то Pos() + Copy()


Наверх

Титульная страница Поиск, карта сайта Написать письмо