Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.04.22;
Скачать: [xml.tar.bz2];

Вниз

переменная 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 вся ветка

Форум: "Начинающим";
Текущий архив: 2007.04.22;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.042 c
15-1174656149
Andre_s
2007-03-23 16:22
2007.04.22
Жидкокристаллические 17"


2-1175519849
Solo
2007-04-02 17:17
2007.04.22
There is no overloaded version of FindNode that can be called w


3-1170688056
Da
2007-02-05 18:07
2007.04.22
Какое лучше использовать?


15-1174986829
Kolan
2007-03-27 13:13
2007.04.22
TeeChart, стоит купить?


15-1174838996
Чувак
2007-03-25 20:09
2007.04.22
Вопрос по ошибке железа





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский