Техническая поддержка :

Современные решения

для защиты Windows программ

и восстановления исходного кода

Обсуждение программирования на Visual Basic в конференции ru.visual.basic


Изменить атpибут у гpуппы файлов

H!, _[All]_!
Как сделать сабж?
SetAttr "C:\gg\*.*", Normal
Так не получается.

g'bye and g'luck, _[All]_!
* Origin: Down/Upload Soft - [SVALKA.TK] (2:5054/29.33)


Re: Изменить атpибут у гpуппы файлов

Мы где-то виделись, Alexander?

21 Feb 04 19:28:11 в RU.VISUAL.BASIC Alexander Abramencov -> All:

AA> Как сделать сабж?
AA> SetAttr "C:\gg\*.*", Normal
AA> Так не получается.

Перебери все файлы через Dir, и для каждого отдельного файла устанавливай
нужные атрибуты.

Всего хорошего!
Дмитрий Козырев aka Master

* Origin: Дорогу осилит идущий. (2:5023/11.148)


Многоязыковая поддержка...

From: Максим Кнышов

Привет всем!

Делаю многоязыкоую поддержку для своей программы и возник вопрос: где и в каком виде
хранить эти самые надписи? Первое, что приходит на ум, так это в простом ini-файле, но
мне хотелось бы как-то иначе, чтобы нельзя было просто так отредактировать.

Идеальный ваприант - ActiveX DLL, но в каком виде все это организовать - идей пока нет,
не подскажите че-нить путнее?

PS: "путнее" - это от слова "нормальное", а не от "Путин" :))
--
•>ўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўў<•
Максим Кнышов [ knyshow#mail.dsip.net ] [ gbu.dvostok.com ]
•>ўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўў<•
Последняя версия программы Golden BackUp ( gbu.dvostok.com ) - 0.0.188 Beta 9
•>ўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўў<•













* Origin: КПКП "Транс Агентство" (2:5020/400)


Многоязыковая поддержка...

XC: arc-echo
Здравствуй, Максим!

МК> Делаю многоязыкоую поддержку для своей программы и возник вопрос: где
МК> и в каком виде хранить эти самые надписи? Первое, что приходит на ум,
МК> так это в простом ini-файле, но мне хотелось бы как-то иначе, чтобы
МК> нельзя было просто так отредактировать.
А ты их не хpани:) Пyскай в самой пpоге бyдет массив текстовых пеpеменных, вылазиющих в зависимости от языка. Если хочешь отдельно хpанить, то создай свою кодиpовкy.

До свиданья, Максим!
[АмГУ/ФСH]
* Origin: Кофе без кокаина, пожалуйста. (2:5041/2000)


Re: Многоязыковая поддержка...

From: Максим Кнышов

Привет Andrei!

AF> А ты их не хpани:) Пyскай в самой пpоге бyдет массив текстовых пеpеменных, вылазиющих
AF> в зависимости от языка.
Hе, это не катит. Если прога будет переведена на еще один язык каким-то добровольцем, то
мне прийдется переписывать программу? Я вообще-то планирую вот что:
- в отдельной папке хранятся файлы опеределенного формата, каждый содержит в себе какой-то
язык;
- про запуске программа составляет список этих файлов и языков, содержащихся в них;
- в файле настроек программы указан текущий используемый язык.

Так вот вопрос состоит в следующем: какой формат файлов использовать, при том, что,
желательно, этот файл не должен быть читаемым при открытии в Блокноте. Если использовать
ActiveX DLL (а мне хотелось бы использовать именно какую-нить длл), то в каком виде это
можно организовать, т.к. с ActiveX Dll я не работал (разве что изменял чужие под свои
нужды немного, да и 5 минут назад написал одну, которая складывает два числа и возвращает
результат :((( )

AF> Если хочешь отдельно хpанить, то создай свою кодиpовкy.
Кодировку? Это что? Это как? Моя твоя не понимать... в смысле, поробнее можно?


--
•>ўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўў<•
Максим Кнышов [ knyshow#mail.dsip.net ] [ gbu.dvostok.com ]
•>ўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўў<•
Последняя версия программы Golden BackUp ( gbu.dvostok.com ) - 0.0.188 Beta 9
•>ўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўў<•













* Origin: КПКП "Транс Агентство" (2:5020/400)


Re: Многоязыковая поддержка...

From: "Sergey Merzlikin"

> Делаю многоязыкоую поддержку для своей программы и возник
вопрос: где и в каком виде
>
> Так вот вопрос состоит в следующем: какой формат файлов использовать, при
том, что,
> желательно, этот файл не должен быть читаемым при открытии в Блокноте.
Если использовать
> ActiveX DLL (а мне хотелось бы использовать именно какую-нить длл), то в
каком виде это
> можно организовать, т.к. с ActiveX Dll я не работал (разве что изменял
чужие под свои
> нужды немного, да и 5 минут назад написал одну, которая складывает два
числа и возвращает
> результат :((( )
>

Решил посмотреть на эту самую мощно рекламируемую в каждом письме "свою
программу", и вижу: в программном каталоге лежит ActiveX Dll MenuMaker.dll,
а на ней копирайт: Copyright№ 2003 М.Кнышов. Dll совсем не простая, и
написана довольно грамотно. Если это и есть та самая "измененная под свои
нужды" чужая Dll, мой совет - попросить у ее автора пару уроков: наверное,
не откажет, раз позволил сменить копирайт. А вообще это те азы, без знания
которых обычно за коммерческий софт не берутся.

Теперь по сути вопроса: наиболее распространенный способ решения задачи:
Resource-only Dll. Для каждого языка (или для нескольких сразу) создается по
одной Dll, не содержащей кода. Библиотека не обязательно должна быть
ActiveX, но VB6 других делать не умеет. Каждая из библиотек содержит набор
ресурсов на своем языке (языках). В основной программе в зависимости от
выбранного языка загружается та или иная Dll через API LoadLibrary
(Reference в проекте не требуется), и по мере необходимости загружаются
нужные ресурсы с помощью API LoadString или LoadImage. Переводчикам
предоставляется исходник ресурсного файла (.rc - файл). Hедостатком данного
метода является возможность локализации только статических ресурсов (строки,
рисунки), но не поведения программы (условного выполнения различных участков
кода). Последнее бывает иногда нужно (первое, что приходит на ум - склонение
единиц размерности: 1 час - 2 часа - 6 часов).
Я обычно использую другие 2 способа: Для простых программ выношу все, что
подлежит локализации, - текстовые константы и отдельные функции и процедуры,
в отдельный .bas - файл, разный для каждой языковой версии. При переводе на
очередной язык создается копия проекта, в нем заменяется модуль и, возможно,
некоторые картинки, и происходит компиляция отдельной языковой версии
программы. Переводчику предоставляется исходник .bas - файла. Для более
сложных программ я для каждого языка или группы языков создаю ActiveX Dll,
реализующую заранее определенный интерфейс (см. ключевое слово Implements),
методы и свойства интерфейса отдают локализованные строки, картинки или
выполняют какие-то другие действия. В основной программе в зависимости от
языка загружается та или иная Dll через CreateObject (Reference в проекте
требуется на любую из языковых версий), создается ссылка на интерфейс, и по
этой ссылке вызываются свойства и методы. Так можно изменять язык
динамически, в процессе работы программы. Переводчикам передается шаблонный
исходник проекта Dll. Как хранить строки и картинки в Dll, решают сами
авторы перевода - хоть в константах, хоть в ресурсах, хоть во внешних
файлах, лишь бы соблюдался интерфейс и не страдала производительность.

--
Сергей Мерзликин
www.smsoft.ru/ru/


* Origin: Sovintel (2:5020/400)


Многоязыковая поддержка...

From: Максим Кнышов

Привет Sergey!

SM> Если это и есть та самая "измененная под свои нужды" чужая Dll,
SM> мой совет - попросить у ее автора пару уроков: наверное, не откажет, раз позволил
SM> сменить копирайт. А вообще это те азы, без знания которых обычно за коммерческий
SM> софт не берутся.
Эта не та DLL, автор разговаривает только на Английском и Hемецком, а это языки, на
которых я разговариваю только при помощи www.translate.ru. Т.е. вы сами понимаете, что при
таком раскладе я мало чему могу у него научиться. Hа menumaker.dll было получено
разрешение "Делай что хочешь, только если будешь менять исходники - мое имя не свети".
Сейчас этот человек переписывает свою DLL по моей просьбе "под меня" и там уже будет стоять
ЕГО копирайт.


SM> А вообще это те азы, без знания которых обычно за коммерческий софт не берутся.
Теперь по поводу коммерческого софта:
В дистрибутиве следующей версии будет файл Readme.txt, в котором есть такие строки:

SM> Иногда мне люди задают вопросы наподобие: "Зачем создавать велосипед? Ведь
SM> подобных программ - огромное количество!" Я отвечу на этот и подобные ему
SM> вопросы раз и навсегда:
SM> Программа Golden BackUp изначально создавалась для ЛИЧHОГО использования мною
SM> для резервного копирования важной мне информации и поводом для ее создания
SM> послужил выход из строя моего старенького винчестера, после чего я еще пару
SM> месяцев был в дипрессии. Так вот, программа писалась ДЛЯ СЕБЯ, набирала
SM> возможностей, модифицировалась под конкретные задачи, но тем не менее
SM> изначально писалась как универсальная. Спустя некоторое время мне просто за
SM> бокалом пива предложили выложить программу в Интернет, что и было сделано.
SM>
SM> Второй вопрос, который мне частенько задают: "Почему на программу выставлена
SM> такая низная/высокая цена?" Цена выставлена не просто так - этой ценой я
SM> оправдываю стоимость доступа в Интернет, стоимость кофе и пива, потребляемого
SM> мною во время написания программы. И все. Если говорить откровенно - никакой
SM> прибыли. Хобби.
Т.е. это дейсчтвительно хобби, которое реально прибыли (пока?) не приносит.

SM> Теперь по сути вопроса:
Спасибо, очень интересно.
--
•>ўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўў<•
Максим Кнышов [ knyshow#mail.dsip.net ] [ gbu.dvostok.com ]
•>ўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўў<•
Последняя версия программы Golden BackUp ( gbu.dvostok.com ) - 0.0.188 Beta 9
•>ўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўў<•














* Origin: КПКП "Транс Агентство" (2:5020/400)


Упаковка в ZIP и CAB

From: Максим Кнышов

Привет Dmitriy!

DK> А нафига? Для галочки?
А если и так?
DK> Смысла не вижу. Rar, Cab и Zip лидируют с огромным
Zip? Cab - прекрасно, а вот под Rar я что-то никакой доки не нашел..

DK> существуют новые архиваторы, обгоняющие даже Rar - например, PPMd и основанный на нем
DK> PPMonstr).
Hе слышал, но посмотрим, пасиба.
--
•>ўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўў<•
Максим Кнышов [ knyshow#mail.dsip.net ] [ gbu.dvostok.com ]
•>ўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўў<•
Последняя версия программы Golden BackUp ( gbu.dvostok.com ) - 0.0.188 Beta 9
•>ўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўў<•














* Origin: КПКП "Транс Агентство" (2:5020/400)


Правильное построение SQL- запроса

From: "Vasiliy Khorolich"

Уважаемый All!
Помогите, пожалуйста, решить мою проблему.
Суть вот в чем:
Имеется некий SQL - запрос к базе Access :

SQLstr = " SELECT * FROM Kurs_City WHERE Kurs_City.Date ='" & S_Data & "'"
где
S_Data = txtData.Text
Т.е. вводится в текстовое поле некая дата (она получается типа String) , а
потом по этому значению ставится фильтр из базы Access.

Проблема в том, что надо установить в самой таблице Kurs_City базы Access
поле Date типа Дата/Время, чтобы потом поставить по нему индекс (так надо,
для решения важного аспекта задачи).
HО! Если поставить тип этого поля в таблице Access - Дата/Время, то
SQL-запрос, указанный выше, напрочь отказывается работать.
Понимаю, что налицо - несовпадение типов данных - Дата/Время и String , но
как выйти из этой проблемы?
Пробовал делать так :

SQLstr = " SELECT * FROM Kurs_City WHERE Kurs_City.Date ='" & CDate(S_Data)
& "'"
но этого ничего не дало, выдает ошибку во время выполнения...

Если поставить тип поля - Текстовый, SQL-запрос работает без проблем. HО!
Тогда не работает нормально другая часть задачи.
Помогите, как выйти из этой проблемы.

Василий Хоролич.


* Origin: Demos online service (2:5020/400)


Re: Правильное построение SQL- запроса

Мы где-то виделись, Vasiliy?

23 Feb 04 09:34:56 в RU.VISUAL.BASIC Vasiliy Khorolich -> All:

VK> Проблема в том, что надо установить в самой таблице Kurs_City базы Access
VK> поле Date типа Дата/Время, чтобы потом поставить по нему индекс (так надо,
VK> для решения важного аспекта задачи).
VK> HО! Если поставить тип этого поля в таблице Access - Дата/Время, то
VK> SQL-запрос, указанный выше, напрочь отказывается работать.
VK> Понимаю, что налицо - несовпадение типов данных - Дата/Время и String , но
VK> как выйти из этой проблемы?
VK> Пробовал делать так :

VK> SQLstr = " SELECT * FROM Kurs_City WHERE Kurs_City.Date ='" &
VK> CDate(S_Data) & "'"
VK> но этого ничего не дало, выдает ошибку во время выполнения...

Попробуй вместо одинарных кавычек использовать символ #.

Всего хорошего!
Дмитрий Козырев aka Master

* Origin: Дорогу осилит идущий. (2:5023/11.148)



Назад Содержание Вперед




Главная     Программы     Статьи     Разное     Форум     Контакты