Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.03.09;
Скачать: CL | DM;

Вниз

Как записать строку в record?   Найти похожие ветки 

 
Mixa3   (2004-02-27 09:09) [0]

...
SomeRecord = record
f1: string[2];
f2: string[1];
f3: string[3];
end;
...
как поместить строку, например "123456" в запись, чтобы в полях записи соответственно оказалось: в f1 "12", в f2 "3", в f3 "456"?


 
Kerk ©   (2004-02-27 09:13) [1]

SomeRecord = record
case Byte of
0: Field1: array[0..5] of Char;
1: begin
f1: array[0..1] of Char;
f2: Char;
f3: array[0..2] of Char;
end;
end;
end;

Как-то так...


 
Gero ©   (2004-02-27 09:26) [2]

Если я правильно понял, то тебе понадобится Copy + F1


 
anbezr   (2004-02-27 09:27) [3]

var sr: SomeRecord;
str: string;
...
str := "123456";
Move(str[1], sr, Min(SizeOf(sr), Length(str));


 
Kerk ©   (2004-02-27 09:33) [4]

Вообще, AFAIK, использовать string здесь нельзя, т.к. это не просто набор Char"ов, а там еще хранится длина etc


 
Kerk ©   (2004-02-27 09:33) [5]

Вообще, AFAIK, использовать string здесь нельзя, т.к. это не просто набор Char"ов, а там еще хранится длина etc


 
Юрий Зотов ©   (2004-02-27 10:08) [6]

> Mixa3 (27.02.04 09:09)

Короткие строки в нулевом байте содержат текущую длину. Если присваивать каждое поле отдельно (выделяя нужную подстроку с помощью Copy), то длина установится автоматически (и это самый надежный способ). Если же Вы хотите присваивать все разом, то эту длину нужно сформировать вручную.

type
TSomeRecord = packed record
// packed обязательно требуется только для способа 2
f1: string[2];
f2: string[1];
f3: string[3];
end;

var
SomeRecord: TSomeRecord;
S: string;

===========

Способ 1 (рекомендую):

S := "123456";
with SomeRecord do
begin
f1 := Copy(S, 1, 2);
f2 := Copy(S, 3, 1);
f3 := Copy(S, 4, 3);
end;

=====================

Способ 2 (не рекомендую):

S := #2"12"#1"3"#3"456";
Move(S[1], SomeRecord, 9);


 
Mixa3   (2004-02-27 10:13) [7]

Все понятно. Большое спасибо.



Страницы: 1 вся ветка

Текущий архив: 2004.03.09;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.022 c
14-25888
Awex
2004-02-16 17:19
2004.03.09
Новые пингвины...


8-25825
Михайлов Антон
2003-10-31 09:25
2004.03.09
Очень срочный вопрос! Mp3->Rate


7-25945
Номолос
2003-12-20 22:18
2004.03.09
Как заиметь доступ к памяти приложения?


1-25755
Cosinus
2004-02-26 13:11
2004.03.09
Конвертация данных на лету (TMemoryStream)


11-25725
avakss
2003-06-19 18:42
2004.03.09
KOLFTP