Страница 1 из 1

Дата в MapBasic

Добавлено: 09 фев 2009, 12:06
Татьяна
Всем, здравствуйте!
У меня возник такой вопрос. У меня есть таблица, она называется "Москва". Можно ли сохранить эту таблицу как "Москва_09022009"? То есть чтоб в название вводилась автоматически дата?

Re: Дата в MapBasic

Добавлено: 10 фев 2009, 00:44
Boris
Если ваша задача состоит в том, что бы при сохранении таблицы из оболочки MapInfo, она сохранялась с некоторым суффиксом, то ответ на ваш вопрос не может быть однозначен. В общем случае - ДА. В деталях - нет. На пример, если после внесения изменений в таблицу, вы попробуете ее закрыть, Mapinfo обязательно спросит вас сохранять изменения или нет. Если вы ответите Да, то в ход пойдет внутренняя команда сохранения - перехватить ее вам не удастся.
Если же речь идет о том, что бы добавить в MapInfo команду меню или кнопку "Сохранить с добавлением даты", то ответ - безусловно Да. Поскольку каждая кнопка и строка меню могут быть переназначены на соответствующую программу в MapBasic'е. А в нем ничто не может вам помешать добавлять к имени таблицы любые данные.
Если написанное выше - не ответ на ваш вопрос, то добавьте в него деталей.
--------------
Дополнительное замечание:
Российский формат записи дат удобен для произнесения и интуитивного восприятия - день-месяц-год. Но он неестественен для последовательного именования файлов, поскольку при любой стандартной сортировке файлов не обеспечивает последовательности названия-даты. Правильным является формат YYYYMMDD, так только он задает возрастающие последовательности для возрастающих дат.

Re: Дата в MapBasic

Добавлено: 10 фев 2009, 11:22
Татьяна
Я вот вчера мучилась целый день и вот что поняла. Если написать вот так:
Commit Table Moscow As "D:\Moscow" & CurDate() & ".TAB"
то получается Moscow20090210, а мне надо 10022009. Если написать вот так:
Commit Table Moscow As "D:\Moscow" & FormatDate$(CurDate()) & ".TAB"
то получается Moscow10.02.2009. Если написать вот так:
Commit Table Moscow As "D:\Moscow" & Day(CurDate()) & Month(CurDate()) & Year(CurDate()) & ".TAB"
то получается Moscow1022009. То есть месяц пишет не "02", а просто "2". Я вчера придумала один способ выйти из этой ситуации, но он получился оочень длинным. Может есть ещё какая-нибудь функция, которая возвращает дату? Я пробовала и условие ставить, что
If Len(Month(CurDate)) = 1 Then
Commit Table Moscow As "D:\Moscow" & Day(CurDate()) & "0" & Month(CurDate()) & Year(CurDate()) & ".TAB"
Но MapBasic(или MapInfo) считает все равно,что "2" - это "02" и условие не выполняет. Я с этим Len много комбинаций и условий пробовала, но не помогает... Вот...Не знаю понятно ли я изъяснилась...Вы не знаете ещё какой-нить способ?

Re: Дата в MapBasic

Добавлено: 10 фев 2009, 12:57
Boris
Строка с датами:
Format$(Day(CurDate()),"00") & Format$(Month(CurDate()),"00") & Year(CurDate())
Заходите спросить как узнать имя таблицы и путь к ней - пишите.

Re: Дата в MapBasic

Добавлено: 11 фев 2009, 09:00
Татьяна
Это то, что надо! Супер! Спасибо огромное!!! :D