Jump to content

[Delphi] Jak pobrać czas z serwera.


k_argo

Recommended Posts

To znowu ja ...
Mam problem, bo jak pobrać czas, date i godzinę ze swojego kompa to wiem tongue.gif
Ale wiadomo komp jednak nie jest atomowy, w moim przypadku bardzo niedokładny ...
No wiec chce pobrać czas z jakiegoś serwera ... który będzie się uaktualniał co 5s ... i chce widzieć cały czas która godzina ... najlepiej chyba przez SNTP ...

No wiec mam komponent IdSNTP ... czy to ma być procedura w OnStatus ? Jeśli tak to jak powinna wyglądać przykładowo, aby pobierała czas i wyświetlała w Label.

Link to comment
Share on other sites

Pisałem sobie kiedyś program ustawiający dobry czas na kompuerze (wg serwera czasu). Kod z niego poniżej.

Serwer czasu miałem ustawiony taki: ntp.task.gda.pl
[code=Delphi]
var
St: TSystemTime;
begin
IdSNTP1.Active := True;
Y]^H]U[YUYÓK]U[YJNY]7Ś26W'vW&rVFC W7Fv7Ś2ćśW'Ś4(ŃQQMŃQĄ%M9Q@ateTime, St);

SetLocalTime(St);
end; [/code]

҉

Link to comment
Share on other sites

[quote] Pisałem sobie kiedyś program ustawiający dobry czas na kompuerze (wg serwera czasu). Kod z niego poniżej.

Serwer czasu miałem ustawiony taki: ntp.task.gda.pl
[code=Delphi]

  1. [/code]

  2. var [/quote]

  3. St: TSystemTime;

  4. begin

  5. IdSNTP1.ActiveHYNB ŃY]^H]U[YUYÓK]U[Rw7vWFĆ7Ś26W'vW&rVFC fć'7W7Fv4(ŃimeToSystemTime(IdSNTP1.DateTime, St);


  6. SetLocalTimJ

  7. NB[


Idealnie oto mi chodzilo smile.gif
Link to comment
Share on other sites

Tak sie pobawilem, gdyby ktos kiedys szukal czegos na ten temat ...
Maly programik ktory uaktualnia czas, pokazuje czas aktualny na komputerze i czas ostatniej aktualizacji ... uaktualnia czas co 30s smile.gif :

[code=Delphi] var
Present: TDateTime;
Hour, Min, Sek, MSec: Word;
[U[YNBY[B[HBXU[YJ6VBW\& quot;6V6V27EFR6FŁtGVĆŃŃŹQQMŃĄŃ
4(4(ĄMŹ= 59) then
begin
IdSNTP1.Active := True;
LastUp.Cap[H Ó]XHZX[^XHH
]U[YUYÓEFFUFRFFUFUF77FVFRE4EFFUFR74(4(MŃ1ąQĄ
M4(4(4(ĄMŹŃĄ4(begin
IdSNTP1.Active := True;
LastUp.Caption := 'OstatXHZX[^XHH
]U[YUYÓK]U[YJNFFUFUF77FVFRE4EFFUFR7B6WDĆąQĄM4(4) [/code]

Tylko pytanie ... jesli on mi pobiera aktualny czas ... to czy w tym czasie nie spozni sie ? Np. o 1s ?

Link to comment
Share on other sites

[quote] Tylko pytanie ... jesli on mi pobiera aktualny czas ... to czy w tym czasie nie spozni sie ? Np. o 1s ? [/quote]Nie, powinno być dokładnie. Ale pewien nie jestem. Możliwe, że są różnice iluś ms, ale to większego znaczenia nie ma.

A poza tym, dlaczego nie zrobiłes tego w timerze co 30 sek tylko jakoś tak dziwnie z
if (Sek = 59) then
i
if (Sek = 29) then

? ;)

Mogłeś chociaż zamiast tych 2 ifów dać jednego:

if (Sek = 29) or (Sek = 52) then

albo

if Sek in [29, 52] then

҉

Link to comment
Share on other sites

co do pobierania czasu, to przydałoby się jeszcze sprawdzać pingi i pobierać tylko jeżeli ping nie przekracza pewnej wartości

Poza tym, poco pobierać czas aż 2x na minutę?
Nie wystarczy raz na dobę? Jak się uprzesz, to raz na godzinę, ale nie sądzę, żebyś miał aż tak duży poślizg.

Nawet zegarki sprżynowe po dobrej regulacji miały całkiem przyzwoitą dokładność... a komp jest wiele razy dokładniejszy.
Link to comment
Share on other sites

Odbiegne na chwile od tematu :
Mam problemy z POST, mianowicie musze przeslac dane ... jest ich wiecej niz 255 znakow.
Mam taki kod :

[delphi][/delphi]

Wyskakuje :

KOD[Error] MainFrm.pas(302): String literals may have at most 255 elements

Moze znowu jakis banał, ale ja nie wiem dlaczego jest do 255 znakow ? Skoro ma byc 2^31 ...
Link to comment
Share on other sites

[quote] ja na pewno nie pomogę, jeśli nie będę wiedział, która dokładnie linijka kodu to ta z błędem...
no bo tak zadeklarowany String to faktycznie powinien być długi... [/quote]

Ta :
[code=Delphi] Input.WriteString(Format('MasaDanychWysylanychPOST', ['TutajXY[IJJN [/code]
A mianowicie tam gdzie napisane MasaDanychWysylanychPOST ... tak teraz napisalem ale w rezczywistosci jest tam moze nawet kilkaset znakow
Link to comment
Share on other sites

Wiesz, że jest coś takiego jak pomoc Delphi ?

[quote] This error message occurs when you declare a string type with more than 255 elements, if you assign a string literal of more than 255 characters to a variable of type ShortString, or when you have more than 255 characters in a single character string.

**PRZECZYTAJ UWAŻNIE**
Note that you can construct long string literals spanning more than one line by using the '+' operator to concatenate several string literals.
***********************

program Produce;
var
LongString : string[256]; (*<-- Error message here*)
begin
end.

In the example above, the length of the string is just one beyond the limit.

program Solve;
var
LongString : AnsiString;
begin
end.

The most convenient solution is to use the new long strings - then you don't even have to spend any time thinking about what a reasonable maximum length would be. [/quote]

҉

Link to comment
Share on other sites

CYTAT(KKKas)Wiesz, że jest coś takiego jak pomoc Delphi ?

[quote] This error message occurs when you declare a string type with more than 255 elements, if you assign a string literal of more than 255 characters to a variable of type ShortString, or when you have more than 255 characters in a single character string.

**PRZECZYTAJ UWAŻNIE**
Note that you can construct long string literals spanning more than one line by using the '+' operator to concatenate several string literals.
***********************

program Produce;
var
LongString : string[256]; (*<-- Error message here*)
begin
end.

In the example above, the length of the string is just one beyond the limit.

program Solve;
var
LongString : AnsiString;
begin
end.

The most convenient solution is to use the new long strings - then you don't even have to spend any time thinking about what a reasonable maximum length would be. [/quote]

Wszedzie szukalem ale nie w pomocy delphi tongue.gif

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

Guest
This topic is now closed to further replies.
×
×
  • Create New...