Форум » [x]Harbour » Harbour dbf editor (продолжение) » Ответить

Harbour dbf editor (продолжение)

Pasha: Выкладываю апдейт (давненько не выкладывал): http://files.mail.ru/LXJ3D7 Whatsnew - смотрите сами, не помню уже. Хочу перевести на буржуйскую мову, но не все сообщения еще сделал, так что буржуям пока не показываю, чтобы их великий и могучий не шокировал :)

Ответов - 157, стр: 1 2 3 4 5 6 7 8 All

SergKis: Pasha пишет кликнул, открылось облако с кнопкой скачать, кликнул, скачал Хоть закликайся, никакой реакции. Может хочет, что бы я облако ставил на пробу ? Так мне нет надобности. Раньше брало с облака без проблем Win 10

Pasha: Первый раз скачал mozilla 80, теперь mozilla 72, тоже успешно. Попробовал с телефона: opera не захотела, а chrome справился

SergKis: Opera, Crome не берут, причем, при первом входе в адрес и нажатие "Скачать", приводит к шевелению адресов подключения и все затыкается, все др. нажатия - нет реакции совсем. Pasha можно не парится, программу не использую, т.к. нет LV866. Так, на посмотреть хотел.


SergKis: PS Андрей кинул мне на ftp.

Andrey: Pasha пишет: В режиме просмотра/редакции структуры по нажатию Ctrl+C структура копируется в буфер обмена Классная структура получается. На раз к себе в исходник вставляется !

Dima: Павел а как набрать украинскую букву i если кодировка UA1251 , не набирается зараза ?

Pasha: Похоже, для ввода украинских букв надо выставить украинскую кодовую страницу по умолчанию, в сейчас выставлена RU866 Кодовая страница выставляется для dbf, а в самой программе стоит RU866 Для эксперимента: можно в dbedit вызвать калькулятор, в строке Выражение ввести: hb_CdpSelect( "UA1125" ) и отработать команду нажатием Enter после этого украинская і вводится Если ввести hb_CdpSelect( "UA1251" ) она тоже вводится, но искажается весь вывод программы на экран. Причина: сам dbedit не уникодный, хоть и собран уникодным харбором Я могу добавить эту функциональность: установить украинскую hb_CdpSelect( "UA1125" ), она из семейства 866, и эта укроспецифика будет набираться

Dima: Pasha Паш да не нужно , я справился в другом инструменте. Спасибо ! ЗЫ Не знал что UA1125 из семейства 866 а тут закон об обязательной украинизации слепили и нужно во всех документах на мове страдать теперь. Заменил у себя в консоли пока что под ADS , RU866 -> UA866 , букву i это конечно не позволяет набирать , но выкрутился с помощью HB_GTI_INKEYFILTER Ты хочешь сказать что я могу под ADS спокойно перейти с RU866 на UA1125 ?

Pasha: У меня нет под рукой ads чтобы проверить, но по видимому да. Правда в ads upper/lower на украинских спецсимволах работать не будут, но это только в индексных выражениях и фильтрах Ads же не знает эту кодовую страницу.

Dima: Pasha пишет: Правда в ads upper/lower на украинских спецсимволах работать не будут, но это только в индексных выражениях и фильтрах Ads же не знает эту кодовую страницу. Сделал вот такой тест , вроде все ищет как надо. [pre2] FUNC Main() local i local elem local hh:={=>} hh["RU866"]:={"1","t1"} hh["UA866"]:={"2","t2"} hh["UA1125"]:={"3","t3"} REQUEST ADS rddSetDefault( "ADSCDX" ) REQUEST HB_CODEPAGE_RU866,HB_CODEPAGE_UA866,HB_CODEPAGE_UA1125 RddSetDefault("ADS") AdsSetServerType ( 2 ) SET FILETYPE TO CDX AdsSetCharType(2, .t.) AdsRightsCheck(.F.) AdsLocking( .T. ) for each elem in hh hb_cdpSelect( elem:__enumkey() ) dbcreate("test"+elem[1],{{"s","c",1,0}},"ADSCDX",.t.,elem[2]) index on s tag tt For i=1 to 255 (elem[2])->(dbappend()) (elem[2])->s:=chr(i) if !(elem[2])->(dbseek(chr(i))) ? "Bad",chr(i) endif Next next return nil [/pre2]

Andrey: Перевел улицы на украинский язык через ГУГЛ переводчик. Далее этот текстовый файл добавляю в базу[pre2] cFile := 'street-ukr.txt' DBCREATE(cDbf, aDbf) USE (cDbf) ALIAS UKRDB CODEPAGE "RU1251" NEW APPEND FROM (cFile) DELIMITED CODEPAGE "RU1251"[/pre2] При открытии этой базы в dbedit.exe выдаёт такое сообщение: Хотя через HARBOUR открывается нормально.

Andrey: Почему при открытие базы в UA1251 вместо укр.букв палочки стоят ? Если в МиниГуи открываешь базу в UA1251 то там выглядит нормально !

SergKis: Andrey В hmg примере у тебя USE (cDbf) ALIAS (cAls) CODEPAGE "RU866" SHARED READONLY NEW а не RU1251

Andrey: SergKis пишет: В hmg примере у тебя USE (cDbf) ALIAS (cAls) CODEPAGE "RU866" SHARED READONLY NEW Я переделал пример на [pre2] //USE (cDbf) ALIAS (cAls) CODEPAGE "RU1251" SHARED READONLY NEW hb_SetCodepage( "UA1251" ) USE (cDbf) ALIAS (cAls) CODEPAGE "UA1251" SHARED READONLY NEW [/pre2]

Pasha: Andrey пишет: Почему при открытие базы в UA1251 вместо укр.букв палочки стоят ? Если в МиниГуи открываешь базу в UA1251 то там выглядит нормально ! Андрей, ты мне эту базу прислал, она совсем не в кодировке UA1251. Она и не в UA1125, а там какой-то странный микс. Русские символы, общие с украинскими - в кодировке 866, равно как и i с двумя точками Украинская i стоит в кодировке 1251 - это коды 178 и 179. Почему в dbedit и hmg по разному отображается украинская i ? В dbedit основная кодовая страница - RU866, в ней нет украинской i, поэтому коды 178-179 и отображаются как палочки. В hmg у тебя основная кодовая страница - RU1251, а таблицу с улицами ты открываешь в RU866. При этом русские символы перекодируются в RU1251, а коды 178 и 179 не перекодируются, а отображаются как есть - как украинское i.

Pasha: Andrey пишет: При открытии этой базы в dbedit.exe выдаёт такое сообщение: Хотя через HARBOUR открывается нормально. В dbedit после открытия есть дополнительная проверка на корректность данных в заголовке dbf

Andrey: Pasha пишет: Почему в dbedit и hmg по разному отображается украинская i ? В dbedit основная кодовая страница - RU866, в ней нет украинской i, поэтому коды 178-179 и отображаются как палочки. В hmg у тебя основная кодовая страница - RU1251, а таблицу с улицами ты открываешь в RU866. При этом русские символы перекодируются в RU1251, а коды 178 и 179 не перекодируются, а отображаются как есть - как украинское i. По картинке в dbedit - установил кодовую таблицу UA1251 и палочки появились. Если базу в МиниГуи открыть так: hb_SetCodepage( "UA1251" ) USE (cDbf) ALIAS (cAls) CODEPAGE "UA1251" SHARED READONLY NEW То на картинке буква "i" отображается правильно. Вопрос был, почему после переключения dbedit на UA1251 - палочки вместо "i". Выслал последний пример на почту.

Pasha: Andrey пишет: По картинке в dbedit - установил кодовую таблицу UA1251 и палочки появились. Если базу в МиниГуи открыть так: hb_SetCodepage( "UA1251" ) USE (cDbf) ALIAS (cAls) CODEPAGE "UA1251" SHARED READONLY NEW То на картинке буква "i" отображается правильно. Вопрос был, почему после переключения dbedit на UA1251 - палочки вместо "i". Так я ответил именно на этот вопрос, ты похоже не понял ответ. Разжевываю до состояния кашицы. В hmg у тебя стоит SET CODEPAGE TO RUSSIAN, т.е. RU1251 Таблица открывается в RU866. Данные в таблице хранятся в некорректной кодировке, украинские i с кодами 178, 179 Поскольку в RU866 кодов 178 и 179 нет, они не перекодируются и отображаются как есть в кодировке 1251, т.е. как i В dbedit стоит кодировка по умолчанию RU866, т.е HB_CDPSELECT( "RU866" ) В этой кодировке символы с кодами 178 и 179 отсутствуют, и отображаются как им и положено - как "палочки". В случае твоей некорректной кодировки эффект отображения украинской i в hmg получился случайно. А dbedit не понимает такую некорректную кодировку, и отображает эти символы палочками

Andrey: Pasha пишет: В hmg у тебя стоит SET CODEPAGE TO RUSSIAN, т.е. RU1251 Да не стоит. В новом примере сделал [pre2]hb_SetCodepage( "UA1251" ) USE (cDbf) ALIAS (cAls) CODEPAGE "UA1251" SHARED READONLY NEW [/pre2]

Pasha: Andrey пишет: Да не стоит. В новом примере сделал hb_SetCodepage( "UA1251" ) USE (cDbf) ALIAS (cAls) CODEPAGE "UA1251" SHARED READONLY NEW Это ничего в принципе не меняет, кодировка из того же семейства. Мой ответ на твой вопрос для UA1251 точно такой же



полная версия страницы