Cześć. Wiecie, że jak umiem to pomagam w problemach z Delphi i Pascalem, ale w większości innych języków jestem lama, a zabrałem się za tłumaczenie kodu servera gry w Pythonie na Delphi i WinAPI. No i napotkałem na problem. Googlowałem, szukałem, kombinowałem, ale nie bardzo mi się udaje. Na jakiejs stronie podawali przykład żeby podzielić jeszcze to co uzyskuje przez $1E6 czy jakoś tak, ale nie wyszło. Otóż chce uzyskać taki sam wynik jaki zwraca funkcja time.time()
w Pythonie pod Delphi. Kombinowałem póki co z VCL tak - Delphi:
program Project2;
{$APPTYPE CONSOLE}
uses
DateUtils, SysUtils;
var
Res : Double;
Dt : TDateTime;
tv_sec : LongInt;
begin
DecimalSeparator := '.';
Dt := EncodeDate(1970, 1, 1);
while True do
begin
tv_sec := SecondsBetween(Now, Dt);
Res := StrToFloat(IntToStr(tv_sec) + DecimalSeparator + FormatDateTime('zzz', Now));
Writeln(FloatToStr(Res));
end;
end.
W Pythonie dla testów używam najprostszego skryptu jaki umiałem napisać:
#!/usr/bin/env python
import time
while 0 == 0:
print(time.time())
Ale różnice w pokazywanych wynikach są znaczne i to nie tylko w ilości milisekund po separatorze dziesiętny, co będzie oczywiste, bo ciężko uruchomić dwa osobne programy w tej samej chwli. Ale liczba przed przecinkiem w przypadku Delphi jest znacznie większa. Prosił bym o jakieś przykłądy rozwiązania. Z góry dziękuję i wybaczcie mi to lamerskie pytanie, bo z Pythonem mam do czynienia od niecałych dwóch dni na zasadzie próby tłumaczenia kodu, co jako tako mi idzie, ale teraz ważne dla servera będzie przekazywanie czasu i klatek między klientami i chce to zrobić w sposób prawidłowy. Dodam, że korzystam z Pythona 3.2 i pod nim też uruchamiam gotowy serwer w pliku *.py. A i wiem, że jest py2exe, ale i tak generuje około 5 MB potrzebnych "dodatków" w postaci plików i dllki poza samym exekiem, a jakbym dobrze przetłumaczł kod do końca to serwer może zajmować po UPX'nięciu od około 19 do może 25 KB, a funkcjonalnośc będzie ta sama i nie potrzeba będzie instalować Pythona ani konwertować źródeł py2exe, który wspiera jako najpóźniejszą chyba Pythona w wersji 2.7.2, bo z taką testowałem. Wybaczcie rozpisanie się. Pora iśc pospać :)