![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Разделение строки [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()