:: Visual Foxpro, Foxpro for DOS
Re: Как определить программа запущена из среды фокса или скопилировынный ехе-шник ?
of63

Сообщений: 25256
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
> Тут ещё могут любители COLLATE=RUSSIAN "подсказать" что дескать обычное сравнение то не чувствительно к регистру...
Да? И русские имена функций/переменных не использовать, и их регистр соблюдать, и комментарии писать на английском? А зачем такой нерусский фокс нужен тогда? )
Ratings: 0 negative/0 positive
Re: Как определить программа запущена из среды фокса или скопилировынный ехе-шник ?
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Фокс изначально нерусский - тебе бы в КАРАТ какой вернуться, или РЕБУС или чо там ещё было Но оно всё давным давно померло...

Впрочем есть же 1с - там всё по-русски


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Как определить программа запущена из среды фокса или скопилировынный ехе-шник ?
of63

Сообщений: 25256
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Фокс изначально задумывался как многоязычный, начиная с FPD с его FOXPRO.INT. И ничего из этого не утерялось к VFP9. Как привык к режиму COLLATE=RUSSIAN, так все детали этого COLLATE так и работают, как раньше. Жить в режиме RUSSIAN, или в режиме MACHINE - дело всего лишь привычки, типа "вот такой набор машинных команд у процессора, делай из них, т.к. других нету". Я привык к RUSSIAN и к соотв. поведению оператора сравнения и пр. Можно перепривыкнуть к другому, но зачем? Половина подпрограмм перестанет работать к тому же. Зачем?
Ratings: 0 negative/0 positive
Re: Как определить программа запущена из среды фокса или скопилировынный ехе-шник ?
akvvohinc

Сообщений: 4224
Откуда: Москва
Дата регистрации: 11.11.2008
of63
Фокс изначально задумывался как многоязычный, начиная с FPD с его FOXPRO.INT.

Это не так.

*.int появился далеко не сразу - ни в FoxBase, ни в начальных версиях FoxPro языковых поддержек не было.
Более того, кто прошел весь путь, должны отлично помнить проблему с заглавной русской "Н" в оригинальной версии Фокса до версии 2.0 точно (кто-то ставил патч, другие просто использовали латинскую H или макро).

UPPER()/LOWER() с русскими буквами тоже вначале не работали, народ пользовался SYS(15,...). Ни про какой COLLATE тоже, естественно, тогда никто не мог слышать, а знакомых, которые "приняли" COLLATE после его появления у меня нет. Многие, как и я сам, пробовали, но никто не оценил.

Видимо, "многоязычность" появилась лишь после перекупки Фокса у Fox Holdings Майкрософтом, то есть, в версии 2.5.



Исправлено 2 раз(а). Последнее : akvvohinc, 28.08.17 01:40
Ratings: 0 negative/0 positive
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
Ratings: 0 negative/0 positive
Re: Как определить программа запущена из среды фокса или скопилировынный ехе-шник ?
Foxtrot

Сообщений: 3408
Откуда: Куда:
Дата регистрации: 25.04.2003
скорее всего проблема в настройках/config.fpw


------------------
Мойте ноги, моя ноги вы моете и руки
Ratings: 0 negative/0 positive
Re: Как определить программа запущена из среды фокса или скопилировынный ехе-шник ?
Vladimir Sklyar
Автор

Сообщений: 1397
Дата регистрации: 13.06.2002
Ого Вы тут

Спасибо за советы, пока взял VERSION(2) вроде работает


------------------
С уважением Владимир.
Ratings: 0 negative/0 positive
Re: Как определить программа запущена из среды фокса или скопилировынный ехе-шник ?
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
of63
Фокс изначально задумывался как многоязычный
Есть принципиальная разница между РАБОТОЙ с русским языком в данных, и НАПИСАНИЕМ ПРОГРАММ на русском языке.
Против первого, естественно, никаких возражений нет - хотя я и без COLLATE=RUSSIAN нормально обхожусь.
А вот против второго - т.е. написания собственно исходного текста программ на русском языке, и именно в фоксе, я категорически против. Даже комментарии и "текстовые значения" вводимые на русском могут наделать беды (забыл переключиться, и попала в исходник - в имя поля или переменной или метода - непонятно какая буковка а,о,с,х и т.п.)
А НАМЕРЕННО писать часть буковок (в идентификаторах, или через константы ещё и в собственно ключевых словах) кириллицей - я лично считаю это извращением.


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Как определить программа запущена из среды фокса или скопилировынный ехе-шник ?
of63

Сообщений: 25256
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Почему сразу "извращение", мы же не знаем, что происходит в спальняхи в умах соседей, но видим только фасад. Но это не главное.

Да, использовать русские имена, и вообще русские буквы в коде "неправильно", хотя в русском хелпе на имена переменных этого не сказано. Написано "буквы" и всё. Но русские буквы в коде в русской локали ОС работают как надо, чем я и пользуюсь.

() Интересно, что можно обратиться к переменной или функции в макросе (т.е. рантайм+APP заранее не знают, к какой именно переменной будет обращение), причем имя переменной укажем с несоблюдением регистра, и фокс (рантайм) находит эту переменную в APP! Т.е. модель поиска переменной примерно такова - возникающие переменные записываются в внутренний курсор, и поиск нужного имени в нем происходит в режиме COLLATE RUSSIAN, причем независимо от настройки COLLATE в проекте. Откуда фокс знает, что я ищу именно русское имя? Значит он берет локаль ОС, на которой выполняется... Или локаль прошивается в APP при создании APP (FXP), и при запуске этого APP фокс включает эту внутреннюю настройку COLLATE?
Ratings: 0 negative/0 positive
Re: Как определить программа запущена из среды фокса или скопилировынный ехе-шник ?
Foxtrot

Сообщений: 3408
Откуда: Куда:
Дата регистрации: 25.04.2003
экспериментируешь?
в продуктиве?
железные яйца?
крепко жму горло руку


------------------
Мойте ноги, моя ноги вы моете и руки
Ratings: 0 negative/1 positive
Re: Как определить программа запущена из среды фокса или скопилировынный ехе-шник ?
of63

Сообщений: 25256
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
С ФПД в таком режиме живу, и никаких проблем не наблюдал... Может, если перенести эту прогу на китайскую локаль, может она и рухнет, но такой задачи не стоит.
Ratings: 0 negative/0 positive
Re: Как определить программа запущена из среды фокса или скопилировынный ехе-шник ?
lulgu

Сообщений: 1838
Дата регистрации: 30.11.2016
of63
С ФПД в таком режиме живу, и никаких проблем не наблюдал... Может, если перенести эту прогу на китайскую локаль, может она и рухнет, но такой задачи не стоит.

Раз долго работает, то и нет смысла исполнять сумбурные советы, которые реально мало чем могут быть подкреплены.
Оттого, что вы переименуете переменные, или свои функции перекатаете в методы классов, а переменные в их свойства мало что изменится.
Если уж что-то глобально переделывать, то в этом должен быть хоть какой-то смысл.
Ratings: 1 negative/0 positive
Re: Как определить программа запущена из среды фокса или скопилировынный ехе-шник ?
of63

Сообщений: 25256
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Да я и не собираюсь менять подход, это абстрактный спор, даже не спор... а типа: "хорошо бы жить по Конституции", или по понятиям, или привести Конституцию к понятиям...
Ratings: 0 negative/0 positive
Re: Как определить программа запущена из среды фокса или скопилировынный ехе-шник ?
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
of63
Почему сразу "извращение"
Потому что лично я это считаю извращением
Кому то и мальчик с мальчиком "почему сразу извращение - просто они другие"
И спорить по этому вопросу даже и не собираюсь.


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Как определить программа запущена из среды фокса или скопилировынный ехе-шник ?
akvvohinc

Сообщений: 4224
Откуда: Москва
Дата регистрации: 11.11.2008
of63
Откуда фокс знает, что я ищу именно русское имя? Значит он берет локаль ОС, на которой выполняется... Или локаль прошивается в APP при создании APP (FXP), и при запуске этого APP фокс включает эту внутреннюю настройку COLLATE?

А почему сразу COLLATE?
Функциям UPPER/LOWER и т.п. никакой COLLATE для работы с русскими буквами не нужен, вполне хватает CODEPAGE.
А CODEPAGE действительно "прошивается" в проект - им помечается каждая программа, форма и т.п., а также в таблицы.



Исправлено 1 раз(а). Последнее : akvvohinc, 29.08.17 15:31
Ratings: 0 negative/0 positive
Re: Как определить программа запущена из среды фокса или скопилировынный ехе-шник ?
of63

Сообщений: 25256
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Не знаю, почему именно COLLATE, или CODEPAGE, или как это назвать, когда в этом, кроме набора букв и небукв, содержится также соответствие большая-маленькая буквы.

2 ИК
Значит ты считаешь мой код извращением... Я припомню
Ratings: 0 negative/0 positive
Re: Как определить программа запущена из среды фокса или скопилировынный ехе-шник ?
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Вот тебе в аттаче простейший пример. Меняем в конфиге кодовую страницу на 1252 и часть программы использующая русские идентификаторы не работает. Та что использует латиницу - продолжает работать.

Т.е. твой код априори является нерабочим для любых пользователей кроме русскоговорящих. И как нужно называть такой код?

В VS ситуация чуть получше, там юникод используется и "в принципе" код с использованием любых легальных символов будет всегда рабочим. Правда, для того чтобы им воспользоваться другому программисту придётся изучать твой язык и покупать соответствующую клавиатуру (или использовать виртуальную), т.к. он банально не сможет ввести кириллические символы.

Подумай сам, насколько классно было бы тебе работать, если бы некоторые классы, свойства, функции или имена программ были написаны с использованием китайских или там японских иероглифов.
Если ты и после этого будешь утверждать что всё делаешь правильно, ну я просто умываю руки


------------------
WBR, Igor
Ratings: 0 negative/1 positive
Re: Как определить программа запущена из среды фокса или скопилировынный ехе-шник ?
of63

Сообщений: 25256
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Так и есть, программа не предназначена к продаже в нерусскую локаль, годится исключительно для русских, и еще местами приняты меры, что бы только для определенной конторы Так получилось случайно, но ничего страшного не произошло. Переделывать все болты и резьбы с дюймовой на метрическую поздно, и незачем. Но и называть этот код извращением тоже излишне. Это как СССР называть оплотом мира, или "совок-дерьмо". Всему было свое время, как получилось так и получилось. В вышеуказанных рамках все работает. Пример посмотрю, хотя достаточно применить русскую букву, которая превращается в небукву в другой локали, и тоже хана... наверное
Ratings: 0 negative/0 positive
Re: Как определить программа запущена из среды фокса или скопилировынный ехе-шник ?
akvvohinc

Сообщений: 4224
Откуда: Москва
Дата регистрации: 11.11.2008
of63
Не знаю, почему именно COLLATE, или CODEPAGE, или как это назвать, когда в этом, кроме набора букв и небукв, содержится также соответствие большая-маленькая буквы.

Просто потому что, COLLATE не "отвечает" за преобразование регистра символов, то есть, за указанное тобой соответствие "большая-маленькая".

А вот за то, будет ли буква "Ё" больше или меньше буквы "А" при сравнении строк, отвечает именно COLLATE. И помимо Help'а достаточно обратиться к "корням" - ведь COLLATE - это не просто бессмысленный набор букв, а вполне реальное английское слово, которое имеет реальное смысловое наполнение.
Ratings: 0 negative/0 positive
Re: Как определить программа запущена из среды фокса или скопилировынный ехе-шник ?
of63

Сообщений: 25256
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Спасибо за информацию.
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 27 (Гостей: 27)

© 2000-2024 Fox Club 
Яндекс.Метрика