Порча переменных окружения в FPD | |
---|---|
andrewk Автор Сообщений: 174 Откуда: Красноярск Дата регистрации: 15.05.2005 |
Давно столкнулся с этой проблемой. Сделал костыль, но сейчас опять всплыло.
Суть в том, что портится кириллица в переменных окружения при запуске FPD. Ну то есть если, например, в Far написать "set", то выдаст:
Кто-то сталкивался, как победить? |
Re: Порча переменных окружения в FPD | |
---|---|
Simple777 Сообщений: 33855 Дата регистрации: 05.11.2006 |
Какая ось?
|
Re: Порча переменных окружения в FPD | |
---|---|
andrewk Автор Сообщений: 174 Откуда: Красноярск Дата регистрации: 15.05.2005 |
Коротко – все. Ну то есть под Win9x уже не помню, а вот сейчас под рукой WinXP и Win7 – проявляется. Под Win10 ещё хлеще, у меня в запускающем bat-нике написано: «21.09.2015 под Win10 вылетает: что-то насчёт not connected (надо разбираться)», и запускаю не "FoxProX.exe -t %A%", а "start FoxProX.exe -t %A%", при этом создаётся новый процесс, первое окно закрывается, но по крайней мере работает. |
Re: Порча переменных окружения в FPD | |
---|---|
Simple777 Сообщений: 33855 Дата регистрации: 05.11.2006 |
Насчет 10-ки. Там есть такой нюанс - надо установить в свойствах командной строки "старая версия".
Насчет окружения. Никогда не пробовал кириллицу через SET передавать. В конце концов можно ведь и через текстовый файл передавать данные. В WIN 7 еще есть известный глюк, когда падает кодовая таблица при вызове командной строки. Но если установить в свойствах растровый шрифт, то кодовая страница сохраняется. Исправлено 2 раз(а). Последнее : Simple777, 04.06.18 17:03 |
Re: Порча переменных окружения в FPD | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
И всё же скорее всего это именно проблема с кодовой страницей консоли...
P.S. Т.е. это не сами set-ы портятся, а их вывод в консоль. ------------------ WBR, Igor Исправлено 1 раз(а). Последнее : Igor Korolyov, 04.06.18 18:26 |
Re: Порча переменных окружения в FPD | |
---|---|
of63 Сообщений: 25256 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
А как вы читаете переменную окружения RUS (я забюыл).
Но когда я извне создал CONFIG.FP с Set RUS=русское и сохранил файл в кодировке 1251, то в фоксе получил: MODI FILE (SYS(2019)) - испорченный русский текст (правда с псевдографикой, а не с подчеркиванием) кодга же сделал файл CONFIG.FP в корировке 866 (OEM) то MODI FILE (SYS(2019)) показал нормальный русский текст Как прочитать "переменную окружения" в FPD ? (поленился лезть в хелп FPD, ?rus возвращает ошибку, GETENV("rus") возвращает пусто...) B SET("rus") тоже в ошибку уходит... Исправлено 1 раз(а). Последнее : of63, 04.06.18 18:39 |
Re: Порча переменных окружения в FPD | |
---|---|
Simple777 Сообщений: 33855 Дата регистрации: 05.11.2006 |
Однако тема FPD нынче в тренде.
Назад, в будущее? |
Re: Порча переменных окружения в FPD | |
---|---|
of63 Сообщений: 25256 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
> Как прочитать "переменную окружения" в FPD ?
говори как прочитать этот SET CONFIG.FP собственно в IDE ?! ^) Доб. > Назад, в будущее Нет у ФПД никакого будущего, кроме как если не нарисует кто-нибудь эмулятор проца x86 (+доса на нем) на "универсальном" языке под не менее "универсальную" ОС, на открытом бесплатном ПО (под чем и на чём, правда... ). МС должны бы встроить в свои ОСи этот эмулятор, но это вряд-ли, слишком много работающего добра под ДОСом сделано, вдруг оно оживет, включая игры. Исправлено 1 раз(а). Последнее : of63, 04.06.18 19:05 |
Re: Порча переменных окружения в FPD | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Речь идёт про переменные окружения DOS, а не фокса. Они создаются/устанавливаются командой set (которая реализована либо как внутренняя команда command.com, либо как отдельная утилита set.com/exe - давно было, не помню таких нюансов), а никакими не config.fp
При работе под эмулятором доса, в эти переменные попадают аналогичные по сути Win переменные окружения. И как именно работает с ними инициированная DOS приложением команда set уже виндового командного интерпретатора (cmd.exe) - большая загадка... ------------------ WBR, Igor |
Re: Порча переменных окружения в FPD | |
---|---|
of63 Сообщений: 25256 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
Я не понимаю... речь о DosBox... речь о dosbox.conf что-ли... где там SETы эти ставить... задачу не осознал )
Доб. Да, я так настроил это ДосБокс, что он мне сразу FPD запускает, в досе посмотреть ничего не могу (и лень, и не понимаю насущности вопроса с русской переменной SET). Проще перейти на VFP, чем бесконечно мучать этот FPD, старый прибор сдох, да здраствует новый прибор - VFP ) Исправлено 1 раз(а). Последнее : of63, 04.06.18 20:08 |
Re: Порча переменных окружения в FPD | |
---|---|
Simple777 Сообщений: 33855 Дата регистрации: 05.11.2006 |
Технологии развиваются - шапками не закидаешь. |
Re: Порча переменных окружения в FPD | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Вряд ли досбокс - скорее всего речь про обычный ntvdm - как в обычных x86 виндах (ещё и XP) досовский антиквариат и запускается...
------------------ WBR, Igor |
Re: Порча переменных окружения в FPD | |
---|---|
of63 Сообщений: 25256 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
Технологии верят только
> Вряд ли досбокс - скорее всего речь про обычный ntvdm - как в обычных x86 виндах (ещё и XP) досовский антиквариат и запускается... Если обо мне, то полноценный ДосБокс (может, он есть ntvdm, может Криспа может его перекомпилировать, может вам это все "запросто", но, я настройки ДосБокса в тему FPD выкладывал неск. лет назад. Не считай всех совсем уж дураками ) > в 7-64x, как мне иначе запустить пой ФПД (мне он нужен для редактирования старых FRX-ов, для печати на старых символьных принтерах DFX-8500 в символьном режиме! В графическом режиме любой Исправлено 2 раз(а). Последнее : of63, 04.06.18 20:40 |
Re: Порча переменных окружения в FPD | |
---|---|
akvvohinc Сообщений: 4222 Откуда: Москва Дата регистрации: 11.11.2008 |
У меня под Win XP SP3 нет проблем при таком порядке: 1) в TC в кодировке Win 1251 набран следующий start.bat
2) в момент остановки на паузе я вижу:
3) снимаю с паузы, работа bat-файла продолжается и запускается Фокс. 4) В Фоксе команда
------------- Если же я наберу "русские буквы" в 866-кодировке, то 2) в момент остановки на паузе я вижу:
4) а Фокс
Проверял - у меня такого не происходит - соответствие буква в букву не теряется. Да и у тебя, возможно, тоже - ведь проверять надо не внешнее отображение, а коды символов. Исправлено 2 раз(а). Последнее : akvvohinc, 04.06.18 20:38 |
Re: Порча переменных окружения в FPD | |
---|---|
andrewk Автор Сообщений: 174 Откуда: Красноярск Дата регистрации: 15.05.2005 |
Глянул у сына на ноуте, там есть "использовать предыдущую версию оболочки" – оно? Да не, речь не о передаче данных через SET, это ж я для примера написал. Вдобавок есть ограничение на объём памяти под переменные окружения. Проблема в получении таких вещей, как ComputerName, UserName в случае, когда в них кириллица. Да, в своё время не получилось это победить, сделал костыль: в батнике, запускающем FPD перед стартом foxprox.exe делаю SET>env.tmp, а в проге его читаю, сохраняю нужное, файл удаляю. Но вот сейчас понадобилась LocalAppData в bat-нике, запускаемом из FPD, и опять вспомнил про эту проблему. Возмутился своему костылю и решил спросить)) Что-то не понял. Сейчас нахожусь на Win7. Меняю шрифт в свойствах courier<->растр, в обоих случаях CHCP выдаёт 866, SET выводит по-русски. Если есть под рукой ссылка на обсуждение или описание проблемы, брось, пожалуйста. Такой пример. UserName=Андрей.
Пишем env.vbs:
А в FPD:
Я к тому, что vbscript ведь наверняка это дело получает откуда-то типа реестра или типа того, и в файл выводит сам. И раз и cmd, и csсript, и wscript выдают одинаковые кривые файлы, значит "порча" происходит где-то глубже. Более того. Если запустить bat-файл, в котором написать "START CScript //Nologo env.vbs", то есть вроде как запустить вообще новый процесс, то да, мелькнёт новое окно, но результат будет тот же. В том числе при "start /i". Ну как так-то? Чем отличается cmd, запущенный из FPD (вернее, из command.com) от запущенного «напрямую»? Конечно, о них. Так-то Фокс вообще не причём. Всё это происходит если запустить и просто command.com, без Фокса, просто в его IDE проверять легче)) Ну да, они и попадают. Не аналогичные, а прямо они. Можно в свойствах системы добавить переменную окружения, запустить command.com, и она там появится. В command.com обычным образом работает переменная PATH. Там же, где настраиваются общесистемные (Виндовые) переменные PATH и TEMP)) На клавиатуре Win+Break, или правой кнопкой по Мой компьютер и Свойства, «Дополнительные параметры системы», вкладка Дополнительно, кнопка «Переменные среды». ... чуть менее сдохший)) Да на самом деле просто увидел, что здесь несколько людей что-то помнят о FPD, наверняка сталкивались. Вот и спросил, вдруг сходу пальцем ткнут в очевидное)) Не прокатило, да и ладно. Зато вон про Вин10 Симпле подсказал)) |
Re: Порча переменных окружения в FPD | |
---|---|
andrewk Автор Сообщений: 174 Откуда: Красноярск Дата регистрации: 15.05.2005 |
Ну конечно же дело не в отображении. Я пишу упрощённо, чтоб понятнее было. Хм. Тогда давай по порядку. Говорю тоже на примере WinXP sp3. (Между строк: лучше не использовать для своих bat-ников и exe-шников имена, совпадающие со встроенными командами, в том числе start.bat, иначе возможны коллизии при написании без расширения). 1. Если имя пользователя (переменная UserName) и имя компьютера (ComputerName) в латинице, то добавь в свойствах системы какую-нибудь переменную VV=вася. Дальше пишу на примере VV. 2. Запусти Пуск, Стандартные, Командная строка. Ну или просто Выполнить cmd.exe. Там набери CHCP. Что выдаёт, 866/1251/437? 3. Запусти Выполнить command.com. Там CHCP что пишет? 4. И там и там напиши set. Как отображает VV, нормально? 5. В своём start.bat после SET допиши "SET VV>env.txt" Уже потом в Фоксе: 6. Что пишет на "!chcp" ? 7. Что на "!type env.txt" ? upd: и, кстати, приложи FoxProX.pif Исправлено 1 раз(а). Последнее : andrewk, 04.06.18 23:47 |
Re: Порча переменных окружения в FPD | |
---|---|
akvvohinc Сообщений: 4222 Откуда: Москва Дата регистрации: 11.11.2008 |
Нет, ты пишешь не упрощенно, а вполне однозначно:
Я тоже на экране вижу одинаковые символы подчеркивания, но если отобразить коды этих внешне одинаковых подчеркиваний, то они разные. 1) Создал vv = вася 2) выдает 866 3) ничего не выдает - "CHCP" не является внутренней или внешней командой, исполняемой программой или пакетным файлом. 4) в cmd.exe - vv=вася в command.com - VV=ў бп 6) Активная кодовая страница: 866 7) vv=вася Приложить FoxProX.pif не могу - у меня его нет, из start.bat запускал foxprox.exe Исправлено 1 раз(а). Последнее : akvvohinc, 05.06.18 01:05 |
Re: Порча переменных окружения в FPD | |
---|---|
andrewk Автор Сообщений: 174 Откуда: Красноярск Дата регистрации: 15.05.2005 |
Запуск.bat (в cp-866, об этом ниже):
Оп! CHCP – это команда, которая была, насколько помню, ещё в DOS 5.2, не важно. Реализована она не как внутренняя команда (типа DIR), а как исполняемый файл CHCP.COM. В WinXP, о которой говорим, находится в C:\WINDOWS\system32\. И cmd.exe, и command.com используют этот файл – если его переименовать, то и cmd напишет ошибку. У тебя command.com её просто не находит. Напиши в нём команду PATH. Там должно быть типа такого: C:\DOCUME~1\5D8D~1>path PATH=C:\DOCUME~1\ALLUSE~1.WIN\APPLIC~1\Oracle\Java\javapath;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\s Если нет, то, вероятно, это тот же косяк, что у меня в примере в конце – не хватает памяти под переменные окружения и обрезает. Либо (когда-то сталкивался, не помню в какой ОС) в переменной PATH спереди есть путь к папке, которая уже отсутствует. Для проверки поиска в system32 можно там же написать, например, calc.exe – должен запуститься калькулятор; у тебя, видимо, не запустится. Хм, кстати, ведь и сам command.com находится в system32... Ничё не понимаю, как у тебя вообще может работать command.com Да, но почему тогда FPD не ругается?! Капец. Попробуем понять. 8) ты точно запускаешь "в чистом виде", то есть не под каким-нибудь ДосБокс? 9) ещё раз переспрошу: рядом с foxprox.EXE (в той же папке) точно нет foxprox.PIF? Может скрытый? 10) если нет, то используется C:\WINDOWS\system32\_default.pif, брось его. 11) покажи что пишет command.com по команде SET насчёт ComSpec: COMSPEC=C:\WINDOWS\SYSTEM32\COMMAND.COM так? 12) как ты вообще запускаешь Фокс? Типа есть ярлык на рабочем столе к батнику start.bat или руками из TC или Far? Если ярлык, то прикрепи его тоже, файл.lnk И вот что. Проверил у себя твои шаги. Именно в батнике сделал SET r1251=вася именно в cp-1251. И Фокс потом выдал gete('r1251') правильно. Несмотря на то, что и батник выполняется в 866 (в подтверждение этому кракозябры при PAUSE после SET), и Фокс в 866. Дальше будет вилами по воде, прошу не ухмыляться Похоже, что в момент запуска command.com (или Фокса) «стартующая это дело подсистема» (ntvdm) полагает, что все переменные в cp-1251, а поскольку «целевой» command.com в 866, то перекодирует их. А может, это происходит при старте самого ntvdm, когда она получает переменные. Но происходит эта перекодировка как-то странно. Пишу в bat:
Исправлено 3 раз(а). Последнее : andrewk, 05.06.18 08:49 |
Re: Порча переменных окружения в FPD | |
---|---|
Simple777 Сообщений: 33855 Дата регистрации: 05.11.2006 |
To andrewk
Обсуждение проблемы с кодовой страницей 866 в Win 7 32 forum.foxclub.ru Насчет Win 10. Насчет предыдущей оболочки - не уверен, что это тот самый параметр. Надо выбрать значок "Командная строка", щелкнуть правой кнопкой мыши и выбрать "Свойства". Один из настраиваемых параметров - "использовать предыдущую версию командной строки". Сейчас Win 10 нет под рукой, но по памяти, так думаю, я правильно написал. |
Re: Порча переменных окружения в FPD | |
---|---|
andrewk Автор Сообщений: 174 Откуда: Красноярск Дата регистрации: 15.05.2005 |
1. Спасибо за наводку №1, пошёл читать. 2. Память не подвела)) Как раз 10 под рукой, проверил, всё так, работает. Спасибо №2. |
© 2000-2024 Fox Club  |