2014-01-27 7 views
1

Мне нужно внести изменения в устаревшее приложение, написанное на Turbo Pascal 7, которое требует от меня узнать текущее смещение часового пояса. Программа запускается в окне DOS в 32-разрядной среде XP.Turbo Pascal для DOS - Как получить текущее смещение часового пояса

Кто-нибудь знает, как это сделать?

** EDIT **

я, вероятно, следует добавить, что причиной этого вопроса, потому что я хочу знать, время UTC, то есть я хочу способ захода в GetSystemTime эквивалент из DOS.

ответ

2

Попробуйте использовать инструкцию Exec в Pascal для запуска вывода команды systeminfo DOS с помощью канала, а затем проанализировать полученный результат с помощью Pascal. Пример ...

c:\>systeminfo | find "Time Zone" 
Time Zone:     (UTC-05:00) Eastern Time (US & Canada) 

c:\> 

Для получения результата требуется секунда в Windows 7, но он должен работать быстрее на XP.

+0

Умный. Жаль, что так долго. Жаль, что нет параметров командной строки для предоставления подмножества информации. Я мог бы поэкспериментировать с этим. Возможно, немного сократите вывод команды и установите переменную окружения, предполагая, что я тоже могу прочитать это в DOS, что будет значительно быстрее. Затем команда 'systeminfo' могла запускаться нечасто - скажем, ежечасно. – rossmcm

+0

Вы можете использовать другую программу DOS, кроме sysinfo (что-то, что вы устанавливаете), или попытаться получить настройку из реестра Turbo Pascal, поддерживает такую ​​вещь. –

+0

Хммм ... @Rick, TP, похоже, не поддерживает реестр. – rossmcm

Смежные вопросы