Форум программистов, компьютерный форум, киберфорум
Наши страницы
Visual Basic
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
MIB77
0 / 0 / 0
Регистрация: 12.08.2011
Сообщений: 3
1

Как в Format запихнуть миллисекунды?

12.08.2011, 16:55. Просмотров 1616. Ответов 12
Метки нет (Все метки)

На форуме есть ссылочка, но она не работает...
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.08.2011, 16:55
Ответы с готовыми решениями:

Как в Format милисекунды запихнуть?
Как в Format милисекунды запихнуть? st = Format(Now,'YYMMDDHHMMSS&&') && =...

Как запихнуть запихнуть объект Me в Long?
Как запихнуть Me в Long, а потом достать его? Спасибо?

Как запихнуть UserControl на форму?
Привет. Человеки, помогите... Dim ctl As VariantSet ctl =...

Как в DLL запихнуть картинки
Как в DDl можно запихнуть свои картинки и как их потом ипользовать из DLL?

Как запихнуть *.ocx в ЕХЕ файл?
А возможно ли вообще его туда запихнуть? Если можно, то как??? Просто...

12
Alexey Spirin
1 / 1 / 1
Регистрация: 18.10.2007
Сообщений: 1,750
12.08.2011, 22:22 2
А откуда данные берутся для форматирования?
0
MIB77
0 / 0 / 0
Регистрация: 12.08.2011
Сообщений: 3
13.08.2011, 12:44  [ТС] 3
Системное время...
0
VladConn
3 / 3 / 3
Регистрация: 17.10.2007
Сообщений: 1,119
13.08.2011, 14:11 4
Esli govorit' lish' o format, to:
MsgBox Format(Time, 'hh: mm: ss.ms')

Mozhno vot tak:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Private Declare Sub GetLocalTime Lib 'kernel32' (lpSystem As SYSTEMTIME)
 
Private Type SYSTEMTIME
      wYear          As Integer
      wMonth         As Integer
      wDayOfWeek     As Integer
      wDay           As Integer
      wHour          As Integer
      wMinute        As Integer
      wSecond        As Integer
      wMilliseconds  As Integer
End Type
Private sysLocalTime As SYSTEMTIME
 
Public Function getTIME() As String
    GetLocalTime sysLocalTime
    
    With sysLocalTime
        getTIME = Format$(.wHour, '00') & ':' & Format$(.wMinute, '00') & ':' & Format$(.wSecond, '00') & ':' & Format$(.wMilliseconds, '000')
    End With
End Function
V seti mnogo diskussiy o real'noy tochnosti systemni'x chasov. To est' pokazat' millisekundi' mozhno. No vot s kakoy tochnost'yu?

Etot vopros uzhe drugoy.
0
Alexey Spirin
1 / 1 / 1
Регистрация: 18.10.2007
Сообщений: 1,750
13.08.2011, 14:23 5
2Влад:
Мне кажется, Вы вот здесь вот ошиблись: MsgBox Format(Time, 'hh: mm: ss.ms').
Я пробовал сделать вот так, хотя понятно, что Now не возвращает милисекунды (соответственно, они должны быть =0), но получилось следующее:
> Caption = Format(Now, 'hh:mm:ss.ms')
13:43:46.646
На конце - 646.
Как я понял - первая шестерка - это номер месяца, а 46 - это секунды.
0
Comanche
13.08.2011, 14:57 6
Только сразу не убивайте...
Если воспользоваться АПИ-функцией GetLocalTime, то миллисекунды вернутся просто через последний член структуры SYSTEMTIME. То же касается и GetSystemTime. Судя по второму посту автора - должно подойти...
Comanche
13.08.2011, 14:59 7
О, VladConn уже запостил. Респект!
А я и не заметил
Ещё и думал, что опять накинутся за 'необоснованное пренебрежение встроенными функциями бэйсика' )
Сумрак
13.08.2011, 19:47 8
У Format нет параметра милисикунды.(в спрвочной литературе только SS и S прописаны) только секунды. Но хоть убей не нашел ничего для млмсекунд.
to VladCon Ваша тоже секунды показывает.
VladConn
3 / 3 / 3
Регистрация: 17.10.2007
Сообщений: 1,119
14.08.2011, 05:22 9
Zavtra esche raz vzglyanu. Ya podozrevayu, chto delo eto temnoe (po-krayney mere dlya menya)
0
Konst_one
1 / 1 / 1
Регистрация: 19.07.2007
Сообщений: 737
14.08.2011, 15:28 10
debug.print vba.Time & '.' & vba.Right( vba.Timer*100,2)
0
MIB77
0 / 0 / 0
Регистрация: 12.08.2011
Сообщений: 3
14.08.2011, 15:53  [ТС] 11
Всем спасибо!

Я решил отказаться от засекания точного времени.
Буду использовать таймер, отсекать время от начала работы проги...
0
VladConn
3 / 3 / 3
Регистрация: 17.10.2007
Сообщений: 1,119
14.08.2011, 17:50 12
Da, primer s Format v korne neveren. Spasibo.

Ya provel nebol'shoe rassledovanie. Ya ponimayu, eto nerpostoe ispi'tanie chitat' moyu latinitzu, no prochitat' ee budet, ya nadeus', interesno.

Nuzhno prinyat’ vo vnimanie tot fakt, chto Windows opredelenno ne yavlyaetsya OS, funkzioniruyuschey v rezhime real’nogo vremeni i to, chto sama priroda VB delaet ego neudobnim instrumentom dlya razrabotki program v rezhime real’nogo vremeni.

Odnako, kak udovletvorit’ togda stol’ prostomu trebovaniyu: otscheta vremeni s tochnost’yu do millisekund?

Davayte posmotrim.

V Windows imeyutsya raznoobraznie “taimeri” i “schetchiki” chasov, kotori’e teoreticheski mozhno bi’lo bi’ ispol’zovat.

No v chem raznitza mezhdu “taimerami” i “schetchikami chasov”?

V tzelom, taymer – eto nechto, chto vi’zi’vaet sobi’tie cherez zadanni’e promezhutki vremeni ili v dannoe vremya. V prilozhenii takim sobi’tiem bi’vaet naprimer operatzionnoe soobschenie ili operozionnoe sobi’tie. Hotya esli govorit’ ob etom v kontekste OS, to eto vidimo preri’vaniya.

Schetchik chasov – eto schetchik, kotoryi nakaplivaet svoe znachenie s nekoey discretnoy chastotoy (“tick rate”, English). Ego znachenie mozhet bi’t’ uznano i etim znacheniem budet chislo poschitanni’h “tikov” (“ticks”). Tut vazhno ponyat’, chto “tick rate” kak pravilo obespechivaetsya taymerami (sm. vi’she).

Pochemu eto vazhno? Potomu chto znacheniya bol’shinstva taymerov i schetchikov chasov opredelayutsa ili diktuyutsa systemnim shetchikom vremeni. Posledniy, teoreticheski, obladaet diskretnost’yu:

a) Huzhe chem vi’ mozhete ozhidat’
b) Zaviset’ ot OS

Systemniy shetchik vremeni obladaet rezolutziey neskol’ko bol’she 55 ms na W95/98/Me, 16 ms na NT 3.5, 10ms na NT4/2000, 10 ms ili 15 ms na XP.
Zdes’ stoit ukazat’ na vozmozhnost’ izmeneneniya etih rezolutziy. Nuzhna lish’ hrabrost’ I znanie Kernel.

Vse eti taymeri i shetchiki chasov osnovani na systemnom shetchike vremeni:

Standartniy VB timer (uveryaut v tochnosti 1 milliscond)
SetTimer (uveryaut v tochnosti 1 millisecond)
SetWaitableTimer (uveryaut v tochnosti 1 millisecond)
GetLocalTime (uveryaut v tochnosti 1 millisecond)
GetSystemTime (uveryaut v tochnosti 1 millisecond)
GetSystemTimeAsFileTime (uveryaut v tochnosti 100 nanosecond!!)

I sledovatel’no, ih nastoyaschaya tochnost’ ogranichena na samom dele tochnost’yu systemnogo shetchika vremeni.

Problema stanovitsa esche bolee zaputannoy is-za zatrat vremeni na samo sobitie (prerivanie)
I esli vi rassmatrivaete taymer, kotoriy osnovan na prozesse polucheniya soobscheniya WM_TIMER esche do togo, kak sobitie obsluzheno (naprimer VB timer, SetTimer) vi mozhete poluchit’ esche bol’she neozhidannih zaderzhek poskol’ku WM_TIMER:

a) Soobschenie nizkogo prioriteta
b) Vi mozhete imet’ tol’ko odno takoe soobschenie v potoke v luboy danniy moment vremeni (chto na samom dele oznachaet poteru sobi’tiy).

V Windows konechno stavilis’ trebovaniya k sverh tochnomu podschetu vremeni (bolee tochnomu, chem systemniy shetchik vremeni). Naibolee izvetnim resheniiem yavlyatsa to, chto ispol’zuetsa v MIDI. MIDI trebuet rezolutziyu v 1 millisekundu. Vasha VB programma mozhet poluchit’ dostup k takoy tochnosti cherez timeGetTime ili timeGetSystemTime (pervaya predpochtitel’ney iz-za men’shih systemni’h zatrat).

Raz tak, to ispol’zovanie mul’timediyni’h taymerov – eto neplohaya ideya polucheniya tochnosti do millisekund.

Chto esli mi’ nastol’ko ambitziozni’, chto hotim eche lucshuyu tochnost’? Naprimer, na uriovne sub-millisekund, Mutimedia zdes’ ne mozhet byt’ uzhe ispol’zovana.

Zdes’ rassmatrivayutsya ACPI taymeri’ (ili PM (Power Management) chasi).
Eto chasi’ real’nogo vremeni pitauischie QueryPerformanceFrequency i QueryPerformanceCounter. ACPI taymer imeet chastotu 3.579545MHz i
0
Comanche
14.08.2011, 21:12 13
И правда - интересно!
14.08.2011, 21:12
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.08.2011, 21:12

Как dll запихнуть в exe файл
Как .dll запихнуть в exe’шник. Такое ведь возможно? Кто знает не ленитесь...

Как запихнуть смайлик в буфер обмена и загрузить его в RichTextBox
Подскажите как запихнуть смайлик в буфер обмена и загрузить его в RichTextBox

Format - как вернуть НОМЕР дня недели?
Всем, привет! вернуть с помощью функции Format день недели - без проблем: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru