new_year

До бесплатного семинара в Москве осталось

  • 2
  • 2
дня

До бесплатного семинара в Самаре осталось

  • 2
  • 0
дней

Форум

ГлавнаяСредства работы с XLSX-файлами

Средства работы с XLSX-файлами

RSS
Средства работы с XLSX-файлами
 
Выкладываю доработанную версию класса. Изменения:
- добавлено чтение имен и списков.
 
Вообще молодцы, даже в выходные исправляете.
По кодировкам Юникода конечно много где можно прочитать - но если думаешь, что перекодировать 33 буквы русского алфавита достаточно (32 последовательно и Ё отдельно), то это не так. Некоторые умудряются Ё и Й кодировать соответственно как (Е и точечки отдельно) и (И и крышечка отдельно). В своей программе синхронизации файлов... (знаю, таких программ миллион, но наши пользователи их в ступор вгоняют - полный путь к файлу может превышать 260 символов, например, был 254 символа, в том числе 150 символов название самого файла, потом создали папку на верхнем уровне "архивы 2015" и перенесли папку с файлом туда - в итоге Word такой документ через раз открывает, а остальные программы не могут даже скопировать, у "любимого" Экселя наоборот - выяснилось ограничение в 212 символов в какой-то побочной технологии и файл замечательно копируется, но не открывается, Эксель говорит "не найден") Так вот в программе наткнулся на файл с таким Й, видимо сохранили из интернета страничку с таким И+крышечка символом - программа на этом месте крепко зависла. Так что с чужим Юникодом глаз да глаз.
Цитата
AlcorVol пишет:
Oh, yes! Правда, VFP к этому как-то не очень приспособлена. Проблем будет куча. И кстати, имена листов уже кто-то там в 1251 перекодирует. Я бы предпочёл в 1251 работать. Для ГИС ЖКХ - точно будет достаточно того, что есть. Особенно, если Рубль добавить.
Если честно, то от однобайтных кодировок лучше отказываться где только можно. Главное себя заставить и планомерно переходить - это тоже своего рода подстилание соломки. Все (или почти все) странички я уже перевел на utf-8. Отправной точкой стал переезд сайта на _общеизвестный хостинг_ - там просто для всех страниц сервер выдает что они в utf-8, так как админка в utf-8. И это проблема сайта, если остальные страницы по факту в другой кодировке. Можно указать вторую в самой странице, но половина браузеров все равно покажет "крокозябры". Сначала тоже было больно - в текстовых файлах в начале строит символ кодировки utf-8, браузер корректно пропускает его первый раз. Но если включать несколько файлов в страничку, то символ встретится в середине и у браузера будет "разрыв шаблона", выдаст ошибку или сдвинет все оформление страницы на высоту 1 текстовой строчки. Ничего, написал программку, убирающую символ. Теперь все файлы что содержат кириллицу перекодирую. Для сохранения в БД местами осталось win-1251 (так вручную проще смотреть/исправить и слишком много места занимает utf-8).
С EXE-программами конечно сложнее - win-1251 как переходная к utf-8 сохраняется, но между win-1251 и utf-8 пока перекодирую только кириллицу и некоторые специальные символы. Если моя программа при этом работает с win-1251, то прочие символы просто не использую и игнорирую. Если же другие символы используются - то вся работа программы в utf-8.
Цитата
Basil пишет:
И если в исходном файле в строке есть символ #A4, при записи он преобразуется в символ рубля, хотя это не требовалось.
Вопрос: #A4 на основании чего выбран? это официальный код для рубля? В смысле Майкрософт тоже его использует в win-1251? Смутно помню, когда только добавили символ рубля, его поместили на одно из "свободных мест" (ранее не занятых) в официальной win-1251. Меня тогда удивило, что свободные места есть. Поэтому смущает замена символа валюты на символ рубля. Либо символ валюты был ранее неофициальный, либо у символа рубля другой код в официальной версии.
Цитата
AlcorVol пишет:
Если бы дела обстояли именно таким образом, то на одном ПК (и тем более, в одном и том же документе) нельзя было бы указывать денежные поля с разными валютами. Странновато и примитивно как-то... Не верится просто.
Мне тоже не верится, скорее всего где-то еще указывается "маскировочный" символ, но допускаю, что если он там явно не указан, то значение берется из локали системы.
Цитата
WinMerge
Спасибо, попробую. Обычно использовал консольный diff из FreePascal (но там есть некоторые неудобства, например, оператор конца предыдущей функции показывает в добавленном блоке, а оператор конца добавленной функции соответственно не показывает), и набросал необходимое для своего аналога, но не написал.
 
Цитата
two_oceans пишет:
Вообще молодцы, даже в выходные исправляете.
Это Basil молодец! Остальные тут просто зрители. Я только небольшой начальный толчок дал.
Цитата
two_oceans пишет:
Если честно, то от однобайтных кодировок лучше отказываться где только можно.
Согласен. Но при условии, что среда разработки изначально Юникод поддерживает. В среде VFP только отдельные встроенные функции Юникод признаЮт.
Цитата
two_oceans пишет:
Некоторые умудряются Ё и Й кодировать соответственно как (Е и точечки отдельно) и (И и крышечка отдельно).
Ага, вот так: Ё (Е + Combining Diaeresis) и Й (И + Combining Breve). И как раз такие-то последовательности неплохо было бы "нормализовать" - особенно, при работе со всякими Гос.ИС. Помнится, раньше ПФР даже Ё не признавал за букву. :) Не знаю точно, как сейчас. И уж ни одна госсистема вам точно не найдет ни адреса, ни ФИО, если вы там всякие комбинированные символы указывать будете. Короче, для таких нужд множества русские буквы 1251 + Рубль - более, чем достаточно (в старшей половине таблицы). Ну, ещё кавычки всякие, возможно. То есть, некоторого подмножества таблицы 1251 вполне хватит. Осталось выбрать, куда Рубль перекодировать без особого ущерба.
Цитата
two_oceans пишет:
Вопрос: #A4 на основании чего выбран? это официальный код для рубля?
Нет, конечно.
Цитата
two_oceans пишет:
... смущает замена символа валюты на символ рубля.
Ну, если не нравится ¤, то давайте знак рубля перекодировать в македонскую букву Ѕ [dz]! :) Она не отличается по начертанию от латинской S. И вдобавок, на знак доллара похожа. :D

Отправлено спустя 21 минуты 52 секунды:
Цитата
two_oceans пишет:
Смутно помню, когда только добавили символ рубля, его поместили на одно из "свободных мест" (ранее не занятых) в официальной win-1251.
Насколько мне известно, в 1251 только одна пустая позиция - #98. И она ничем не занята до сих пор. (Возможно, какое-то ПО и использует этот код в качестве знака рубля, но в официальной таблице это не отражено.)
 
Цитата
two_oceans пишет:
WinMerge
Спасибо, попробую.
Там одно неудобство - в качестве конца строк используются только CR/LF. И если нужно сравнить, например, XML, состоящие из одной длинной строки, приходится предварительно расставлять CRLF после завершающих тэгов.
 
Цитата
Basil пишет:
в качестве конца строк используются только CR/LF.
Да, если вообще концы строк не обозначены - то сравнивать сложно. Однако, в Настройках > Сравнение > Основные есть опция "Игнорировать разницу в возвратах каретки (Win/Unix/Mac)"
 
Цитата
AlcorVol пишет:
Однако, в Настройках > Сравнение > Основные есть опция "Игнорировать разницу в возвратах каретки (Win/Unix/Mac)"
Это не то. В win используется пара CR+LF, а в unix/mac одиночные, только CR или только LF.
 
Цитата
Basil пишет:
Это не то.
Конечно, не то, согласен. Я ж сразу и написал:
Цитата
AlcorVol пишет:
если вообще концы строк не обозначены - то сравнивать сложно.
 
Цитата
AlcorVol пишет:
Ну, если не нравится ¤,
Дело-то не в том, что нравится или не нравится, а чтобы совпадало с официальным от Майкрософт, а то получится не очень хорошо. Вот где смотришь официальную страницу?
Цитата
AlcorVol пишет:
Насколько мне известно, в 1251 только одна пустая позиция - #98. И она ничем не занята до сих пор.
я смотрю через вот такой файлик, в который выведены последовательно все коды символов с #20 по #FF просто в Блокнотe, шрифт Lucida Console и вижу следущее: На всякий случай проверил основные шрифты использующиеся в Office: Arial, Times New Roman, Tahoma, Calibri, Courier - везде одно и тоже. Странно, похоже #98 вообще пропускает и показывает символ торговой марки со следующей позиции. Правда последнее обновление шрифтов, вышедшее в этом году не установлено - там тоже добавили символ какой-то валюты. Поэтому меня тоже удивило заявление, что в официальной есть свободные места, на рисунке их реально было с десяток. Сейчас искал, пока нашел только такую же как у меня в Блокнтое, но с подписями кодов Юникода:

Отправлено спустя 14 минуты 37 секунды:
Цитата
AlcorVol пишет:
И как раз такие-то последовательности неплохо было бы "нормализовать" - особенно, при работе со всякими Гос.ИС.
Согласен.
Цитата
Basil пишет:
XML, состоящие из одной длинной строки, приходится предварительно расставлять CRLF
Собственно, в других программах сравнения не лучше. В ряде случаев расстановки CRLF нужно избегать, например к "нашим баранам" SOAP, это сломает каноникализацию (****, еле выговоришь) и проверку ЭП, там допустимы только LF и в файл на отправку нужно писать именно полученный при каноникализации текст. Но это наверно напишу подробно в другой теме, не будем тут обсуждать.
 
Цитата
two_oceans пишет:
Вот где смотришь официальную страницу?
Ну, можно здесь, например:
ftp://ftp.unicode.org/Public/MAPPINGS/V ... CP1251.TXT
Хотя и Википедия тут подошла бы. Достаточно часто обновляется.
Цитата
two_oceans пишет:
Странно, похоже #98 вообще пропускает и показывает символ торговой марки со следующей позиции.
Пропускает как раз потому, что 0x98 #UNDEFINED. ;)
Цитата
two_oceans пишет:
Собственно, в других программах сравнения не лучше. В ряде случаев расстановки CRLF нужно избегать, например к "нашим баранам" SOAP, это сломает каноникализацию (****, еле выговоришь) и проверку ЭП, там допустимы только LF
Вот, я и говорю: долой SOAP, даёшь загрузку файлов в ЛК! Пускай сами там всё канон-ик-ал-из-ир-уют. Тьфу! Поналепили закордонных суффиксов! Ни чувства языка, ни чувства меры.
 
Цитата
AlcorVol пишет:
Хотя и Википедия тут подошла бы. Достаточно часто обновляется.
Ну нет, Википедия незаменима как источник когда вообще ничего о каком-то явлении/понятии не знаешь, но когда надо какую-то мелочь абсолютно точно узнать, она не авторитет. Спасибо, хотя юникод орг тоже как-то с натяжкой - "Date: 04/15/98", мягко говоря устарело. И это стандарт для преобразования из 1251 в Юникод, а не сама 1251. Норматив от Майкрософт (2014 года или новее, после включения символа рубля в Юникод) был бы убедительней. Я бы вообще выкинул из 1251 символы вроде #CYRILLIC SMALL LETTER LJE, которые в русском не встречаются.
 
Выкладываю последнюю доработку класса. Изменения:
- добавлено чтение тем. (влияет на отображение цветов в Libre)
 
Цитата
two_oceans пишет:
Я бы вообще выкинул из 1251 символы вроде #CYRILLIC SMALL LETTER LJE, которые в русском не встречаются.
Win-1251 - не русская, а кириллическая кодировка. Учитывает одновременно русский, украинский, белорусский, болгарский, сербский и македонский алфавиты. Хотя и не все кириллические шрифты там представлены. Поэтому, если заглянуть в ту же Википедию
(https://ru.wikipedia.org/wiki/Windows-1251), найдём там и примеры неканоноческих модификаций: для татарского, чувашского, казахского. (Существуют и другие.) Выкидывать ничего не надо. Но если ты не занят обработкой сербских (к примеру) текстов, то не будет большим грехом использовать соответствующие позиции для своих внутренних технических нужд.
 
P.S. Позабавлю господ ещё немного на тему кодировок. Я довольно долго сидел в среде FoxPro/DOS (FPD). Слава богу, WinXP выполняла 16-битные приложения прекрасно. Но когда на горизонте замаячила Win7 (на самом деле, задолго до этого) я решил перекинуться с FPD на VFP. Долго думал, как это сделать:
- (а) малой кровью;
- (б) не уходя из FPD насовсем;
- (в) поддерживая единую версию своих программ для обеих сред.

И решение такое я нашёл. ;) Не вдаваясь глубоко в детали, поступил я так. Во-первых, разработал свой собственный вариант Win-кодировки (назовём его Box-1251), включающий все русские буквы на позициях 1251, а также всю табличную псевдографику из 866, как-то раскиданную по позициям от #80 до #BF. Установил взаимно-однозначное соответствие 866 <-> Box-1251 и написал функции перекодировки. Во-вторых, собственноручно разработал семейство растровых шрифтов разных размеров для правильного отображения символов этой кодировки на экране. (Это заняло всего пару дней). В результате, всякие экранные формы DOS-овского стиля после перекодировки стали прекрасно отображаться в среде VFP. Кроме того, конечно, пришлось вставить кое-где в программах проверку среды (переменные _dos/_windows) - и реагировать по-разному в зависимости от того, где программа выполняется (но таких мест оказалось совсем немного).

В результате я добился следующего. Все программы писал в среде FPD, но автоматически получал из них сразу две рабочие версии: для DOS (в виде *.app) и для Windows (в виде *.exe). Процесс получения Windows-версий всех prg-файлов я полностью автоматизировал (а там не только простая перекодировка 866 -> 1251, кстати). От этой схемы я ушёл совсем недавно, так как у многих клиентов стоит до сих пор WinXP, и некоторых приходилось перетягивать на Win-версию программ чуть ли не за уши. :D Теперь программирую только на VFP. Но по внешнему виду программы до сих пор сильно напоминают старые DOS-приложения. Но клиенты не жалуются. Им ведь функционал важен, а не внешний вид. ;)

И на закуску - прилагаю файл со шрифтами. Можете установить, открыть в Блокноте табличку с символами от #00 до #FF, выбрать шрифт Alcor Box 1251 - и глянуть результат. Там пять размеров (pitches).
 
Цитата
AlcorVol пишет:
Win-1251 - не русская, а кириллическая кодировка. Учитывает одновременно русский, украинский, белорусский, болгарский, сербский и македонский алфавиты.
Примерно так и предполагал: для расширенной латиницы наверно 5 разных кодовых страниц сделали, а для кириллицы зажались и сделали одну. Больше всего свободных мест в греческой, хотя казалось бы символы с древних времен и похожа на все понемногу.
Цитата
AlcorVol пишет:
И решение такое я нашёл.
Спасибо, порадовал! Изящное решение, но с трудом представляю внешний вид. То есть в программе виндовское окно с серым(белым) фоном, а в нем еще текстом нарисована рамка и прочие элементы управления - поля ввода, списки, а сам текст моноширинным шрифтом? Это конечно вариант, но как-то странно должно смотреться среди оформления Windows :) В первую очередь вопрос по быстродействию отрисовки. Во вторую, как оно выглядит на Win 7 с новейшими мониторами и включенным масштабированием. Не так давно видел программу, которая не масштабируется, но говорит Windows 8 что все ОК, перемасштабировать не надо. В итоге размер окна на родном разрешении монитора примерно с пластиковую карту и приходится ставить 1024x768, чтобы разглядеть что-то кроме меню и заголовка (их Windows увеличивает).
У меня такой задачи не стояло - рисование псевдографическими символами прошло стороной. Я бы наверно сделал по-другому, так как у меня другой язык и другая IDE - унифицировал параметры функции, выводящей элемент управления (скажем, поле ввода) шрифтом для DOS (на Паскале есть стандартный Unit) и стандартным элементом управления в Windows (по образцу досовского Unit). Далее подставил разные циферки при формировании окон (на Паскале есть управляющие комментарии для компилятора - то есть сама программа вообще может не проверять в какой среде работает, можно из одного текста сделать несколько версий в зависимости, какие условия передать при сборке, и распространять разные версии для разных сред). Конечно "малой кровью" не назовешь (кроме внешнего вида, стандартные элементы Windows по другой логике работают), но и выглядеть будет по-разному из одного исходника.
Цитата
AlcorVol пишет:
Во-вторых, собственноручно разработал семейство растровых шрифтов разных размеров для правильного отображения символов этой кодировки на экране.
Вот это мне очень интересно. Очень давно есть проблема с отображением кириллицы на синем экране смерти Windows XP. Конечно обычно там стандартный текст и я его уже практически выучил и ориентируюсь на код ошибки, но у некоторых ошибок есть отличия в тексте. Как я понимаю это как раз должно решаться заменой файла шрифтов bootfont.bin Однако нормальной версии вроде бы не нашел и с чего начать ковырять формат тоже непонятно. С Win 7 проблема решается по-другому - в загрузчике указать RU-ru.
 
Цитата
two_oceans пишет:
Изящное решение, но с трудом представляю внешний вид.
Спасибо, картинки могу тут выложить.
Цитата
То есть в программе виндовское окно с серым(белым) фоном...
Ну почему так? ДОС-овское приложение - это не обязательно чёрно-белый экран консольного вида. :) Ещё с конца 80-тых в моду начали цвета входить, в виде примитивной RGB-схемы. На фоне - восемь цветов, а символы рисовались 16-тью (с учётом яркости). Вот, в таких тонах FPD и была реализована. Очень так цветненько всё. И этот винтажный стиль моя программа пронесла сквозь года до наших дней. :)
Цитата
... а в нем еще текстом нарисована рамка и прочие элементы управления - поля ввода, списки, а сам текст моноширинным шрифтом?
Именно так.
Цитата
Это конечно вариант, но как-то странно должно смотреться среди оформления Windows
Думаю, что такое ретро скоро снова на пике моды будет. Как винил. Или "тёплый ламповый звук". :D
Цитата
В первую очередь вопрос по быстродействию отрисовки.
У меня лично никаких претензий тут нет. Какие проблемы - с растровыми-то шрифтами?
Цитата
Во вторую, как оно выглядит на Win 7 с новейшими мониторами и включенным масштабированием.
А вот этого не знаю... Не приходилось сталкиваться. На моём мониторе 1280х1024 в Win 10 смотрится вполне приемлемо.
Цитата
Очень давно есть проблема с отображением кириллицы на синем экране смерти Windows XP.
Не знаю, чем могу тут помочь. Если мои шрифты понадобятся - можно смело использовать, мне не жалко. Там в заголовке файла шрифтов даже специально указано: Free to use. ;)

Ну, и вот - картинки. Текст меню там у меня немного устарел. Под "корректировкой" в большинстве случаев нужно понимать "ОДН", но бухгалтеры понимают всё правильно. Привожу три скрина с разным размером шрифта, который влияет и на размер экрана (окна). Ширина - всегда 80 символов, но количество строк (размер окна по вертикали) можно менять в процессе работы (как и размер шрифта) динамически. (Используются клавиши Alt+стрелки.)



 
Цитата
AlcorVol пишет:
ДОС-овское приложение - это не обязательно чёрно-белый экран консольного вида.
Это я понимаю, IDE Free Pascal практически так же выглядит, но там консольное приложение. И еще двойная рамка псевдографикой по краю окна. Просто не ожидал, что в Windows цвета тоже перенесешь. Как-то я никогда не задавался вопросом, но без обращения к WinApi (создание кисти определенного цвета либо кисти из системной цветовой схемы, применение ее к фону/шрифту и тп) не представляю как задать цвета.
Цитата
AlcorVol пишет:
Какие проблемы - с растровыми-то шрифтами?
Значит, не тот случай. Тут Windows шрифт использует и рисует? Мои сомнения больше относятся к случаю, когда программа сама шрифт по пикселям рисует. В одном из старых журналов видел программу как это сделать - и в Досе все отлично, так как можно напрямую обращаться к видеопамяти и "зажигать" нужные пикселы. А в Win подозреваю будут жуткие тормоза либо придется с DirectX возиться.
Цитата
AlcorVol пишет:
1280х1024 в Win 10
Замечательно, полагаю проблем нет, если шрифт рисует Windows и ширина(высота) окна тоже определяется системной функцией (в смысле, сколько данные 80 символов займут пикселей на экране).
Цитата
AlcorVol пишет:
Ну, и вот - картинки.
"Выберите действие клавишами" - кажется, клавиши в шрифте не прорисовалось.
Цитата
AlcorVol пишет:
Думаю, что такое ретро скоро снова на пике моды будет.
Хорошо бы, но пока все какие-то "инновации" и "украшательства"- то плитками замостят, рабочий стол уберут, то автообновят на следующую версию ночью. Интерфейс все больше ориентирован на детей - крупные и яркие значки, автонастройка практически всего. Автонастройка это конечно хорошо, но кое-что я бы даже и не стал настраивать потому как функции вообще мне не нужны и, отключив,сэкономил бы немного ресурсов. Про графику игр вообще диву даюсь - системные требования растут катастрофически. Теперь уже каждая игра считает должным тащить минимум 5-10 Гб текстур. Раньше драйвер весил 200 Кб, теперь чтобы поставить некоторые драйвера нужно скачать еще 300 Мб - всяческие фреймворки и тому подобное. Фреймворки задумывались как средство уменьшения размера программы, но сейчас это перевернулось с ног на голову. Так что не знаю, не знаю, доживем ли. Может это ретро будет в моде при наших внуках, когда грянет какой-нибудь апокалипсис и всем временно станет не до "украшательств".
 
Цитата
two_oceans пишет:
Тут Windows шрифт использует и рисует?
Да. Просто при инициализации среды программы при работе в Windows я выбираю именно этот шрифт и указываю его потом во всех "DEFINE WINDOW ..." по умолчанию. (Все дополнительные параметры автоматически добавлялись при конвертации prg-файлов DOS -> Win.) VFP использует этот шрифт, отрисовывая окна и исполняя всякие "@ ... PUT" и "@ ... GET". При этом окна рисуются средствами Windows - уже без псевдографических рамочек. И для заголовков окон, как видно, используется уже совсем не моноширинный шрифт. Над размерами и координатами немного везде поколдовать пришлось, но и тут VFP сохраняет совместимость с FPD по максимуму, позволяя задавать эти величины в старом стиле - как бы в количестве (номерах) колонок/строк текущего моноширинного шрифта (а не только в пикселях). Такие координаты, впрочем, могут в VFP быть и нецелыми.
Цитата
Просто не ожидал, что в Windows цвета тоже перенесешь.
А у меня почти не было иного выхода. Около десяти лет поддерживал обе версии программ с автоматической конвертацией DOS -> Win. ;) При этом преобразовании, кстати, я изменял везде фразы типа color RG+/B на color RGB(255,255,0,0,0,127) (или какое-нибудь чуть другое значение - согласно выбранной схеме соответствия цветов). Но мог бы этого и не делать. Так как VFP прекрасно понимает и старые конструкции вида color rg+/b. :)
Цитата
полагаю, проблем нет, если шрифт рисует Windows и ширина(высота) окна тоже определяется системной функцией (в смысле, сколько данные 80 символов займут пикселей на экране)
Этот размер вычисляет VFP - полагаясь на ширину и высоту символов текущего шрифта, а также размер окна (грубо говоря, в количестве символов в ширину и количестве строк в высоту).
Цитата
"Выберите действие клавишами" - кажется, клавиши в шрифте не прорисовалось.
Да, есть такой эффект. Там стрелки вверх/вниз на самом деле "нарисованы", которые в кодовой таблице попадают в диапазон служебных символов #00 - #1F. В Win 7 одна из этих стрелок почему-то заменилась на какой-то из псевдографических Box-символов, а в Win 10 - обе стали прямоугольничками. :) Но это мелочи. Косметика, так сказать. Лечится легко путём замены самого текста подсказки. Не очень-то эти стрелки и нужны.
Цитата
Хорошо бы, но пока все какие-то "инновации" и "украшательства"- то плитками замостят, рабочий стол уберут, то автообновят на следующую версию ночью. Интерфейс все больше ориентирован на детей - крупные и яркие значки, автонастройка практически всего.
Согласен. Юзера всё больше за дебила считают. :D Но рабочий стол вернули ещё в 8-ке. Больших неприятностей при переходе c 7-ки Pro на 10-ку Pro пока не заметил. (Обновился до 10-ки в последний день бесплатного обновления, как это и принято на Руси. :D ) Но, действительно, слегка бесит, что по ночам комп может проснуться без спросу для обновления. Пока не смог найти, как с этим бороться.
 
Цитата
AlcorVol пишет:
VFP использует этот шрифт, отрисовывая окна
Ага, то есть к WinApi обращается сам VFP. Удобно.
Цитата
AlcorVol пишет:
Этот размер вычисляет VFP
А вот тут могут быть сюрпризы, если и правда вычисляет сам умножением, а не спрашивает у системы. Например, может оказаться, что на мониторе 1600x900 со включенным масштабированием на 150% входит скажем символов 60 вместо 80. С программами "больших корпораций" такого не встречал, а вот "независимые" разработчики вроде меня и тебя вполне могут попасть под такой глюк - в качестве примера программка, которой бухгалтерия набирает данные по зарплате для сбербанка. Внезапно на одном из компьютеров после обновления Windows XP на Windows 7, программка оказалась с исковерканным интерфейсом, при этом на соседнем компьютере с Windows 7 нормально отображается. Для меня такое актуально, потому что начальники отделов и их заместители почти хит-парад устраивают у кого монитор побольше, а потом начинают ныть когда он показывает или слишком мелко или размазано или мерцает на "родном" разрешении (вот это меня "восхитило" - один из мониторов на "родном" поддерживает только 60Гц и видимо мерцает, на разрешениях поменьше 90 Гц и мерцания практически не видно.
Цитата
AlcorVol пишет:
Не очень-то эти стрелки и нужны.
Конечно, да и сама подсказка тоже скорее дань "ретро", сейчас подсказки в строке состояния и прямо под указателем мыши всплывают. Кстати, а мышь поддерживается?
Цитата
AlcorVol пишет:
Обновился до 10-ки в последний день бесплатного обновления, как это и принято на Руси.
Молодец, успел. В последний день там наверно сервера работали на износ.
Цитата
AlcorVol пишет:
Но рабочий стол вернули ещё в 8-ке.
Ага, но главное меню вернули не на все версии и вызвать поиск у меня получается через раз - приходится долго крутиться у правого края экрана.
Цитата
AlcorVol пишет:
Больших неприятностей при переходе c 7-ки Pro на 10-ку Pro пока не заметил.
Как по мне там одна большая неприятность :) Если по деталям, я конечно себе не ставил, а на чужих компах глубоко в настройки не лазил, но мне совершенно не нравится как выглядит список программ в главном меню (при этом само меню смотрится замечательно) - ну зачем, вместо удобных подменю все вывалили в алфавитном порядке в меню, да еще и вставили разделители по буквам. В подменю можно было все компактно сгруппировать и прокручивать не приходилось, теперь очень напряжно листать меню с тачпадов, да и с мышью ненамного лучше. На прошлых версиях русские названия менялись с завидным постоянством (не знаю, может на английском названия одни и те же, а чудили переводчики), поэтому я никогда не учил наизусть названия программ, ориентировался на название подменю и смысл ярлыка. Теперь же приходится мучительно вспоминать как же эти (редиски) обозвали ту или иную программу, поиск конечно помогает, но не всегда, потому что ищет тоже по названию. В итоге времени на диагностику/настройку уходит больше, потому что черт его знает куда засунули и как переназвали.
Цитата
AlcorVol пишет:
Юзера всё больше за дебила считают.
Ох, про это я могу говорить очень долго. Вообще лично мне самым комфортным был интерфейс Windows 2000 - стабильно, без "украшательств" и даже возможности их сделать. Теперь вот и к семерке на работе притерпелся, а дома все еще икспи и виртуальная машина с сервером 2000 (держу на случай совместной работы над каким-то проектом - хоть и серверная ос, но оперативки требует меньше чем икспи). На Windows Xp добавили возможность и сразу в это окунулись - понятно надо было ребятам показать что не зря зарплату получали - иначе на XP бы никто не пошел. Одновременно программы поставили перед выбором - поддерживать 2000 без украшательств или XP с украшательствами. Если бы возможность украшать добавили на 2000 и выпускали обновления безопасности - программы бы до сих пор его поддерживали и на следующие версии никто не пошел. Я не отрицаю внутренних преимуществ архитектуры Windows 7 (более стабильный загрузчик, но он и XP/2000 прекрасно загружает; NTFS эффективнее работает с большими дисками - это улучшение драйвера NTFS - при желании могли включить в XP или 2000; поддержка образов - тоже можно, приложив руки, запихать в образ икспи, наверное и 2000 тоже; зато практически убили интерфейс поиска - теперь ищется всякий хлам из папки Windows, не ищется по содержимому например исходников программ или документов Word, если задать ".ini", то точку проигнорирует и найдет кучу файлов с ini в середине; если перейти из найденного в папку, содержащую объект, а потом перейти на уровень выше - вернется к списку найденного, а не к родительской папке; в профиле пользователя понаставили хардссылок - задумка хорошая, но сам проводник по ним, ****, не переходит! они там с ума посходили?), 8 (поиск вроде подправили - но запихнули изощренно; сделали расположение файлов для быстрой загрузки, отображение часов на экране блокировки - непонятно, что мешало это сделать раньше; поддержка на уровне BIOS - на самом деле семерка тоже прекрасно грузится если поставить вместо восьмерки потом вернуть SecureBoot, но зависит от прошивки BIOS и потому работает не везде) или 10 (обязательная подпись драйверов и неотключаемые обновления - задумано вроде неплохо, но по факту больше проблем), но если посмотреть на список возможностей максимальной редакции (да хотя бы и профессиональной), то сомневаюсь что 90% пользователей вообще знают, что эти названия означают, а из тех кто знает половине они вообще не нужны - единственные полезные функции - поддержка домена и редактор политик, эмулятор икспи, сервер RDP, в максимальной еще AppLocker (правда я его все никак не настрою). Остальное: BranchCache, BitLocker, многоязычный пользовательский интерфейс, поддержка нескольких физических процессоров, подсистема запуска Unix приложений и так далее не используются, зато за них берут деньги. А значит и от того, что их обновляют и улучшают простому пользователю ни тепло ни холодно. Все что нужно, можно было включить еще в windows 2000. Сервера правда все равно пришлось бы обновлять, там действительно есть кардинальные улучшения. Но корпоративный сегмент и сервера от обычного пользователя очень далеки.
Цитата
two_oceans пишет:
то плитками замостят
Не то чтобы мне не нравились плитки сами по себе, но это мне сильно напоминает как раньше продвигали Active Desktop во времена windows 98 и Windows 2000 - типа можно скрыть ярлыки, зайти прямо рабочим столом на страничку сайта (то есть смотреть курсы валют, погоду и тп прямо на рабочем столе), а еще только на нем можно было поставить картинки в JPG. Но что-то не припомню случаев, когда кто-то действительно скрывал значки ради просмотра погоды. Даже JPG простые пользователи сохраняли в BMP и прекрасно ставили картинку, игнорируя "замечательный" Active Desktop. На XP стали поддерживаться JPG в обычном режиме и про него перестали вспоминать вообще. На 7 ввели поддержку виджетов и на них откликнулось гораздо больше пользователей - по сути почти у всех одно и тоже, что предлагали на Active Desktop: часы, погода, валюты, но без скрытия значков. Минус - виджеты потребляют много ресурсов и частенько слетают. В 8-10 все это переехало на плитки и наверняка потребляет немало ресурсов. И не отключишь насовсем, так как это теперь основной интерфейс. Прям передергивает когда вижу на плитках содержимое каких-нибудь новостных сайтов, Office 365, магазин Майкрософт или вход через единую учетную запись Майкрософт. И все разного размера плюс перемещивается при удалении плиток.
Цитата
AlcorVol пишет:
Но, действительно, слегка бесит, что по ночам комп может проснуться без спросу для обновления.
На сколько я знаком с 10, должно быть минимум два способа с эти бороться - 1) отложить обновления (при этом там настораживающая приписка, что отложить можно максимум на год - потом видимо каааак постааавит) и запускать обновление вручную (варианта совсем отключить в 10 не показывается, может быть сработает, если в реестре поковырять способом для предыдущих ос); 2) настроить другое время для автообновления - но это тоже мало приятного, включаешь например утром, с настроем поработать, а комп пишет - подождите, ставятся обновления. Сразу первая мысль - отключить обновления вообще. И хорошо, если они нормально установятся, а ведь много случаев когда на семерке вылетал синий экран или отказывала подсистема Wow64. В общем, тема не о том, надо завязывывать с оффтопиком.
 
Цитата
two_oceans пишет:
Например, может оказаться, что на мониторе 1600x900 со включенным масштабированием на 150% входит скажем символов 60 вместо 80.
Вот, для моей программы - как раз не беда. Нажмут Alt+(стрелка влево) - и шрифт поменьше станет. А вместе с ним - и окошко. ;)
Цитата
практически убили интерфейс поиска
Если просто файлы/папки/текст - то лучше в FAR'е искать. ;)
Цитата
эмулятор икспи
С этого места - поподробнее, пожалуйста. Где он там в 10-ке Про? На 7-ке я Windows XP mode гонял. Даже vhd остался. C него же на Hyper-V загружаться?
Цитата
two_oceans пишет:
В общем, тема не о том, надо завязывывать с оффтопиком.
Да, ты прав. Ещё пара фраз - и завязываем. :D
 
https://habrahabr.ru/post/236107/ вот нашёл на просторах, как человек пишет и сохраняет в XLSX. Файлы тоже нашёл, тяжело в них с ходу разобраться.
 
Цитата
AlcorVol пишет:
шрифт поменьше станет. А вместе с ним - и окошко.
Ага, но снова не факт что все войдет, так как размер окна тоже пересчитается. Впрочем, я полагаю, что VFP все же достаточно умен, чтобы спросить ширину текста с учетом всех масштабирований у системы и тогда никаких проблем. Однако протестировать лишний раз не помешает.
Цитата
AlcorVol пишет:
Если просто файлы/папки/текст - то лучше в FAR'е искать.
Да, походу Far это наше всё. Обычно я там только шестнадцатеричные коды смотрю, когда форматы файлов подбираю, но видимо надо снова вспоминать и использовать по полной. Тогда, 1) какой смысл тратить процент системных ресурсов на службу индексирования и службу отслеживания файлов; 2) как искать в Far и в частности по тексту файлов я пока не разбирался. В одном файле знаю, а допустим по тексту файлов с определенным расширением на всем диске, включая поддиректории - нет.
Цитата
AlcorVol пишет:
C него же на Hyper-V загружаться?
Если нужда припадет, то можно и с другого гипервизора виртуальных машин. Родные - VirtualBox и Hyper-V. Там я перечислял функции семерки Про, но практически уверен, они есть и в десятке. Вот, нашел - Hyper-V в 8 и 10 по умолчанию выключен, его нужно включить в списке компонентов ОС, убедится что он не затенен серым и перезагрузить компьютер. Нашел вот здесь, там еще есть всякие тонкости (статья на английском). Так как VHD уже есть, то можно начать с пункта "4. Activate Hyper-V on your Windows 10".
Цитата
serg_p пишет:
вот нашёл на просторах
Спасибо, глянул беглым взглядом, это реализация записи на PHP, без чтения, сильно упрощенная и не соответствует шаблонам. В остальном, прекрасное решение на случай, когда нужно записать в XLSX огромные объемы данных, выбранных из базы данных по запросу из веб-формы и не нужно беспокоиться о форматах ячеек. В конце концов, можно еще чем-то обработать результат, чтобы соответствовал шаблону. :D
 
Цитата
two_oceans пишет:
Спасибо, глянул беглым взглядом, это реализация записи на PHP, без чтения, сильно упрощенная и не соответствует шаблонам.
дыкть, просто шаблоны распоковать и писать 'как там'... не?
а вот чтение пригодилось бы - ГИС когда обрабатывает XLSX, то в качестве результата пишет идентификаторы всякие
 
Цитата
two_oceans пишет:
Ага, но снова не факт что все войдет, так как размер окна тоже пересчитается.
Константин, ты не совсем понял. ;) У меня ширина окна программы - 80 символов, как в ДОСе. (Хотя высота в строках может быть и переменной.) Если задать шрифт поменьше - то и окошко приложения станет поменьше. Я сам прошу тут VFP окошко перерисовать соответствующим шрифтом => соответствующего размера. :)
Цитата
two_oceans пишет:
как искать в Far и в частности по тексту файлов я пока не разбирался.
Клавиша Alt-F7. Задаёшь маску имени файла и (если надо) текст внутри для поиска. Можно искать в текущем каталоге. Можно и с подкаталогами. Работа с кодировками - тоже достаточно гибкая.
 
Цитата
Дамир пишет:
дыкть, просто шаблоны распоковать и писать 'как там'... не?
Дыкть, не так всё просто! :D
 
Цитата
AlcorVol пишет:
Константин, ты не совсем понял. У меня ширина окна программы - 80 символов, как в ДОСе. (Хотя высота в строках может быть и переменной.) Если задать шрифт поменьше - то и окошко приложения станет поменьше. Я сам прошу тут VFP окошко перерисовать соответствующим шрифтом => соответствующего размера.
Кхм, а мне кажется наоборот, ты не совсем понимаешь, что шрифт может занимать на мониторе не столько пикселей, сколько было тобой задумано при создании шрифта. Ну смотри. Твой шрифт скажем 10х8 (к примеру, я не смотрел какие там размеры), то есть 8 пикселей в ширину. Предположим что расстояние между символами 1 пиксель, тогда (8+1)*80=720 (для круглого счета опустим, что после последнего промежутка нет). Пусть программа просто умножила, игнорируя масштабирование, известный размер шрифта на 80 и окно занимает эти 720 пикселей в ширину. Но в Винде, допустим, включено масштабирование 150% и твой шрифт, выведенный Виндой, по факту занимает на мониторе 12 пикселей в ширину, а промежуток стал полтора пикселя (дробное значение сглаживается видеоадаптером, так что края могут ужасно выглядеть). То есть войдет в окно 720/(12+1,5)=53,(3) символа. А если запросить у Винды сколько займет в ширину текст длиной 80 символов с таким-то шрифтом (если не моноширинный, то еще и будет учтена ширина каждого символа в конкретном тексте), она вернет правильное значение (12+1,5)*80=1080 пикселей. От изменения базового размера шрифта не изменится соотношение между реальным размером и базовым размером и входить будут все те же 53 символа. Вот о чем я говорю, что надо проверить запрашивает VFP размер 80 символов у Винды или сам умножает. Конечно, есть еще вариант, что запрашивает размер одного символа шрифта, а потом умножает - в этом случае будет ошибка с промежутками на 80*0,5=40 пикселей и не войдет "всего" 2-3 символа.
Цитата
AlcorVol пишет:
Клавиша Alt-F7
Огромное спасибо. Хотя про кодировки остается небольшое сомнение (UTF-8, например, в которой веб-страницы или поиск в Word), но если я ищу в исходном тексте программ, то они почти полностью на английском и все отлично.
Цитата
AlcorVol пишет:
Цитата
Дамир пишет:
дыкть, просто шаблоны распоковать и писать 'как там'... не?
Дыкть, не так всё просто!
Точно! В частности, в этой реализации на PHP вообще пишется только содержимое ячеек, причем перезаписывается весь распакованный файл в котором значения, ничего из бывшего "до этого" не остается, то есть "как там" нужно будет как минимум либо добавить прямо в своем коде (а если шаблон изменится, то изменить, так что не пойдет!) либо считывать файлы в шаблон и совмещать с новыми значениями.
Кроме того, на самом деле, если мы уже имеем веб-интерфейс, получающий данные для размещения из базы данных УО, то нам и XLSX не очень нужен. Во-первых, (не предусмотрено, но реализуемо) можно хитрым скриптом авторизоваться в ЛК и напрямую заполнить значения форм ручного ввода, сохранить, повторить. Работать конечно будет не очень хорошо, но есть и плюсы - при обычном открытии отображается весь ЛК, но скрипт может вырезать из него только форму отправки и она будет работать намного быстрее. Конечно, все равно придется ставить задержку, чтобы было похоже на человека и не порезало защитой - например, отправка новой формы через 5 секунд. Плюс контроль не вышло ли сообщения что технические работы или страница не найдена. Плюс контроль чтобы не забить данные дважды, но и ничего не пропустить. Во-вторых, (предусмотрено разработчиками) до SOAP рукой подать. Правда, с ЭП там будет "вешалка".
С другой стороны, прелесть PHP в том, что веб-интерфейс на самом деле не нужен - можно запустить PHP файл в консоли, а "параметры запроса" страницы передать в командной строке. Вот тут запись в XLSX бы пригодилась. И раз уж возможны целых 3 подхода из PHP, задумался, не перейти ли на PHP для этого проекта. А для ЭП можно написать расширение PHP (на самом деле, оно уже есть от КриптоПро, но не в открытом доступе, а закрытый доступ для разработчиков серверов стоит довольно дорого).
 
Цитата
two_oceans пишет:
Пусть программа просто умножила, игнорируя масштабирование, известный размер шрифта на 80 и окно занимает эти 720 пикселей в ширину.
Умножает тут, кстати, не моя программа, а сама VFP. Я просто ей говорю: окно таким-то шрифтом, 80 символов в ширину и 40 в высоту. Но это сути проблемы с масштабированием не меняет; надо пробовать - и смотреть, что получится. Однако мне ужасно лень в эту тематику влезать: и других забот хватает. :D
Цитата
two_oceans пишет:
Хотя про кодировки остается небольшое сомнение (UTF-8, например, в которой веб-страницы или поиск в Word)
Искать в UTF-8 не получится. Хотя FAR и умеет работать с файлами в UTF-16 (с гарантией - если Byte Order Mark в начале влепишь). Я даже программку сочинил когда-то (ради интересу) для перекодировки 1251 <-> UTF-16. Пока не пригодилась. :D
 
Цитата
AlcorVol пишет:
Искать в UTF-8 не получится. Хотя FAR и умеет работать с файлами в UTF-16
Far3 умеет работать с файлами в UTF-8. ;)
 
Цитата
two_oceans пишет:
закрытый доступ для разработчиков серверов стоит довольно дорого
Уточню, что если бы продавал услуги, то купил бы. А для "самообразования" и экспериментов 30-50 тысяч за 1 файл как-то многовато.
Цитата
AlcorVol пишет:
Умножает тут, кстати, не моя программа, а сама VFP
Согласен, я имел ввиду, что сама VFP тоже либо по сути программа либо встраивает что-то в твою при компиляции (не работал, так что не знаю детали, но предполагаю так).
Цитата
AlcorVol пишет:
с гарантией - если Byte Order Mark в начале влепишь
Цитата
Basil пишет:
Far3 умеет работать с файлами в UTF-8.
Полагаю, замечание о Byte Order Mark в силе и для UTF-8 в Far3? Если да, то это не очень хорошо - как я уже упоминал, составляю веб-странички из нескольких PHP файлов и, если метка есть и попадает в середину страницы, то браузер всякие фокусы выкидывает. В основном, помогает брать начало файла в теги комментарии, но иногда комментарий никак не влепить.
 
Добрый день, страдальцы по ГИС ЖКХ. Опишу свою ситуацию. Работаю в Водоканале, работаю на Делфе. Задача как и у всех, грузить данные в эту систему. Получить доступ к веб-сервисам пока не можем, беда с авторизацией, этим занимается админ. Предложил загружать файлы шаблонами. XLSX не получается сохранять из программы, но можно сохранять в XLS и система их кушает и обрабатывает. Загрузил 999 записей в систему при помощи шаблона Договора ресурсоснабжения. Одна беда, не все листы обрабатываются, выдаёт ошибки, то это не так, то неправильные данные, то не выбран тип. Шаблон грузил два раза, теперь у меня в системе 3 одинаковых абонентских номера, почему то у них не стоит обработка на раннее занесённые данные. Придётся в ручную удалять.
Решил что данные все выгружу через шаблоны. А потому уже буду разбираться с веб-сервисами. Если интересны заполненный шаблон вышлю файл на почту.
 
Правильный выбор.
Цитата
serg_p пишет:
но можно сохранять в XLS и система их кушает и обрабатывает. Загрузил 999 записей в систему при помощи шаблона Договора ресурсоснабжения. Одна беда, не все листы обрабатываются, выдаёт ошибки, то это не так, то неправильные данные, то не выбран тип.
Полезная информация, однако наверно как раз могут вылезать разные неприятности из-за того, что XLS, а не XLSX. Здесь писали, что перегоняют в XLSX каким-то онлайн-конвертером. Возможно стоит попробовать так.
Цитата
serg_p пишет:
999 записей
Интересный выбор числа, есть у кого опыт, вдруг 666 лучше загрузятся? :? У самого Экселя вроде бы нет никаких особенностей в районе тысячи.
Цитата
serg_p пишет:
грузил два раза, теперь у меня в системе 3 одинаковых абонентских номера
Что-то не сходится, еще разок вручную занесли?
#31
0 0
Выкладываю доработанную версию класса. Изменения:
- добавлено чтение имен и списков.
#32
0 0
Вообще молодцы, даже в выходные исправляете.
По кодировкам Юникода конечно много где можно прочитать - но если думаешь, что перекодировать 33 буквы русского алфавита достаточно (32 последовательно и Ё отдельно), то это не так. Некоторые умудряются Ё и Й кодировать соответственно как (Е и точечки отдельно) и (И и крышечка отдельно). В своей программе синхронизации файлов... (знаю, таких программ миллион, но наши пользователи их в ступор вгоняют - полный путь к файлу может превышать 260 символов, например, был 254 символа, в том числе 150 символов название самого файла, потом создали папку на верхнем уровне "архивы 2015" и перенесли папку с файлом туда - в итоге Word такой документ через раз открывает, а остальные программы не могут даже скопировать, у "любимого" Экселя наоборот - выяснилось ограничение в 212 символов в какой-то побочной технологии и файл замечательно копируется, но не открывается, Эксель говорит "не найден") Так вот в программе наткнулся на файл с таким Й, видимо сохранили из интернета страничку с таким И+крышечка символом - программа на этом месте крепко зависла. Так что с чужим Юникодом глаз да глаз.
Цитата
AlcorVol пишет:
Oh, yes! Правда, VFP к этому как-то не очень приспособлена. Проблем будет куча. И кстати, имена листов уже кто-то там в 1251 перекодирует. Я бы предпочёл в 1251 работать. Для ГИС ЖКХ - точно будет достаточно того, что есть. Особенно, если Рубль добавить.
Если честно, то от однобайтных кодировок лучше отказываться где только можно. Главное себя заставить и планомерно переходить - это тоже своего рода подстилание соломки. Все (или почти все) странички я уже перевел на utf-8. Отправной точкой стал переезд сайта на _общеизвестный хостинг_ - там просто для всех страниц сервер выдает что они в utf-8, так как админка в utf-8. И это проблема сайта, если остальные страницы по факту в другой кодировке. Можно указать вторую в самой странице, но половина браузеров все равно покажет "крокозябры". Сначала тоже было больно - в текстовых файлах в начале строит символ кодировки utf-8, браузер корректно пропускает его первый раз. Но если включать несколько файлов в страничку, то символ встретится в середине и у браузера будет "разрыв шаблона", выдаст ошибку или сдвинет все оформление страницы на высоту 1 текстовой строчки. Ничего, написал программку, убирающую символ. Теперь все файлы что содержат кириллицу перекодирую. Для сохранения в БД местами осталось win-1251 (так вручную проще смотреть/исправить и слишком много места занимает utf-8).
С EXE-программами конечно сложнее - win-1251 как переходная к utf-8 сохраняется, но между win-1251 и utf-8 пока перекодирую только кириллицу и некоторые специальные символы. Если моя программа при этом работает с win-1251, то прочие символы просто не использую и игнорирую. Если же другие символы используются - то вся работа программы в utf-8.
Цитата
Basil пишет:
И если в исходном файле в строке есть символ #A4, при записи он преобразуется в символ рубля, хотя это не требовалось.
Вопрос: #A4 на основании чего выбран? это официальный код для рубля? В смысле Майкрософт тоже его использует в win-1251? Смутно помню, когда только добавили символ рубля, его поместили на одно из "свободных мест" (ранее не занятых) в официальной win-1251. Меня тогда удивило, что свободные места есть. Поэтому смущает замена символа валюты на символ рубля. Либо символ валюты был ранее неофициальный, либо у символа рубля другой код в официальной версии.
Цитата
AlcorVol пишет:
Если бы дела обстояли именно таким образом, то на одном ПК (и тем более, в одном и том же документе) нельзя было бы указывать денежные поля с разными валютами. Странновато и примитивно как-то... Не верится просто.
Мне тоже не верится, скорее всего где-то еще указывается "маскировочный" символ, но допускаю, что если он там явно не указан, то значение берется из локали системы.
Цитата
WinMerge
Спасибо, попробую. Обычно использовал консольный diff из FreePascal (но там есть некоторые неудобства, например, оператор конца предыдущей функции показывает в добавленном блоке, а оператор конца добавленной функции соответственно не показывает), и набросал необходимое для своего аналога, но не написал.
#33
0 0
Цитата
two_oceans пишет:
Вообще молодцы, даже в выходные исправляете.
Это Basil молодец! Остальные тут просто зрители. Я только небольшой начальный толчок дал.
Цитата
two_oceans пишет:
Если честно, то от однобайтных кодировок лучше отказываться где только можно.
Согласен. Но при условии, что среда разработки изначально Юникод поддерживает. В среде VFP только отдельные встроенные функции Юникод признаЮт.
Цитата
two_oceans пишет:
Некоторые умудряются Ё и Й кодировать соответственно как (Е и точечки отдельно) и (И и крышечка отдельно).
Ага, вот так: Ё (Е + Combining Diaeresis) и Й (И + Combining Breve). И как раз такие-то последовательности неплохо было бы "нормализовать" - особенно, при работе со всякими Гос.ИС. Помнится, раньше ПФР даже Ё не признавал за букву. :) Не знаю точно, как сейчас. И уж ни одна госсистема вам точно не найдет ни адреса, ни ФИО, если вы там всякие комбинированные символы указывать будете. Короче, для таких нужд множества русские буквы 1251 + Рубль - более, чем достаточно (в старшей половине таблицы). Ну, ещё кавычки всякие, возможно. То есть, некоторого подмножества таблицы 1251 вполне хватит. Осталось выбрать, куда Рубль перекодировать без особого ущерба.
Цитата
two_oceans пишет:
Вопрос: #A4 на основании чего выбран? это официальный код для рубля?
Нет, конечно.
Цитата
two_oceans пишет:
... смущает замена символа валюты на символ рубля.
Ну, если не нравится ¤, то давайте знак рубля перекодировать в македонскую букву Ѕ [dz]! :) Она не отличается по начертанию от латинской S. И вдобавок, на знак доллара похожа. :D

Отправлено спустя 21 минуты 52 секунды:
Цитата
two_oceans пишет:
Смутно помню, когда только добавили символ рубля, его поместили на одно из "свободных мест" (ранее не занятых) в официальной win-1251.
Насколько мне известно, в 1251 только одна пустая позиция - #98. И она ничем не занята до сих пор. (Возможно, какое-то ПО и использует этот код в качестве знака рубля, но в официальной таблице это не отражено.)
#34
0 0
Цитата
two_oceans пишет:
WinMerge
Спасибо, попробую.
Там одно неудобство - в качестве конца строк используются только CR/LF. И если нужно сравнить, например, XML, состоящие из одной длинной строки, приходится предварительно расставлять CRLF после завершающих тэгов.
#35
0 0
Цитата
Basil пишет:
в качестве конца строк используются только CR/LF.
Да, если вообще концы строк не обозначены - то сравнивать сложно. Однако, в Настройках > Сравнение > Основные есть опция "Игнорировать разницу в возвратах каретки (Win/Unix/Mac)"
#36
0 0
Цитата
AlcorVol пишет:
Однако, в Настройках > Сравнение > Основные есть опция "Игнорировать разницу в возвратах каретки (Win/Unix/Mac)"
Это не то. В win используется пара CR+LF, а в unix/mac одиночные, только CR или только LF.
#37
0 0
Цитата
Basil пишет:
Это не то.
Конечно, не то, согласен. Я ж сразу и написал:
Цитата
AlcorVol пишет:
если вообще концы строк не обозначены - то сравнивать сложно.
#38
0 0
Цитата
AlcorVol пишет:
Ну, если не нравится ¤,
Дело-то не в том, что нравится или не нравится, а чтобы совпадало с официальным от Майкрософт, а то получится не очень хорошо. Вот где смотришь официальную страницу?
Цитата
AlcorVol пишет:
Насколько мне известно, в 1251 только одна пустая позиция - #98. И она ничем не занята до сих пор.
я смотрю через вот такой файлик, в который выведены последовательно все коды символов с #20 по #FF просто в Блокнотe, шрифт Lucida Console и вижу следущее: На всякий случай проверил основные шрифты использующиеся в Office: Arial, Times New Roman, Tahoma, Calibri, Courier - везде одно и тоже. Странно, похоже #98 вообще пропускает и показывает символ торговой марки со следующей позиции. Правда последнее обновление шрифтов, вышедшее в этом году не установлено - там тоже добавили символ какой-то валюты. Поэтому меня тоже удивило заявление, что в официальной есть свободные места, на рисунке их реально было с десяток. Сейчас искал, пока нашел только такую же как у меня в Блокнтое, но с подписями кодов Юникода:

Отправлено спустя 14 минуты 37 секунды:
Цитата
AlcorVol пишет:
И как раз такие-то последовательности неплохо было бы "нормализовать" - особенно, при работе со всякими Гос.ИС.
Согласен.
Цитата
Basil пишет:
XML, состоящие из одной длинной строки, приходится предварительно расставлять CRLF
Собственно, в других программах сравнения не лучше. В ряде случаев расстановки CRLF нужно избегать, например к "нашим баранам" SOAP, это сломает каноникализацию (****, еле выговоришь) и проверку ЭП, там допустимы только LF и в файл на отправку нужно писать именно полученный при каноникализации текст. Но это наверно напишу подробно в другой теме, не будем тут обсуждать.
charset1.jpg (33.42 КБ)
#39
0 0
Цитата
two_oceans пишет:
Вот где смотришь официальную страницу?
Ну, можно здесь, например:
ftp://ftp.unicode.org/Public/MAPPINGS/V ... CP1251.TXT
Хотя и Википедия тут подошла бы. Достаточно часто обновляется.
Цитата
two_oceans пишет:
Странно, похоже #98 вообще пропускает и показывает символ торговой марки со следующей позиции.
Пропускает как раз потому, что 0x98 #UNDEFINED. ;)
Цитата
two_oceans пишет:
Собственно, в других программах сравнения не лучше. В ряде случаев расстановки CRLF нужно избегать, например к "нашим баранам" SOAP, это сломает каноникализацию (****, еле выговоришь) и проверку ЭП, там допустимы только LF
Вот, я и говорю: долой SOAP, даёшь загрузку файлов в ЛК! Пускай сами там всё канон-ик-ал-из-ир-уют. Тьфу! Поналепили закордонных суффиксов! Ни чувства языка, ни чувства меры.
#40
0 0
Цитата
AlcorVol пишет:
Хотя и Википедия тут подошла бы. Достаточно часто обновляется.
Ну нет, Википедия незаменима как источник когда вообще ничего о каком-то явлении/понятии не знаешь, но когда надо какую-то мелочь абсолютно точно узнать, она не авторитет. Спасибо, хотя юникод орг тоже как-то с натяжкой - "Date: 04/15/98", мягко говоря устарело. И это стандарт для преобразования из 1251 в Юникод, а не сама 1251. Норматив от Майкрософт (2014 года или новее, после включения символа рубля в Юникод) был бы убедительней. Я бы вообще выкинул из 1251 символы вроде #CYRILLIC SMALL LETTER LJE, которые в русском не встречаются.
#41
0 0
Выкладываю последнюю доработку класса. Изменения:
- добавлено чтение тем. (влияет на отображение цветов в Libre)
#42
0 0
Цитата
two_oceans пишет:
Я бы вообще выкинул из 1251 символы вроде #CYRILLIC SMALL LETTER LJE, которые в русском не встречаются.
Win-1251 - не русская, а кириллическая кодировка. Учитывает одновременно русский, украинский, белорусский, болгарский, сербский и македонский алфавиты. Хотя и не все кириллические шрифты там представлены. Поэтому, если заглянуть в ту же Википедию
(https://ru.wikipedia.org/wiki/Windows-1251), найдём там и примеры неканоноческих модификаций: для татарского, чувашского, казахского. (Существуют и другие.) Выкидывать ничего не надо. Но если ты не занят обработкой сербских (к примеру) текстов, то не будет большим грехом использовать соответствующие позиции для своих внутренних технических нужд.
#43
0 0
P.S. Позабавлю господ ещё немного на тему кодировок. Я довольно долго сидел в среде FoxPro/DOS (FPD). Слава богу, WinXP выполняла 16-битные приложения прекрасно. Но когда на горизонте замаячила Win7 (на самом деле, задолго до этого) я решил перекинуться с FPD на VFP. Долго думал, как это сделать:
- (а) малой кровью;
- (б) не уходя из FPD насовсем;
- (в) поддерживая единую версию своих программ для обеих сред.

И решение такое я нашёл. ;) Не вдаваясь глубоко в детали, поступил я так. Во-первых, разработал свой собственный вариант Win-кодировки (назовём его Box-1251), включающий все русские буквы на позициях 1251, а также всю табличную псевдографику из 866, как-то раскиданную по позициям от #80 до #BF. Установил взаимно-однозначное соответствие 866 <-> Box-1251 и написал функции перекодировки. Во-вторых, собственноручно разработал семейство растровых шрифтов разных размеров для правильного отображения символов этой кодировки на экране. (Это заняло всего пару дней). В результате, всякие экранные формы DOS-овского стиля после перекодировки стали прекрасно отображаться в среде VFP. Кроме того, конечно, пришлось вставить кое-где в программах проверку среды (переменные _dos/_windows) - и реагировать по-разному в зависимости от того, где программа выполняется (но таких мест оказалось совсем немного).

В результате я добился следующего. Все программы писал в среде FPD, но автоматически получал из них сразу две рабочие версии: для DOS (в виде *.app) и для Windows (в виде *.exe). Процесс получения Windows-версий всех prg-файлов я полностью автоматизировал (а там не только простая перекодировка 866 -> 1251, кстати). От этой схемы я ушёл совсем недавно, так как у многих клиентов стоит до сих пор WinXP, и некоторых приходилось перетягивать на Win-версию программ чуть ли не за уши. :D Теперь программирую только на VFP. Но по внешнему виду программы до сих пор сильно напоминают старые DOS-приложения. Но клиенты не жалуются. Им ведь функционал важен, а не внешний вид. ;)

И на закуску - прилагаю файл со шрифтами. Можете установить, открыть в Блокноте табличку с символами от #00 до #FF, выбрать шрифт Alcor Box 1251 - и глянуть результат. Там пять размеров (pitches).
#44
0 0
Цитата
AlcorVol пишет:
Win-1251 - не русская, а кириллическая кодировка. Учитывает одновременно русский, украинский, белорусский, болгарский, сербский и македонский алфавиты.
Примерно так и предполагал: для расширенной латиницы наверно 5 разных кодовых страниц сделали, а для кириллицы зажались и сделали одну. Больше всего свободных мест в греческой, хотя казалось бы символы с древних времен и похожа на все понемногу.
Цитата
AlcorVol пишет:
И решение такое я нашёл.
Спасибо, порадовал! Изящное решение, но с трудом представляю внешний вид. То есть в программе виндовское окно с серым(белым) фоном, а в нем еще текстом нарисована рамка и прочие элементы управления - поля ввода, списки, а сам текст моноширинным шрифтом? Это конечно вариант, но как-то странно должно смотреться среди оформления Windows :) В первую очередь вопрос по быстродействию отрисовки. Во вторую, как оно выглядит на Win 7 с новейшими мониторами и включенным масштабированием. Не так давно видел программу, которая не масштабируется, но говорит Windows 8 что все ОК, перемасштабировать не надо. В итоге размер окна на родном разрешении монитора примерно с пластиковую карту и приходится ставить 1024x768, чтобы разглядеть что-то кроме меню и заголовка (их Windows увеличивает).
У меня такой задачи не стояло - рисование псевдографическими символами прошло стороной. Я бы наверно сделал по-другому, так как у меня другой язык и другая IDE - унифицировал параметры функции, выводящей элемент управления (скажем, поле ввода) шрифтом для DOS (на Паскале есть стандартный Unit) и стандартным элементом управления в Windows (по образцу досовского Unit). Далее подставил разные циферки при формировании окон (на Паскале есть управляющие комментарии для компилятора - то есть сама программа вообще может не проверять в какой среде работает, можно из одного текста сделать несколько версий в зависимости, какие условия передать при сборке, и распространять разные версии для разных сред). Конечно "малой кровью" не назовешь (кроме внешнего вида, стандартные элементы Windows по другой логике работают), но и выглядеть будет по-разному из одного исходника.
Цитата
AlcorVol пишет:
Во-вторых, собственноручно разработал семейство растровых шрифтов разных размеров для правильного отображения символов этой кодировки на экране.
Вот это мне очень интересно. Очень давно есть проблема с отображением кириллицы на синем экране смерти Windows XP. Конечно обычно там стандартный текст и я его уже практически выучил и ориентируюсь на код ошибки, но у некоторых ошибок есть отличия в тексте. Как я понимаю это как раз должно решаться заменой файла шрифтов bootfont.bin Однако нормальной версии вроде бы не нашел и с чего начать ковырять формат тоже непонятно. С Win 7 проблема решается по-другому - в загрузчике указать RU-ru.
#45
0 0
Цитата
two_oceans пишет:
Изящное решение, но с трудом представляю внешний вид.
Спасибо, картинки могу тут выложить.
Цитата
То есть в программе виндовское окно с серым(белым) фоном...
Ну почему так? ДОС-овское приложение - это не обязательно чёрно-белый экран консольного вида. :) Ещё с конца 80-тых в моду начали цвета входить, в виде примитивной RGB-схемы. На фоне - восемь цветов, а символы рисовались 16-тью (с учётом яркости). Вот, в таких тонах FPD и была реализована. Очень так цветненько всё. И этот винтажный стиль моя программа пронесла сквозь года до наших дней. :)
Цитата
... а в нем еще текстом нарисована рамка и прочие элементы управления - поля ввода, списки, а сам текст моноширинным шрифтом?
Именно так.
Цитата
Это конечно вариант, но как-то странно должно смотреться среди оформления Windows
Думаю, что такое ретро скоро снова на пике моды будет. Как винил. Или "тёплый ламповый звук". :D
Цитата
В первую очередь вопрос по быстродействию отрисовки.
У меня лично никаких претензий тут нет. Какие проблемы - с растровыми-то шрифтами?
Цитата
Во вторую, как оно выглядит на Win 7 с новейшими мониторами и включенным масштабированием.
А вот этого не знаю... Не приходилось сталкиваться. На моём мониторе 1280х1024 в Win 10 смотрится вполне приемлемо.
Цитата
Очень давно есть проблема с отображением кириллицы на синем экране смерти Windows XP.
Не знаю, чем могу тут помочь. Если мои шрифты понадобятся - можно смело использовать, мне не жалко. Там в заголовке файла шрифтов даже специально указано: Free to use. ;)

Ну, и вот - картинки. Текст меню там у меня немного устарел. Под "корректировкой" в большинстве случаев нужно понимать "ОДН", но бухгалтеры понимают всё правильно. Привожу три скрина с разным размером шрифта, который влияет и на размер экрана (окна). Ширина - всегда 80 символов, но количество строк (размер окна по вертикали) можно менять в процессе работы (как и размер шрифта) динамически. (Используются клавиши Alt+стрелки.)



Alba2.jpg (630.63 КБ)
Alba3.jpg (686.38 КБ)
Alba1.png (555.36 КБ)
#46
0 0
Цитата
AlcorVol пишет:
ДОС-овское приложение - это не обязательно чёрно-белый экран консольного вида.
Это я понимаю, IDE Free Pascal практически так же выглядит, но там консольное приложение. И еще двойная рамка псевдографикой по краю окна. Просто не ожидал, что в Windows цвета тоже перенесешь. Как-то я никогда не задавался вопросом, но без обращения к WinApi (создание кисти определенного цвета либо кисти из системной цветовой схемы, применение ее к фону/шрифту и тп) не представляю как задать цвета.
Цитата
AlcorVol пишет:
Какие проблемы - с растровыми-то шрифтами?
Значит, не тот случай. Тут Windows шрифт использует и рисует? Мои сомнения больше относятся к случаю, когда программа сама шрифт по пикселям рисует. В одном из старых журналов видел программу как это сделать - и в Досе все отлично, так как можно напрямую обращаться к видеопамяти и "зажигать" нужные пикселы. А в Win подозреваю будут жуткие тормоза либо придется с DirectX возиться.
Цитата
AlcorVol пишет:
1280х1024 в Win 10
Замечательно, полагаю проблем нет, если шрифт рисует Windows и ширина(высота) окна тоже определяется системной функцией (в смысле, сколько данные 80 символов займут пикселей на экране).
Цитата
AlcorVol пишет:
Ну, и вот - картинки.
"Выберите действие клавишами" - кажется, клавиши в шрифте не прорисовалось.
Цитата
AlcorVol пишет:
Думаю, что такое ретро скоро снова на пике моды будет.
Хорошо бы, но пока все какие-то "инновации" и "украшательства"- то плитками замостят, рабочий стол уберут, то автообновят на следующую версию ночью. Интерфейс все больше ориентирован на детей - крупные и яркие значки, автонастройка практически всего. Автонастройка это конечно хорошо, но кое-что я бы даже и не стал настраивать потому как функции вообще мне не нужны и, отключив,сэкономил бы немного ресурсов. Про графику игр вообще диву даюсь - системные требования растут катастрофически. Теперь уже каждая игра считает должным тащить минимум 5-10 Гб текстур. Раньше драйвер весил 200 Кб, теперь чтобы поставить некоторые драйвера нужно скачать еще 300 Мб - всяческие фреймворки и тому подобное. Фреймворки задумывались как средство уменьшения размера программы, но сейчас это перевернулось с ног на голову. Так что не знаю, не знаю, доживем ли. Может это ретро будет в моде при наших внуках, когда грянет какой-нибудь апокалипсис и всем временно станет не до "украшательств".
#47
0 0
Цитата
two_oceans пишет:
Тут Windows шрифт использует и рисует?
Да. Просто при инициализации среды программы при работе в Windows я выбираю именно этот шрифт и указываю его потом во всех "DEFINE WINDOW ..." по умолчанию. (Все дополнительные параметры автоматически добавлялись при конвертации prg-файлов DOS -> Win.) VFP использует этот шрифт, отрисовывая окна и исполняя всякие "@ ... PUT" и "@ ... GET". При этом окна рисуются средствами Windows - уже без псевдографических рамочек. И для заголовков окон, как видно, используется уже совсем не моноширинный шрифт. Над размерами и координатами немного везде поколдовать пришлось, но и тут VFP сохраняет совместимость с FPD по максимуму, позволяя задавать эти величины в старом стиле - как бы в количестве (номерах) колонок/строк текущего моноширинного шрифта (а не только в пикселях). Такие координаты, впрочем, могут в VFP быть и нецелыми.
Цитата
Просто не ожидал, что в Windows цвета тоже перенесешь.
А у меня почти не было иного выхода. Около десяти лет поддерживал обе версии программ с автоматической конвертацией DOS -> Win. ;) При этом преобразовании, кстати, я изменял везде фразы типа color RG+/B на color RGB(255,255,0,0,0,127) (или какое-нибудь чуть другое значение - согласно выбранной схеме соответствия цветов). Но мог бы этого и не делать. Так как VFP прекрасно понимает и старые конструкции вида color rg+/b. :)
Цитата
полагаю, проблем нет, если шрифт рисует Windows и ширина(высота) окна тоже определяется системной функцией (в смысле, сколько данные 80 символов займут пикселей на экране)
Этот размер вычисляет VFP - полагаясь на ширину и высоту символов текущего шрифта, а также размер окна (грубо говоря, в количестве символов в ширину и количестве строк в высоту).
Цитата
"Выберите действие клавишами" - кажется, клавиши в шрифте не прорисовалось.
Да, есть такой эффект. Там стрелки вверх/вниз на самом деле "нарисованы", которые в кодовой таблице попадают в диапазон служебных символов #00 - #1F. В Win 7 одна из этих стрелок почему-то заменилась на какой-то из псевдографических Box-символов, а в Win 10 - обе стали прямоугольничками. :) Но это мелочи. Косметика, так сказать. Лечится легко путём замены самого текста подсказки. Не очень-то эти стрелки и нужны.
Цитата
Хорошо бы, но пока все какие-то "инновации" и "украшательства"- то плитками замостят, рабочий стол уберут, то автообновят на следующую версию ночью. Интерфейс все больше ориентирован на детей - крупные и яркие значки, автонастройка практически всего.
Согласен. Юзера всё больше за дебила считают. :D Но рабочий стол вернули ещё в 8-ке. Больших неприятностей при переходе c 7-ки Pro на 10-ку Pro пока не заметил. (Обновился до 10-ки в последний день бесплатного обновления, как это и принято на Руси. :D ) Но, действительно, слегка бесит, что по ночам комп может проснуться без спросу для обновления. Пока не смог найти, как с этим бороться.
#48
0 0
Цитата
AlcorVol пишет:
VFP использует этот шрифт, отрисовывая окна
Ага, то есть к WinApi обращается сам VFP. Удобно.
Цитата
AlcorVol пишет:
Этот размер вычисляет VFP
А вот тут могут быть сюрпризы, если и правда вычисляет сам умножением, а не спрашивает у системы. Например, может оказаться, что на мониторе 1600x900 со включенным масштабированием на 150% входит скажем символов 60 вместо 80. С программами "больших корпораций" такого не встречал, а вот "независимые" разработчики вроде меня и тебя вполне могут попасть под такой глюк - в качестве примера программка, которой бухгалтерия набирает данные по зарплате для сбербанка. Внезапно на одном из компьютеров после обновления Windows XP на Windows 7, программка оказалась с исковерканным интерфейсом, при этом на соседнем компьютере с Windows 7 нормально отображается. Для меня такое актуально, потому что начальники отделов и их заместители почти хит-парад устраивают у кого монитор побольше, а потом начинают ныть когда он показывает или слишком мелко или размазано или мерцает на "родном" разрешении (вот это меня "восхитило" - один из мониторов на "родном" поддерживает только 60Гц и видимо мерцает, на разрешениях поменьше 90 Гц и мерцания практически не видно.
Цитата
AlcorVol пишет:
Не очень-то эти стрелки и нужны.
Конечно, да и сама подсказка тоже скорее дань "ретро", сейчас подсказки в строке состояния и прямо под указателем мыши всплывают. Кстати, а мышь поддерживается?
Цитата
AlcorVol пишет:
Обновился до 10-ки в последний день бесплатного обновления, как это и принято на Руси.
Молодец, успел. В последний день там наверно сервера работали на износ.
Цитата
AlcorVol пишет:
Но рабочий стол вернули ещё в 8-ке.
Ага, но главное меню вернули не на все версии и вызвать поиск у меня получается через раз - приходится долго крутиться у правого края экрана.
Цитата
AlcorVol пишет:
Больших неприятностей при переходе c 7-ки Pro на 10-ку Pro пока не заметил.
Как по мне там одна большая неприятность :) Если по деталям, я конечно себе не ставил, а на чужих компах глубоко в настройки не лазил, но мне совершенно не нравится как выглядит список программ в главном меню (при этом само меню смотрится замечательно) - ну зачем, вместо удобных подменю все вывалили в алфавитном порядке в меню, да еще и вставили разделители по буквам. В подменю можно было все компактно сгруппировать и прокручивать не приходилось, теперь очень напряжно листать меню с тачпадов, да и с мышью ненамного лучше. На прошлых версиях русские названия менялись с завидным постоянством (не знаю, может на английском названия одни и те же, а чудили переводчики), поэтому я никогда не учил наизусть названия программ, ориентировался на название подменю и смысл ярлыка. Теперь же приходится мучительно вспоминать как же эти (редиски) обозвали ту или иную программу, поиск конечно помогает, но не всегда, потому что ищет тоже по названию. В итоге времени на диагностику/настройку уходит больше, потому что черт его знает куда засунули и как переназвали.
Цитата
AlcorVol пишет:
Юзера всё больше за дебила считают.
Ох, про это я могу говорить очень долго. Вообще лично мне самым комфортным был интерфейс Windows 2000 - стабильно, без "украшательств" и даже возможности их сделать. Теперь вот и к семерке на работе притерпелся, а дома все еще икспи и виртуальная машина с сервером 2000 (держу на случай совместной работы над каким-то проектом - хоть и серверная ос, но оперативки требует меньше чем икспи). На Windows Xp добавили возможность и сразу в это окунулись - понятно надо было ребятам показать что не зря зарплату получали - иначе на XP бы никто не пошел. Одновременно программы поставили перед выбором - поддерживать 2000 без украшательств или XP с украшательствами. Если бы возможность украшать добавили на 2000 и выпускали обновления безопасности - программы бы до сих пор его поддерживали и на следующие версии никто не пошел. Я не отрицаю внутренних преимуществ архитектуры Windows 7 (более стабильный загрузчик, но он и XP/2000 прекрасно загружает; NTFS эффективнее работает с большими дисками - это улучшение драйвера NTFS - при желании могли включить в XP или 2000; поддержка образов - тоже можно, приложив руки, запихать в образ икспи, наверное и 2000 тоже; зато практически убили интерфейс поиска - теперь ищется всякий хлам из папки Windows, не ищется по содержимому например исходников программ или документов Word, если задать ".ini", то точку проигнорирует и найдет кучу файлов с ini в середине; если перейти из найденного в папку, содержащую объект, а потом перейти на уровень выше - вернется к списку найденного, а не к родительской папке; в профиле пользователя понаставили хардссылок - задумка хорошая, но сам проводник по ним, ****, не переходит! они там с ума посходили?), 8 (поиск вроде подправили - но запихнули изощренно; сделали расположение файлов для быстрой загрузки, отображение часов на экране блокировки - непонятно, что мешало это сделать раньше; поддержка на уровне BIOS - на самом деле семерка тоже прекрасно грузится если поставить вместо восьмерки потом вернуть SecureBoot, но зависит от прошивки BIOS и потому работает не везде) или 10 (обязательная подпись драйверов и неотключаемые обновления - задумано вроде неплохо, но по факту больше проблем), но если посмотреть на список возможностей максимальной редакции (да хотя бы и профессиональной), то сомневаюсь что 90% пользователей вообще знают, что эти названия означают, а из тех кто знает половине они вообще не нужны - единственные полезные функции - поддержка домена и редактор политик, эмулятор икспи, сервер RDP, в максимальной еще AppLocker (правда я его все никак не настрою). Остальное: BranchCache, BitLocker, многоязычный пользовательский интерфейс, поддержка нескольких физических процессоров, подсистема запуска Unix приложений и так далее не используются, зато за них берут деньги. А значит и от того, что их обновляют и улучшают простому пользователю ни тепло ни холодно. Все что нужно, можно было включить еще в windows 2000. Сервера правда все равно пришлось бы обновлять, там действительно есть кардинальные улучшения. Но корпоративный сегмент и сервера от обычного пользователя очень далеки.
Цитата
two_oceans пишет:
то плитками замостят
Не то чтобы мне не нравились плитки сами по себе, но это мне сильно напоминает как раньше продвигали Active Desktop во времена windows 98 и Windows 2000 - типа можно скрыть ярлыки, зайти прямо рабочим столом на страничку сайта (то есть смотреть курсы валют, погоду и тп прямо на рабочем столе), а еще только на нем можно было поставить картинки в JPG. Но что-то не припомню случаев, когда кто-то действительно скрывал значки ради просмотра погоды. Даже JPG простые пользователи сохраняли в BMP и прекрасно ставили картинку, игнорируя "замечательный" Active Desktop. На XP стали поддерживаться JPG в обычном режиме и про него перестали вспоминать вообще. На 7 ввели поддержку виджетов и на них откликнулось гораздо больше пользователей - по сути почти у всех одно и тоже, что предлагали на Active Desktop: часы, погода, валюты, но без скрытия значков. Минус - виджеты потребляют много ресурсов и частенько слетают. В 8-10 все это переехало на плитки и наверняка потребляет немало ресурсов. И не отключишь насовсем, так как это теперь основной интерфейс. Прям передергивает когда вижу на плитках содержимое каких-нибудь новостных сайтов, Office 365, магазин Майкрософт или вход через единую учетную запись Майкрософт. И все разного размера плюс перемещивается при удалении плиток.
Цитата
AlcorVol пишет:
Но, действительно, слегка бесит, что по ночам комп может проснуться без спросу для обновления.
На сколько я знаком с 10, должно быть минимум два способа с эти бороться - 1) отложить обновления (при этом там настораживающая приписка, что отложить можно максимум на год - потом видимо каааак постааавит) и запускать обновление вручную (варианта совсем отключить в 10 не показывается, может быть сработает, если в реестре поковырять способом для предыдущих ос); 2) настроить другое время для автообновления - но это тоже мало приятного, включаешь например утром, с настроем поработать, а комп пишет - подождите, ставятся обновления. Сразу первая мысль - отключить обновления вообще. И хорошо, если они нормально установятся, а ведь много случаев когда на семерке вылетал синий экран или отказывала подсистема Wow64. В общем, тема не о том, надо завязывывать с оффтопиком.
#49
0 0
Цитата
two_oceans пишет:
Например, может оказаться, что на мониторе 1600x900 со включенным масштабированием на 150% входит скажем символов 60 вместо 80.
Вот, для моей программы - как раз не беда. Нажмут Alt+(стрелка влево) - и шрифт поменьше станет. А вместе с ним - и окошко. ;)
Цитата
практически убили интерфейс поиска
Если просто файлы/папки/текст - то лучше в FAR'е искать. ;)
Цитата
эмулятор икспи
С этого места - поподробнее, пожалуйста. Где он там в 10-ке Про? На 7-ке я Windows XP mode гонял. Даже vhd остался. C него же на Hyper-V загружаться?
Цитата
two_oceans пишет:
В общем, тема не о том, надо завязывывать с оффтопиком.
Да, ты прав. Ещё пара фраз - и завязываем. :D
#50
0 0
https://habrahabr.ru/post/236107/ вот нашёл на просторах, как человек пишет и сохраняет в XLSX. Файлы тоже нашёл, тяжело в них с ходу разобраться.
#51
0 0
Цитата
AlcorVol пишет:
шрифт поменьше станет. А вместе с ним - и окошко.
Ага, но снова не факт что все войдет, так как размер окна тоже пересчитается. Впрочем, я полагаю, что VFP все же достаточно умен, чтобы спросить ширину текста с учетом всех масштабирований у системы и тогда никаких проблем. Однако протестировать лишний раз не помешает.
Цитата
AlcorVol пишет:
Если просто файлы/папки/текст - то лучше в FAR'е искать.
Да, походу Far это наше всё. Обычно я там только шестнадцатеричные коды смотрю, когда форматы файлов подбираю, но видимо надо снова вспоминать и использовать по полной. Тогда, 1) какой смысл тратить процент системных ресурсов на службу индексирования и службу отслеживания файлов; 2) как искать в Far и в частности по тексту файлов я пока не разбирался. В одном файле знаю, а допустим по тексту файлов с определенным расширением на всем диске, включая поддиректории - нет.
Цитата
AlcorVol пишет:
C него же на Hyper-V загружаться?
Если нужда припадет, то можно и с другого гипервизора виртуальных машин. Родные - VirtualBox и Hyper-V. Там я перечислял функции семерки Про, но практически уверен, они есть и в десятке. Вот, нашел - Hyper-V в 8 и 10 по умолчанию выключен, его нужно включить в списке компонентов ОС, убедится что он не затенен серым и перезагрузить компьютер. Нашел вот здесь, там еще есть всякие тонкости (статья на английском). Так как VHD уже есть, то можно начать с пункта "4. Activate Hyper-V on your Windows 10".
Цитата
serg_p пишет:
вот нашёл на просторах
Спасибо, глянул беглым взглядом, это реализация записи на PHP, без чтения, сильно упрощенная и не соответствует шаблонам. В остальном, прекрасное решение на случай, когда нужно записать в XLSX огромные объемы данных, выбранных из базы данных по запросу из веб-формы и не нужно беспокоиться о форматах ячеек. В конце концов, можно еще чем-то обработать результат, чтобы соответствовал шаблону. :D
#52
0 0
Цитата
two_oceans пишет:
Спасибо, глянул беглым взглядом, это реализация записи на PHP, без чтения, сильно упрощенная и не соответствует шаблонам.
дыкть, просто шаблоны распоковать и писать 'как там'... не?
а вот чтение пригодилось бы - ГИС когда обрабатывает XLSX, то в качестве результата пишет идентификаторы всякие
#53
0 0
Цитата
two_oceans пишет:
Ага, но снова не факт что все войдет, так как размер окна тоже пересчитается.
Константин, ты не совсем понял. ;) У меня ширина окна программы - 80 символов, как в ДОСе. (Хотя высота в строках может быть и переменной.) Если задать шрифт поменьше - то и окошко приложения станет поменьше. Я сам прошу тут VFP окошко перерисовать соответствующим шрифтом => соответствующего размера. :)
Цитата
two_oceans пишет:
как искать в Far и в частности по тексту файлов я пока не разбирался.
Клавиша Alt-F7. Задаёшь маску имени файла и (если надо) текст внутри для поиска. Можно искать в текущем каталоге. Можно и с подкаталогами. Работа с кодировками - тоже достаточно гибкая.
#54
0 0
Цитата
Дамир пишет:
дыкть, просто шаблоны распоковать и писать 'как там'... не?
Дыкть, не так всё просто! :D
#55
0 0
Цитата
AlcorVol пишет:
Константин, ты не совсем понял. У меня ширина окна программы - 80 символов, как в ДОСе. (Хотя высота в строках может быть и переменной.) Если задать шрифт поменьше - то и окошко приложения станет поменьше. Я сам прошу тут VFP окошко перерисовать соответствующим шрифтом => соответствующего размера.
Кхм, а мне кажется наоборот, ты не совсем понимаешь, что шрифт может занимать на мониторе не столько пикселей, сколько было тобой задумано при создании шрифта. Ну смотри. Твой шрифт скажем 10х8 (к примеру, я не смотрел какие там размеры), то есть 8 пикселей в ширину. Предположим что расстояние между символами 1 пиксель, тогда (8+1)*80=720 (для круглого счета опустим, что после последнего промежутка нет). Пусть программа просто умножила, игнорируя масштабирование, известный размер шрифта на 80 и окно занимает эти 720 пикселей в ширину. Но в Винде, допустим, включено масштабирование 150% и твой шрифт, выведенный Виндой, по факту занимает на мониторе 12 пикселей в ширину, а промежуток стал полтора пикселя (дробное значение сглаживается видеоадаптером, так что края могут ужасно выглядеть). То есть войдет в окно 720/(12+1,5)=53,(3) символа. А если запросить у Винды сколько займет в ширину текст длиной 80 символов с таким-то шрифтом (если не моноширинный, то еще и будет учтена ширина каждого символа в конкретном тексте), она вернет правильное значение (12+1,5)*80=1080 пикселей. От изменения базового размера шрифта не изменится соотношение между реальным размером и базовым размером и входить будут все те же 53 символа. Вот о чем я говорю, что надо проверить запрашивает VFP размер 80 символов у Винды или сам умножает. Конечно, есть еще вариант, что запрашивает размер одного символа шрифта, а потом умножает - в этом случае будет ошибка с промежутками на 80*0,5=40 пикселей и не войдет "всего" 2-3 символа.
Цитата
AlcorVol пишет:
Клавиша Alt-F7
Огромное спасибо. Хотя про кодировки остается небольшое сомнение (UTF-8, например, в которой веб-страницы или поиск в Word), но если я ищу в исходном тексте программ, то они почти полностью на английском и все отлично.
Цитата
AlcorVol пишет:
Цитата
Дамир пишет:
дыкть, просто шаблоны распоковать и писать 'как там'... не?
Дыкть, не так всё просто!
Точно! В частности, в этой реализации на PHP вообще пишется только содержимое ячеек, причем перезаписывается весь распакованный файл в котором значения, ничего из бывшего "до этого" не остается, то есть "как там" нужно будет как минимум либо добавить прямо в своем коде (а если шаблон изменится, то изменить, так что не пойдет!) либо считывать файлы в шаблон и совмещать с новыми значениями.
Кроме того, на самом деле, если мы уже имеем веб-интерфейс, получающий данные для размещения из базы данных УО, то нам и XLSX не очень нужен. Во-первых, (не предусмотрено, но реализуемо) можно хитрым скриптом авторизоваться в ЛК и напрямую заполнить значения форм ручного ввода, сохранить, повторить. Работать конечно будет не очень хорошо, но есть и плюсы - при обычном открытии отображается весь ЛК, но скрипт может вырезать из него только форму отправки и она будет работать намного быстрее. Конечно, все равно придется ставить задержку, чтобы было похоже на человека и не порезало защитой - например, отправка новой формы через 5 секунд. Плюс контроль не вышло ли сообщения что технические работы или страница не найдена. Плюс контроль чтобы не забить данные дважды, но и ничего не пропустить. Во-вторых, (предусмотрено разработчиками) до SOAP рукой подать. Правда, с ЭП там будет "вешалка".
С другой стороны, прелесть PHP в том, что веб-интерфейс на самом деле не нужен - можно запустить PHP файл в консоли, а "параметры запроса" страницы передать в командной строке. Вот тут запись в XLSX бы пригодилась. И раз уж возможны целых 3 подхода из PHP, задумался, не перейти ли на PHP для этого проекта. А для ЭП можно написать расширение PHP (на самом деле, оно уже есть от КриптоПро, но не в открытом доступе, а закрытый доступ для разработчиков серверов стоит довольно дорого).
#56
0 0
Цитата
two_oceans пишет:
Пусть программа просто умножила, игнорируя масштабирование, известный размер шрифта на 80 и окно занимает эти 720 пикселей в ширину.
Умножает тут, кстати, не моя программа, а сама VFP. Я просто ей говорю: окно таким-то шрифтом, 80 символов в ширину и 40 в высоту. Но это сути проблемы с масштабированием не меняет; надо пробовать - и смотреть, что получится. Однако мне ужасно лень в эту тематику влезать: и других забот хватает. :D
Цитата
two_oceans пишет:
Хотя про кодировки остается небольшое сомнение (UTF-8, например, в которой веб-страницы или поиск в Word)
Искать в UTF-8 не получится. Хотя FAR и умеет работать с файлами в UTF-16 (с гарантией - если Byte Order Mark в начале влепишь). Я даже программку сочинил когда-то (ради интересу) для перекодировки 1251 <-> UTF-16. Пока не пригодилась. :D
#57
0 0
Цитата
AlcorVol пишет:
Искать в UTF-8 не получится. Хотя FAR и умеет работать с файлами в UTF-16
Far3 умеет работать с файлами в UTF-8. ;)
#58
0 0
Цитата
two_oceans пишет:
закрытый доступ для разработчиков серверов стоит довольно дорого
Уточню, что если бы продавал услуги, то купил бы. А для "самообразования" и экспериментов 30-50 тысяч за 1 файл как-то многовато.
Цитата
AlcorVol пишет:
Умножает тут, кстати, не моя программа, а сама VFP
Согласен, я имел ввиду, что сама VFP тоже либо по сути программа либо встраивает что-то в твою при компиляции (не работал, так что не знаю детали, но предполагаю так).
Цитата
AlcorVol пишет:
с гарантией - если Byte Order Mark в начале влепишь
Цитата
Basil пишет:
Far3 умеет работать с файлами в UTF-8.
Полагаю, замечание о Byte Order Mark в силе и для UTF-8 в Far3? Если да, то это не очень хорошо - как я уже упоминал, составляю веб-странички из нескольких PHP файлов и, если метка есть и попадает в середину страницы, то браузер всякие фокусы выкидывает. В основном, помогает брать начало файла в теги комментарии, но иногда комментарий никак не влепить.
#59
0 0
Добрый день, страдальцы по ГИС ЖКХ. Опишу свою ситуацию. Работаю в Водоканале, работаю на Делфе. Задача как и у всех, грузить данные в эту систему. Получить доступ к веб-сервисам пока не можем, беда с авторизацией, этим занимается админ. Предложил загружать файлы шаблонами. XLSX не получается сохранять из программы, но можно сохранять в XLS и система их кушает и обрабатывает. Загрузил 999 записей в систему при помощи шаблона Договора ресурсоснабжения. Одна беда, не все листы обрабатываются, выдаёт ошибки, то это не так, то неправильные данные, то не выбран тип. Шаблон грузил два раза, теперь у меня в системе 3 одинаковых абонентских номера, почему то у них не стоит обработка на раннее занесённые данные. Придётся в ручную удалять.
Решил что данные все выгружу через шаблоны. А потому уже буду разбираться с веб-сервисами. Если интересны заполненный шаблон вышлю файл на почту.
#60
0 0
Правильный выбор.
Цитата
serg_p пишет:
но можно сохранять в XLS и система их кушает и обрабатывает. Загрузил 999 записей в систему при помощи шаблона Договора ресурсоснабжения. Одна беда, не все листы обрабатываются, выдаёт ошибки, то это не так, то неправильные данные, то не выбран тип.
Полезная информация, однако наверно как раз могут вылезать разные неприятности из-за того, что XLS, а не XLSX. Здесь писали, что перегоняют в XLSX каким-то онлайн-конвертером. Возможно стоит попробовать так.
Цитата
serg_p пишет:
999 записей
Интересный выбор числа, есть у кого опыт, вдруг 666 лучше загрузятся? :? У самого Экселя вроде бы нет никаких особенностей в районе тысячи.
Цитата
serg_p пишет:
грузил два раза, теперь у меня в системе 3 одинаковых абонентских номера
Что-то не сходится, еще разок вручную занесли?
Сейчас на форуме: 7 пользователей
7 пользователей сейчас на форуме

Подпишись на рассылку новостей ЖКХ, а также наших статей!

Спасибо, вы успешно подписались на рассылку!