Вниз
Скачать: CL | DM;

переменная SYSTEMTIME определить что она пустая   Найти похожие ветки 

← →
Dmitry_177   (2007-03-30 19:57) [0]

есть переменная типа SYSTEMTIME, как мне определить что в ней не содержится дата?

попробовал так:

var
sysTime: SYSTEMTIME;
..

if sysTime <> nil then


так ругается компилятор..

вообще на сколько я знаю в ней по умолчанию не должно быть какой-то даты в отличие от FILETIME, решил проверить:

procedure TForm1.Button1Click(Sender: TObject);
var
 sysTime: SYSTEMTIME;
begin
 MessageBox(0, PChar(IntToStr(sysTime.wDay) + " " + IntToStr(sysTime.wMonth) + " " + IntToStr(sysTime.wYear)), "", 0);
end;


выдает какие-то числа, у меня они такие: "0 90 73"

как же тогда проверить что в переменной sysTime нету даты, т.е. вообще не записывали ее туда?


← →
trubin ©   (2007-03-30 20:29) [1]


> как же тогда проверить что в переменной sysTime нету даты,
>  т.е. вообще не записывали ее туда?


Примерно так:

FillChar(sysTime, SizeOf(SYSTEMTIME), $FF);       //заполняем все единицами

...Используешь где-то

if sysTime.wYear = $FFFF then
 ShowMessage("Год не заполнен");


> вообще на сколько я знаю в ней по умолчанию не должно быть
> какой-то даты в отличие от FILETIME


Как это по умолчанию?


← →
Anatoly Podgoretsky ©   (2007-03-30 20:30) [2]

> Dmitry_177  (30.03.2007 19:57:00)  [0]

Она не может быть пустой.


← →
Dmitry_177   (2007-03-30 20:31) [3]

непойдет.. дело в том, что эта дата входит в состав некой структуры, которую присылают по сети(используя сокеты WinSock).. вот мне нужно определить есть ли там дата или нет...


← →
MBo ©   (2007-03-30 20:32) [4]

Есть переменная типа Integer. Как определить, что она не содержит никакого числа?


← →
RASkov   (2007-03-30 20:39) [5]

SYSTEMTIME - запись из Word"овых значений.... никак не проверишь. Или проверять на корректность всех значений записи... также..
можно вначале инициализировать, например, год в 0 : sysTime.wYear:=0; и смотреть потом изменилась или нет.... но это тоже не выход наверное...
ну или так, может:
try
D:=SystemTimeToDateTime(sysTime);
except
ShowMessage("Дата не корректная");
end;
А вообще [4]...


← →
trubin ©   (2007-03-30 20:48) [6]


> непойдет.. дело в том, что эта дата входит в состав некой
> структуры, которую присылают по сети(используя сокеты WinSock).
> . вот мне нужно определить есть ли там дата или нет...


Так бы сразу и написал, а то я в [1] изгалялся :(


← →
Dmitry_177   (2007-03-30 20:59) [7]

trubin, я думал это не столь важно будет..


← →
Palladin ©   (2007-03-31 00:37) [8]


> Dmitry_177   (30.03.07 20:59) [7]

и правильно думал... см MBo ©   (30.03.07 20:32) [4]
пока не определишься что значит "пустая" смысла в пустоте не будет



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

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.034 c
15-1175096504
Галинка
2007-03-28 19:41
2007.04.22
Что из ужастиков новенькое есть


15-1174897756
passlight
2007-03-26 12:29
2007.04.22
Бесплатный (недорогой) компьютерный англо-русский словарь


3-1170510508
DmitrichJ
2007-02-03 16:48
2007.04.22
Подключение к БД на masterhost.ru? Возможно ли?


15-1174956277
Бакук
2007-03-27 04:44
2007.04.22
Хранение форм


2-1175779333
voe
2007-04-05 17:22
2007.04.22
работа с текствовыми файлами.




   Наверх