Re: Как определить программа запущена из среды фокса или скопилировынный ехе-шник ? | |
---|---|
of63 Сообщений: 25256 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
> Тут ещё могут любители COLLATE=RUSSIAN "подсказать" что дескать обычное сравнение то не чувствительно к регистру...
Да? И русские имена функций/переменных не использовать, и их регистр соблюдать, и комментарии писать на английском? А зачем такой нерусский фокс нужен тогда? ) |
Re: Как определить программа запущена из среды фокса или скопилировынный ехе-шник ? | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Фокс изначально нерусский - тебе бы в КАРАТ какой вернуться, или РЕБУС или чо там ещё было Но оно всё давным давно померло...
Впрочем есть же 1с - там всё по-русски ------------------ WBR, Igor |
Re: Как определить программа запущена из среды фокса или скопилировынный ехе-шник ? | |
---|---|
of63 Сообщений: 25256 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
Фокс изначально задумывался как многоязычный, начиная с FPD с его FOXPRO.INT. И ничего из этого не утерялось к VFP9. Как привык к режиму COLLATE=RUSSIAN, так все детали этого COLLATE так и работают, как раньше. Жить в режиме RUSSIAN, или в режиме MACHINE - дело всего лишь привычки, типа "вот такой набор машинных команд у процессора, делай из них, т.к. других нету". Я привык к RUSSIAN и к соотв. поведению оператора сравнения и пр. Можно перепривыкнуть к другому, но зачем? Половина подпрограмм перестанет работать к тому же. Зачем?
|
Re: Как определить программа запущена из среды фокса или скопилировынный ехе-шник ? | |
---|---|
akvvohinc Сообщений: 4224 Откуда: Москва Дата регистрации: 11.11.2008 |
Это не так. *.int появился далеко не сразу - ни в FoxBase, ни в начальных версиях FoxPro языковых поддержек не было. Более того, кто прошел весь путь, должны отлично помнить проблему с заглавной русской "Н" в оригинальной версии Фокса до версии 2.0 точно (кто-то ставил патч, другие просто использовали латинскую H или макро). UPPER()/LOWER() с русскими буквами тоже вначале не работали, народ пользовался SYS(15,...). Ни про какой COLLATE тоже, естественно, тогда никто не мог слышать, а знакомых, которые "приняли" COLLATE после его появления у меня нет. Многие, как и я сам, пробовали, но никто не оценил. Видимо, "многоязычность" появилась лишь после перекупки Фокса у Fox Holdings Майкрософтом, то есть, в версии 2.5. Исправлено 2 раз(а). Последнее : akvvohinc, 28.08.17 01:40 |
Re: Как определить программа запущена из среды фокса или скопилировынный ехе-шник ? | |
---|---|
of63 Сообщений: 25256 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
Ну да, ну да, в 2.5-6, но уже была "переводная", не помню кем, версия 2.0 (с проблемами русской "Н", и еще маленькой буквой "р" вроде...), на 5 дискетах 1.4 МБайта переносилась! И ребята-разрабы с 2.0 поддержали этот посыл, и сделали FOXPRO.int в 2.6, и дотянули это без ухудшений, с обратной совместимостью, до VFP9... И сейчас все это вполне в рабочем состоянии в винде. Это "здорово и вечно"!
Исправлено 1 раз(а). Последнее : of63, 28.08.17 02:16 |
Re: Как определить программа запущена из среды фокса или скопилировынный ехе-шник ? | |
---|---|
Foxtrot Сообщений: 3408 Откуда: Куда: Дата регистрации: 25.04.2003 |
скорее всего проблема в настройках/config.fpw
------------------ Мойте ноги, моя ноги вы моете и руки |
Re: Как определить программа запущена из среды фокса или скопилировынный ехе-шник ? | |
---|---|
Vladimir Sklyar Автор Сообщений: 1397 Дата регистрации: 13.06.2002 |
Ого Вы тут
Спасибо за советы, пока взял VERSION(2) вроде работает ------------------ С уважением Владимир. |
Re: Как определить программа запущена из среды фокса или скопилировынный ехе-шник ? | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Есть принципиальная разница между РАБОТОЙ с русским языком в данных, и НАПИСАНИЕМ ПРОГРАММ на русском языке. Против первого, естественно, никаких возражений нет - хотя я и без COLLATE=RUSSIAN нормально обхожусь. А вот против второго - т.е. написания собственно исходного текста программ на русском языке, и именно в фоксе, я категорически против. Даже комментарии и "текстовые значения" вводимые на русском могут наделать беды (забыл переключиться, и попала в исходник - в имя поля или переменной или метода - непонятно какая буковка а,о,с,х и т.п.) А НАМЕРЕННО писать часть буковок (в идентификаторах, или через константы ещё и в собственно ключевых словах) кириллицей - я лично считаю это извращением. ------------------ WBR, Igor |
Re: Как определить программа запущена из среды фокса или скопилировынный ехе-шник ? | |
---|---|
of63 Сообщений: 25256 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
Почему сразу "извращение", мы же не знаем, что происходит в спальняхи в умах соседей, но видим только фасад. Но это не главное.
Да, использовать русские имена, и вообще русские буквы в коде "неправильно", хотя в русском хелпе на имена переменных этого не сказано. Написано "буквы" и всё. Но русские буквы в коде в русской локали ОС работают как надо, чем я и пользуюсь. () Интересно, что можно обратиться к переменной или функции в макросе (т.е. рантайм+APP заранее не знают, к какой именно переменной будет обращение), причем имя переменной укажем с несоблюдением регистра, и фокс (рантайм) находит эту переменную в APP! Т.е. модель поиска переменной примерно такова - возникающие переменные записываются в внутренний курсор, и поиск нужного имени в нем происходит в режиме COLLATE RUSSIAN, причем независимо от настройки COLLATE в проекте. Откуда фокс знает, что я ищу именно русское имя? Значит он берет локаль ОС, на которой выполняется... Или локаль прошивается в APP при создании APP (FXP), и при запуске этого APP фокс включает эту внутреннюю настройку COLLATE? |
Re: Как определить программа запущена из среды фокса или скопилировынный ехе-шник ? | |
---|---|
Foxtrot Сообщений: 3408 Откуда: Куда: Дата регистрации: 25.04.2003 |
экспериментируешь?
в продуктиве? железные яйца? крепко жму ------------------ Мойте ноги, моя ноги вы моете и руки |
Re: Как определить программа запущена из среды фокса или скопилировынный ехе-шник ? | |
---|---|
of63 Сообщений: 25256 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
С ФПД в таком режиме живу, и никаких проблем не наблюдал... Может, если перенести эту прогу на китайскую локаль, может она и рухнет, но такой задачи не стоит.
|
Re: Как определить программа запущена из среды фокса или скопилировынный ехе-шник ? | |
---|---|
lulgu Сообщений: 1838 Дата регистрации: 30.11.2016 |
Раз долго работает, то и нет смысла исполнять сумбурные советы, которые реально мало чем могут быть подкреплены. Оттого, что вы переименуете переменные, или свои функции перекатаете в методы классов, а переменные в их свойства мало что изменится. Если уж что-то глобально переделывать, то в этом должен быть хоть какой-то смысл. |
Re: Как определить программа запущена из среды фокса или скопилировынный ехе-шник ? | |
---|---|
of63 Сообщений: 25256 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
Да я и не собираюсь менять подход, это абстрактный спор, даже не спор... а типа: "хорошо бы жить по Конституции", или по понятиям, или привести Конституцию к понятиям...
|
Re: Как определить программа запущена из среды фокса или скопилировынный ехе-шник ? | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Потому что лично я это считаю извращением Кому то и мальчик с мальчиком "почему сразу извращение - просто они другие" И спорить по этому вопросу даже и не собираюсь. ------------------ WBR, Igor |
Re: Как определить программа запущена из среды фокса или скопилировынный ехе-шник ? | |
---|---|
akvvohinc Сообщений: 4224 Откуда: Москва Дата регистрации: 11.11.2008 |
А почему сразу COLLATE? Функциям UPPER/LOWER и т.п. никакой COLLATE для работы с русскими буквами не нужен, вполне хватает CODEPAGE. А CODEPAGE действительно "прошивается" в проект - им помечается каждая программа, форма и т.п., а также в таблицы. Исправлено 1 раз(а). Последнее : akvvohinc, 29.08.17 15:31 |
Re: Как определить программа запущена из среды фокса или скопилировынный ехе-шник ? | |
---|---|
of63 Сообщений: 25256 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
Не знаю, почему именно COLLATE, или CODEPAGE, или как это назвать, когда в этом, кроме набора букв и небукв, содержится также соответствие большая-маленькая буквы.
2 ИК Значит ты считаешь мой код извращением... Я припомню |
Re: Как определить программа запущена из среды фокса или скопилировынный ехе-шник ? | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Вот тебе в аттаче простейший пример. Меняем в конфиге кодовую страницу на 1252 и часть программы использующая русские идентификаторы не работает. Та что использует латиницу - продолжает работать.
Т.е. твой код априори является нерабочим для любых пользователей кроме русскоговорящих. И как нужно называть такой код? В VS ситуация чуть получше, там юникод используется и "в принципе" код с использованием любых легальных символов будет всегда рабочим. Правда, для того чтобы им воспользоваться другому программисту придётся изучать твой язык и покупать соответствующую клавиатуру (или использовать виртуальную), т.к. он банально не сможет ввести кириллические символы. Подумай сам, насколько классно было бы тебе работать, если бы некоторые классы, свойства, функции или имена программ были написаны с использованием китайских или там японских иероглифов. Если ты и после этого будешь утверждать что всё делаешь правильно, ну я просто умываю руки ------------------ WBR, Igor |
Re: Как определить программа запущена из среды фокса или скопилировынный ехе-шник ? | |
---|---|
of63 Сообщений: 25256 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
Так и есть, программа не предназначена к продаже в нерусскую локаль, годится исключительно для русских, и еще местами приняты меры, что бы только для определенной конторы Так получилось случайно, но ничего страшного не произошло. Переделывать все болты и резьбы с дюймовой на метрическую поздно, и незачем. Но и называть этот код извращением тоже излишне. Это как СССР называть оплотом мира, или "совок-дерьмо". Всему было свое время, как получилось так и получилось. В вышеуказанных рамках все работает. Пример посмотрю, хотя достаточно применить русскую букву, которая превращается в небукву в другой локали, и тоже хана... наверное
|
Re: Как определить программа запущена из среды фокса или скопилировынный ехе-шник ? | |
---|---|
akvvohinc Сообщений: 4224 Откуда: Москва Дата регистрации: 11.11.2008 |
Просто потому что, COLLATE не "отвечает" за преобразование регистра символов, то есть, за указанное тобой соответствие "большая-маленькая". А вот за то, будет ли буква "Ё" больше или меньше буквы "А" при сравнении строк, отвечает именно COLLATE. И помимо Help'а достаточно обратиться к "корням" - ведь COLLATE - это не просто бессмысленный набор букв, а вполне реальное английское слово, которое имеет реальное смысловое наполнение. |
Re: Как определить программа запущена из среды фокса или скопилировынный ехе-шник ? | |
---|---|
of63 Сообщений: 25256 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
Спасибо за информацию.
|
© 2000-2024 Fox Club  |