Всем, здравствуйте!
У меня возник такой вопрос. У меня есть таблица, она называется "Москва". Можно ли сохранить эту таблицу как "Москва_09022009"? То есть чтоб в название вводилась автоматически дата?
Дата в MapBasic
-
- Новоприбывший
- Сообщения: 5
- Зарегистрирован: 27 ноя 2008, 08:51
- Репутация: 0
-
- Гуру
- Сообщения: 4231
- Зарегистрирован: 10 апр 2006, 22:34
- Репутация: -344969098
- Откуда: Париж
Re: Дата в MapBasic
Если ваша задача состоит в том, что бы при сохранении таблицы из оболочки MapInfo, она сохранялась с некоторым суффиксом, то ответ на ваш вопрос не может быть однозначен. В общем случае - ДА. В деталях - нет. На пример, если после внесения изменений в таблицу, вы попробуете ее закрыть, Mapinfo обязательно спросит вас сохранять изменения или нет. Если вы ответите Да, то в ход пойдет внутренняя команда сохранения - перехватить ее вам не удастся.
Если же речь идет о том, что бы добавить в MapInfo команду меню или кнопку "Сохранить с добавлением даты", то ответ - безусловно Да. Поскольку каждая кнопка и строка меню могут быть переназначены на соответствующую программу в MapBasic'е. А в нем ничто не может вам помешать добавлять к имени таблицы любые данные.
Если написанное выше - не ответ на ваш вопрос, то добавьте в него деталей.
--------------
Дополнительное замечание:
Российский формат записи дат удобен для произнесения и интуитивного восприятия - день-месяц-год. Но он неестественен для последовательного именования файлов, поскольку при любой стандартной сортировке файлов не обеспечивает последовательности названия-даты. Правильным является формат YYYYMMDD, так только он задает возрастающие последовательности для возрастающих дат.
Если же речь идет о том, что бы добавить в MapInfo команду меню или кнопку "Сохранить с добавлением даты", то ответ - безусловно Да. Поскольку каждая кнопка и строка меню могут быть переназначены на соответствующую программу в MapBasic'е. А в нем ничто не может вам помешать добавлять к имени таблицы любые данные.
Если написанное выше - не ответ на ваш вопрос, то добавьте в него деталей.
--------------
Дополнительное замечание:
Российский формат записи дат удобен для произнесения и интуитивного восприятия - день-месяц-год. Но он неестественен для последовательного именования файлов, поскольку при любой стандартной сортировке файлов не обеспечивает последовательности названия-даты. Правильным является формат YYYYMMDD, так только он задает возрастающие последовательности для возрастающих дат.
-
- Новоприбывший
- Сообщения: 5
- Зарегистрирован: 27 ноя 2008, 08:51
- Репутация: 0
Re: Дата в MapBasic
Я вот вчера мучилась целый день и вот что поняла. Если написать вот так:
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 много комбинаций и условий пробовала, но не помогает... Вот...Не знаю понятно ли я изъяснилась...Вы не знаете ещё какой-нить способ?
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 много комбинаций и условий пробовала, но не помогает... Вот...Не знаю понятно ли я изъяснилась...Вы не знаете ещё какой-нить способ?
-
- Гуру
- Сообщения: 4231
- Зарегистрирован: 10 апр 2006, 22:34
- Репутация: -344969098
- Откуда: Париж
Re: Дата в MapBasic
Строка с датами:
Format$(Day(CurDate()),"00") & Format$(Month(CurDate()),"00") & Year(CurDate())
Заходите спросить как узнать имя таблицы и путь к ней - пишите.
Format$(Day(CurDate()),"00") & Format$(Month(CurDate()),"00") & Year(CurDate())
Заходите спросить как узнать имя таблицы и путь к ней - пишите.
-
- Новоприбывший
- Сообщения: 5
- Зарегистрирован: 27 ноя 2008, 08:51
- Репутация: 0
Re: Дата в MapBasic
Это то, что надо! Супер! Спасибо огромное!!! 

Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость