On-line: Andrey, tnsr2, гостей 0. Всего: 2 [подробнее..]
АвторСообщение
постоянный участник


Пост N: 244
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 09.10.11 15:15. Заголовок: Кодировка OEM в таблицах


Похоже MINIGUI по умолчанию заточен на кодировку ANSI при работе с базами?Просто настроить на работу с таблицами в кодировке OEM не получится? Надо везде применять конвертацию hb_OemToAnsi ?
Или есть другое решение ?

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 29 , стр: 1 2 All [только новые]


moderator




Пост N: 258
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 09.10.11 16:07. Заголовок: Vlad04 пишет: есть ..


Vlad04 пишет:

 цитата:
есть другое решение ?


Да, есть
Надо использовать команду

USE ( имя базы ) ALIAS ( алиас ) CODEPAGE "RU866" // SHARED NEW

предварительно объявив

REQUEST HB_CODEPAGE_RU866

Конкретный пример применения есть в папке minigui\samples\Applications\DBFview



Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 245
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 09.10.11 16:52. Заголовок: Не получается - ни в..


Не получается - ни в программе сделать , ни через DBFview открыть в нормальном виде.
В DBFview на выбор в меню пункта Table -> Code Page появляется ListBox, в котором нет вариантов для выбора -
<no codepage set>


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 246
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 09.10.11 16:58. Заголовок: При переходе в меню ..


При переходе в меню DBFview на русский язык - в ListBox появляется выбор страницы, но фактически изменение не происходит!

Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 259
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 09.10.11 17:44. Заголовок: Vlad04 пишет: При п..


Vlad04 пишет:

 цитата:
При переходе в меню DBFview на русский язык - в ListBox появляется выбор страницы


Только что проверил пример DBFview - все работает нормально!
По шагам:
1) откомпилировал DBFview с помощью батника compile.bat
2) открыл базу в OEM кодировке - вижу кракозябры
3) установил русский язык в программе
4) снова открыл предыдущую базу и нажал на кнопочной панели картинку с буквой "А" - Кодировка
5) выбрал в открывшемся окне пункт меню "Русский DOS (866)" и теперь вижу на экране нормальный русский текст в открытой базе

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 247
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 09.10.11 18:18. Заголовок: Я так и делал И еще..


Я так и делал
И еще много раз так же и шрифты менял - результат кракозябры
Выложил файл (таблицу)
http://www.fayloobmennik.net/1051820

Можете взглянуть, может у меня dbf какой-то неправильный - я его средствами хХарбор и создаю.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 248
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 09.10.11 19:18. Заголовок: Вот форма , в которо..


Вот форма , в которой собственно и пытаюсь открыть OEM таблицу
1) В КомбоБохе выбрать таблицу
2) В Чеке открыть
http://www.fayloobmennik.net/1051975

Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 260
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 09.10.11 20:15. Заголовок: Vlad04 пишет: И еще..


Vlad04 пишет:

 цитата:
И еще много раз так же и шрифты менял - результат кракозябры


Разобрался: Вам надо было закрыть базу после русификации утилиты DBFview, а затем открыть ее снова (еще лучше просто закрыть программу и запустить ее повторно). Проверил на Вашей OEM-базе - все показывает нормально после установки DOS-кодировки

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 249
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 10.10.11 08:33. Заголовок: Да, после последних ..


Да, после последних инструкций

 цитата:

закрыть базу после русификации утилиты DBFview, а затем открыть ее снова


все увидел НОРМАЛЬНО. Целое шаманство!.
Спасибо
А как с примером программы (http://www.fayloobmennik.net/1051975)? Там должна таблица сразу открываться в нужной кодировке.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 2541
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 11.01.13 00:37. Заголовок: Что то не въеду я в ..


Что то не въеду я в перекодировку-открытие баз в МиниГуи....
Открываю базу (866), создаю свою базу в RU1251, переписываю поля из 866 (по условию) и пустая база на выходе, с количеством записей отобранных по условию, т.е. в числовых полях 0, а в текстовых ПУСТО.

Вот примерный код...
Скрытый текст


Что не так делаю ?

Уже пробовал:
USE ( cFileDbf2 ) Alias MASTER CODEPAGE "RU866" NEW EXCLUSIVE
DBCreate( cFileDbf, aDbf )
USE ( cFileDbf ) Alias TEMP_PASS CODEPAGE "RU1251" NEW EXCLUSIVE

Все бестолку....
Вот результирующий файл - http://files.mail.ru/Y243DW
Harbour MiniGUI Extended Edition 2.1.8 - 2012.12.12

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 27
Зарегистрирован: 07.06.08
ссылка на сообщение  Отправлено: 11.01.13 11:04. Заголовок: При чем здесь Minigu..


При чем здесь Minigui, у Вас просто операция присваивания символьной строки, которая никаких перекодировок не делает. Поставьте в операцию присваиванию функцию перекодировки.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 2542
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 11.01.13 12:57. Заголовок: a_sidorov пишет: пр..


a_sidorov пишет:

 цитата:
просто операция присваивания символьной строки, которая никаких перекодировок не делает. Поставьте в операцию присваиванию функцию перекодировки.


Ставил, всё бестолку !
А цифровые поля почему тогда не переписывают ?
Базу результата выложил специально ! Там все цифровые поля по нулям, а текстовые - пустышка.
Что не так делаю ?


Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 2652
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 11.01.13 15:19. Заголовок: Andrey пишет: SET C..


Andrey пишет:

 цитата:
SET CODEPAGE TO RUSSIAN // кодовая страница



Эта команда эквивалентна вызову
HB_SETCODEPAGE( "RU1251" )

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

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 2543
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 11.01.13 15:54. Заголовок: Pasha пишет: Поскол..


Pasha пишет:

 цитата:
Поскольку для результирующего файла кодовая страница не указана, то используется RU1251


Да никакая кодовая страница не используется ! Пустая база создается !

SET LANGUAGE TO RUSSIAN // язык
SET CODEPAGE TO RUSSIAN // кодовая страница
Делал для МиниГуи - как Григорий рекомендовал !

Т.е. полная засада по БД в МиниГуи... А может это Harbour 3.2 виноват ?
Вот сделал пример отдельный - http://files.mail.ru/FM6EIP
Пишу в базу:
FIELD->FIO := "Test write !"
FIELD->PUSTO := REPLICATE("¤",10)
Даже и не записывается... Пустые поля и все !
Что то нужно добавить... А что не знаю ?

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 2653
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 11.01.13 16:03. Заголовок: Тогда вопрос не в ко..


Тогда вопрос не в кодовой странице. Файл получается пустой, срабатывает только append.
Попробуйте сделать промежуточный dbCommit(), и вывод на экран значений полей результирующего файла сразу после присваивания.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 28
Зарегистрирован: 07.06.08
ссылка на сообщение  Отправлено: 11.01.13 16:13. Заголовок: Вместо FIELD->FI..


Вместо FIELD->FIO:= нужно писать TEMP_PASS->FIO:=MASTER->MASTER, тогда все работает

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 2654
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 11.01.13 16:21. Заголовок: a_sidorov пишет: Вм..


a_sidorov пишет:

 цитата:
Вместо FIELD->FIO:= нужно писать TEMP_PASS->FIO:=MASTER->MASTER, тогда все работает



Это такая фича minigui, что ли ? Он перекрывает стандартные обозначения ?


Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 2599
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 11.01.13 16:23. Заголовок: Andrey пишет: FIELD..


Andrey пишет:

 цитата:
FIELD->FIO := "Test write !"


Оригинально ;)
FIELD это что у вас , алиас ?

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 2655
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 11.01.13 16:34. Заголовок: Dima пишет: Оригина..


Dima пишет:

 цитата:
Оригинально ;)
FIELD это что у вас , алиас ?



Не просто оригинально ;)
Это таки фича hmg

Код

FIELD->KODFIRMA := M->nFirmaKod
FIELD->FIRMA := M->cFirmaName
FIELD->KFIO := MASTER->KMASTER
FIELD->FIO := HB_OEMTOANSI(MASTER->MASTER)
FIELD->PASSWORD := HB_OEMTOANSI(MASTER->PASS)
FIELD->PUSTO := HB_OEMTOANSI(MASTER->PASS)

Транслируется препроцессором в

_HMG_SYSDATA[404] := "->KODFIRMA := M->nFirmaKod"
_HMG_SYSDATA[404] := "->FIRMA := M->cFirmaName"
_HMG_SYSDATA[404] := "->KFIO := MASTER->KMASTER"
_HMG_SYSDATA[404] := "->FIO := HB_OEMTOANSI(MASTER->MASTER)"
_HMG_SYSDATA[404] := "->PASSWORD := HB_OEMTOANSI(MASTER->PASS)"
_HMG_SYSDATA[404] := "->PUSTO := HB_OEMTOANSI(MASTER->PASS)"

Это неожиданное (мягко говоря) преобразование делает вот эта команда из i_altsysnax.ch:

#xcommand FIELD <field>;
=>;
_HMG_ActiveControlField := <"field">


Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 2600
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 11.01.13 17:14. Заголовок: Pasha Необычно ;)..


Pasha
Необычно ;)

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 29
Зарегистрирован: 07.06.08
ссылка на сообщение  Отправлено: 11.01.13 17:23. Заголовок: Это не необычно, это..


Это не необычно, это труба. У меня Field-> на каждой строке, а была идея перевода программ на MINIGUI

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 2656
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 11.01.13 17:32. Заголовок: Строго говоря, непон..


Строго говоря, непонятно, кто виноват.
Идея вроде бы состоит в том, чтобы транслировать команды вида:

Field <ident>

Почему-то препроцессор для этого правила включает и команды

Field-><ident>

Кто у нас сейчас директор по препроцессору ? Похоже, надо к нему обращаться.


Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 439
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 11.01.13 18:26. Заголовок: a_sidorov пишет: эт..


a_sidorov пишет:

 цитата:
это труба. У меня Field-> на каждой строке, а была идея перевода программ на MINIGUI


И все же есть простое решение для этой проблемы

Сделайте в своем коде глобальную замену

 цитата:
Field->


на

 цитата:
_Field->


как в Харборе (см. файл harbour\include\std.ch)

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 2544
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 11.01.13 19:28. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
И все же есть простое решение для этой проблемы



Спасибо БОЛЬШОЕ Григорий !!!
А то труба с переходом на МиниГуи...
Надо бы в примеры что-то подобное выложить, а то народ и переходить не захочет...
Как начал с прошлого года делать небольшие программы по переходу,
так постоянно на грабли натыкаешься...

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 69
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 12.01.13 21:02. Заголовок: Andrey пишет:так пос..


Andrey пишет:
 цитата:
так постоянно на грабли натыкаешься..


Процесс изучения как минимум требует времени.
Смысл перекодировки 866 -> 1251 при переходе на МиниГуи... ? MiniGui, VWT и Clipper работают с 866, если бы кодировалось в Unicode или Utf8 для мультиязычности ... . А так лишнее действие на мой взгляд.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 2546
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 12.01.13 21:04. Заголовок: SergKis пишет: Смыс..


SergKis пишет:

 цитата:
Смысл перекодировки 866 -> 1251 при переходе на МиниГуи... ?


Есть готовая рабочая система на 866 кодировке. Крутится у многих моих заказчиках России и Украины.
Перевести её сразу на 1251 нет возможностей (физически не способен, да и заказчики против будут) !
А базу перекодирую для отправки данных на сайт.

Сделал пример 866 to 1251 -> http://files.mail.ru/4977EC7729B245839B671B21C535FF0E

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 2548
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 13.01.13 06:29. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Конкретный пример применения есть в папке minigui\samples\Applications\DBFview



Прикол ! А в программе нет вообще украинской кодировки и языка ....
Надо бы пробел этот заполнить...
А то я тоже сталкиваюсь с украинскими базами.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 71
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 13.01.13 15:15. Заголовок: Andrey пишет:Перевес..


Andrey пишет:
 цитата:
Перевести её сразу на 1251 нет возможностей


Я так понимаю, 866 содержит английский, украинский, русский (у нас английский, латышский, русский) и перевод на 1251 возможен только для русского - украинский будет потерян. Мы не уходим с 866 именно из потребностей одновременного использования трех языков, т.к. 1257 - лат.яз. есть, а русского нет. А для сайтов utf8.

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 2658
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 14.01.13 15:31. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
И все же есть простое решение для этой проблемы



К слову: препроцессор клиппера работает в этом случае точно так же, и дает такой же неожиданный результат. Поэтому задача "починки" препроцессора не стоит.
Предпочитительнее конечно для hmg было бы не перекрывать стандартный префикс Field->, а ввести собственную команду вида:

#xcommand HMG_FIELD ...

Но это уже на усмотрение разработчиков hmg.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 2551
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 14.01.13 16:32. Заголовок: Pasha пишет: Но это..


Pasha пишет:

 цитата:
Но это уже на усмотрение разработчиков hmg.


Это точно... Не все предусмотрели...

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 29 , стр: 1 2 All [только новые]
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 101
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет