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

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

Записи


Nic2 ©   (2002-12-18 21:17:00) 

Добрый вечер!
Люди, СРОЧНО нужно прочитать переменную типа String в запись(созданную мной):

ZAPIS=RECORD
ZVK_ID : integer;
VKP_ID_REALIZ : integer;
PNT_ID : integer;
LONG : SINGLE;
LAT : SINGLE;
NNSEC : DOUBLE
END;

КАК????????????!!!!!!!!!!!
Желательно с примером.

ОГРОМНОЕ ЧЕЛОВЕЧЕСКОЕ СПАСИБО!!!!!!


Nic2   (2002-12-18 22:11:00) [1]

Спасибо!! Вроде работает


TTCustomDelphiMaster   (2002-12-18 22:08:00) [2]

type
ZAPIS=RECORD
ZVK_ID : integer;
VKP_ID_REALIZ : integer;
PNT_ID : integer;
LONG : SINGLE;
LAT : SINGLE;
NNSEC : DOUBLE;
END;
PZAPIS = ^ZAPIS;
var
z: PZapis;
s: string;
begin
s := #77#00#00#00+"1234567890123456789012345678901234567890";
z := PZAPIS(@s[1]);
ShowMessage(IntToStr(z^.ZVK_ID));
end;


Nic2   (2002-12-18 21:42:00) [3]

Виноват, вместо

MyDT.vrdt

нужно читать:

ZAPIS.NNSEC


Nic2   (2002-12-18 21:41:00) [4]

Написал:

p := Pointer(S);
MyDT.vrdt := PDouble(Double(S))^;

Ошибка: invalid typecast

Чего делать?


ZrenBy   (2002-12-18 21:34:00) [5]

Сорри, надо p := Pointer(S);


Nic2   (2002-12-18 21:30:00) [6]

Кстати, если читаю из файла, то все ОК, но к сожалению нужно из переменной String...


Nic2   (2002-12-18 21:28:00) [7]

Вообще, моя строка выглядит примерно так:

?/¦$??¦@

Я ее читаю на битовом уровне.
В этом примере-число типа Double(время в секундах), которое должно записаться в ZAPIS.NNSEC.

(Согласен, мудистика еще та...)

Спасибо!!!


Val   (2002-12-18 21:23:00) [8]

в каком виде данные в строке, пример?


ZrenBy   (2002-12-18 21:23:00) [9]

var p:Pointer;

p := Pointer(@S);
ZAPIS.ZVK_ID := PInteger(Integer(p))^;
ZAPIS.VKP_ID_REALIZ := PInteger(Integer(p)+4)^;
...

Я правильно понял вопрос?


Наверх

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