Страница 2 из 2
Re: дата и время таблицы
Добавлено: 02 авг 2013, 08:25
Роман01
Я запустил Вашу программу (от 26 марта 2013г.) . Она выдала результат: день 18415632 Час 0.
Реально этот файл 29.07.2013 08:33
Как мне изменить программу, чтобы я видел 29.07.2013 ?
Пожалуйста, помогите!
Re: дата и время таблицы
Добавлено: 02 авг 2013, 08:35
Роман01
Или отдельно 2013, 07, 29. Или как перевести число 18415632? Но дата 29.07.2013 - это число 41484.
Re: дата и время таблицы
Добавлено: 02 авг 2013, 08:52
dab
Роман01 писал(а):Я запустил Вашу программу (от 26 марта 2013г.) . Она выдала результат: день 18415632 Час 0.
Роман я же написал, что "
В принципе должно быть
приблизительно так"
Суть сюжета к Mapbasic не имеет никакого отношения, это WinAPI.
Быть может этот код и не должен работать в MB из-за различия в типах данных, а работает только в VB.
Не зацикливайтесь, воспользуйтесь, например, советом
thegeo
Re: дата и время таблицы
Добавлено: 02 авг 2013, 09:12
Роман01
А там еще хуже:
Declare Sub Main
Declare Method myDateFileCreation
Class "dttm.myDateTime" Lib "dttm.dll"
(ByVal pth As String) As String
Sub Main
dim fullFileName as string
fullFileName="C:\_00\SpData.txt"
print myDateFileCreation(fullFileName)
end sub
Выдает ошибки в строках:
2: Found [method] while searching for [sub]
6: Excepting sub or function
9: Unrecognized comman: (
Re: дата и время таблицы
Добавлено: 02 авг 2013, 09:29
juffin_h
dab писал(а):Роман01 писал(а):
Помогите, пожалуйста, определить настоящую дату файла.
Роман, извините, не могу помочь - не понимаю в чём проблема с этим кодом

Проблема в типе. WORD = SmallInt.
Код: Выделить всё
Type SystemTime
wYear As SmallInt
wMonth As SmallInt
wDayOfWeek As SmallInt
wDay As SmallInt
wHour As SmallInt
wMinute As SmallInt
wSecond As SmallInt
wMilliseconds As SmallInt
End Type
Так все работает.
Re: дата и время таблицы
Добавлено: 02 авг 2013, 11:15
Роман01
Type SystemTime
wYear As SmallInt
wMonth As SmallInt
wDayOfWeek As SmallInt
wDay As SmallInt
wHour As SmallInt
wMinute As SmallInt
wSecond As SmallInt
wMilliseconds As SmallInt
End Type
Type FileTime
dwLowDateTime As SmallInt
dwHighDateTime As SmallInt
End Type
Declare Function GetFileTime Lib "kernel32" Alias "GetFileTime"
(ByVal hFile As SmallInt, lpCreationTime As FILETIME,
lpLastAccessTime As FILETIME, lpLastWriteTime As FILETIME) As SmallInt
Declare Function lopen Lib "kernel32" Alias "_lopen"
(ByVal lpFileName As String, ByVal wReadWrite As SmallInt) As SmallInt
Declare Function lclose Lib "Kernel32" Alias "_lclose"
(ByVal hFile As SmallInt) As SmallInt
Declare Function FileTimeToSystemTime Lib "kernel32" Alias "FileTimeToSystemTime"
(lpFileTime As FILETIME, lpSystemTime As SYSTEMTIME) As SmallInt
Declare Function FileTimeToLocalFileTime Lib "kernel32" Alias "FileTimeToLocalFileTime"
(lpFileTime As FILETIME, lpLocalFileTime As FILETIME) As SmallInt
Dim ihFile As SmallInt
Dim ftLocal, ftCreate, ftAccess, ftWrite As FileTime
Dim stCreateFile As SystemTime
Dim iTemp As SmallInt
ihFile = lOpen("C:\Mapinfo\mapbasic\T_kolw.dat", 0)
iTemp = GetFileTime(ihFile, ftCreate, ftAccess, ftWrite)
iTemp = FileTimeToLocalFileTime(ftCreate, ftLocal)
iTemp = FileTimeToSystemTime(ftLocal, stCreateFile)
Note "День " + Str$(stCreateFile.wDay) + "месяц " + Str$(stCreateFile.wMonth)
+"год " + Str$(stCreateFile.wYear)
iTemp = lClose(ihFile)
Но почему-то выдает текущую дату, а не дату файла.
Помогите, пожалуйста!
Re: дата и время таблицы
Добавлено: 02 авг 2013, 12:52
dab
Роман01 писал(а):...
Но почему-то выдает текущую дату, а не дату файла.
Я поменял тип Integer на SmallInt
только при определении типа SystemTime, как и указано в посте
viewtopic.php?f=17&t=10137&view=unread& ... b99#p94103
Всё работает правильно.
Re: дата и время таблицы
Добавлено: 12 сен 2013, 11:13
Роман01
Еще одна небольшая просьба.
А как узнать дату последнего изменения? (а не создания файла)
Что нужно и на что исправить?
Пожалуйста, помогите!
Re: дата и время таблицы
Добавлено: 13 сен 2013, 07:24
juffin_h
В результате вызова GetFileTime(ihFile, ftCreate, ftAccess, ftWrite)
ftCreate - время создания
ftAccess - время доступа
ftWrite - время модификации (изменения)
Дальнейшие действия с ftAccess и ftWrite такие же как и с ftCreate.
P.S. Читайте Windws API.
Re: дата и время таблицы
Добавлено: 13 сен 2013, 11:25
Роман01
Спасибо!
Почему у меня в строке Commit Table ... выдает Unable to create new table. (Не удалось создать новую таблицу?)
if od1>od2 or ihFile2=-1 Then
Open Table "\\192.168.1.1\public\Proekty\MapBasic\T_kolk.tab" Interactive As Dob4
Commit Table Dob4 As "c:\MapInfo\MapBasic\T_kolk.tab"
Close Table Dob4
end if