On-line: PSP, tnsr2, гостей 1. Всего: 3 [подробнее..]
АвторСообщение





Пост N: 58
Зарегистрирован: 31.05.07
ссылка на сообщение  Отправлено: 12.03.10 09:02. Заголовок: CODEPAGE


Хочу переходить с xHarbour на Harbour из последних сборок, но столкнулся с тем, что некоторый код не могу перевести, поскольку не пойму, как подключить кириллическую кодовую страницу.
Конструкция:
 
REQUEST HB_CODEPAGE_RU866
hb_setCodePage('RU866')

не работает...
подскажите пожалуйста...

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







Пост N: 208
Зарегистрирован: 16.12.08
ссылка на сообщение  Отправлено: 17.04.14 16:18. Заголовок: Dima пишет: proc m..


Dima пишет:

 цитата:
proc main
local amas

REQUEST HB_LANG_RU866
HB_LANGSELECT("RU866")
REQUEST HB_CODEPAGE_RU866
hb_cdpSelect( "RU866" )
amas:=directory("*.doc")
aeval(amas,{|x| qout(x[1])})

return



данный код корректно отработал в xHarbour на файлах с кирилицей в названии.

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




Пост N: 3329
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 18.04.14 00:13. Заголовок: Dima пишет: Имена в..


Dima пишет:

 цитата:
Имена вывалились нормально на русском .


Да точно, этот короткий тест тоже у меня отработал НОРМАЛЬНО !
Полез в свою функцию сортировки получения массива...

Вот через неё не срабатывало (а может и еще что-то мешает...) :
Скрытый текст


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




Пост N: 3145
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 18.04.14 07:51. Заголовок: Для того, чтобы имен..


Для того, чтобы имена файлов были в кодировке OEM, надо сделать функцию:

#pragma BEGINDUMP
#include "windows.h"

HB_FUNC_STATIC( SETFILEAPIS ) // Имена файлов в кодировке OEM
{
SetFileApisToOEM();
}
#pragma ENDDUMP

и вызвать ее при старте программы:

SETFILEAPIS()

Тогда перекодировать ничего не надо.

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



Пост N: 7
Зарегистрирован: 05.07.14
ссылка на сообщение  Отправлено: 23.07.14 10:34. Заголовок: spair2k пишет: ...к..


spair2k пишет:

 цитата:
...как подключить кириллическую кодовую страницу


Большинство вопросов касается БД, что естественно.
А у меня следующий вопрос.
Если я собираю программу через hmg_IDE, то все нормально. Русский текст на форме отображается правильно
Когда же я пытаюсь собрать программу с помощью .bat файла (приводится ниже), то получаю кракозябры:

call C:\MiniGUI\batch\compile.bat demo %1 %2 %3 %4 %5 %6 %7 %8 %9

Как мне победить?

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



Пост N: 85
Зарегистрирован: 24.04.13
ссылка на сообщение  Отправлено: 27.01.15 09:00. Заголовок: Имеется структуриров..


Имеется структурированный текстовый файл в 1251-кодировке.
База данных в 866 кодировке.
Возможно ли командой append from считать этот файл в базу чтобы была 866 кодировка?
В append from есть параметр CODEPAGE, но как его использовать ?

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


Пост N: 834
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 27.01.15 09:07. Заголовок: По идее ( я не прове..


По идее ( я не проверял сам ) надо открыть ваш целевой dbf, указав кодировку 866, а в append from указать кодировку источника - в данном случае 1251.

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



Пост N: 86
Зарегистрирован: 24.04.13
ссылка на сообщение  Отправлено: 27.01.15 09:14. Заголовок: alkresin, попробовал..


alkresin, попробовал так:

use sds codepage "RU866"
zap
appe from sds32.txt codepage ("RU1251") delimited with ( {"", "="} )

переносит в кодировке как в текстовом файле

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


Пост N: 835
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 27.01.15 09:37. Заголовок: Хм... Думаю, это неп..


Хм... Думаю, это неправильно - какая-то ошибка в Харборе..
Во всяком случае, вот так работает:

hb_cdpSelect( "RU866" )
use sds
zap
appe from sds32.txt codepage ("RU1251") delimited with ( {"", "="} )


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



Пост N: 87
Зарегистрирован: 24.04.13
ссылка на сообщение  Отправлено: 27.01.15 11:34. Заголовок: alkresin пишет: Во..


alkresin пишет:

 цитата:

Во всяком случае, вот так работает:

hb_cdpSelect( "RU866" )
use sds
zap
appe from sds32.txt codepage ("RU1251") delimited with ( {"", "="} )


Ничего не получается и так :(
Может как то можно через промежуточный файл преобразовать,
какие-нибудь другие варианты?

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




Пост N: 3244
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 27.01.15 12:05. Заголовок: Если харбор собран с..


Если харбор собран с HB_CLP_STRICT, то append from ... codepage ... delimited with не сработает.

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




Пост N: 3245
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 27.01.15 12:07. Заголовок: Можно сделать так: ..


Можно сделать так:

use...

hb_cdpSelect( "RU1251" )
append from ...
hb_cdpSelect( "RU866" )


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


Пост N: 837
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 27.01.15 12:33. Заголовок: azoo пишет: Ничего ..


azoo пишет:

 цитата:
Ничего не получается и так :(



А request HB_CODEPAGE_RU1251 у вас объявлен ?


 цитата:
Может как то можно через промежуточный файл преобразовать,
какие-нибудь другие варианты?



Ну, самый очевидный вариант:

s := Memoread( "sds32.txt" )
hb_MemoWrit( "sds32.txt", hb_Translate( s, "RU1251", "RU866" ) )


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



Пост N: 88
Зарегистрирован: 24.04.13
ссылка на сообщение  Отправлено: 27.01.15 12:51. Заголовок: Спасибо за ответы по..


Спасибо за ответы, получилось.
Правильный вариант:

REQUEST HB_CODEPAGE_RU866
REQUEST HB_CODEPAGE_RU1251
hb_cdpSelect( "RU866" )
use sds
zap
appe from sds32.txt codepage ("RU1251") delimited with ( {"", "="} )


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




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


Pasha пишет:

 цитата:
при открытии файла надо указывать 866-ю страницу:

USE ... CODEPAGE "RU866"



А если создаешь базу и записать нужно в базу "RU866", а программа сама в кодировке RU1251 как делать ?
Т.е. я делаю: DbCreate( cPathLocal+cFile, aStruct, "DBFCDX", .T., "MYALIAS" )
и копирую записи из другой базы (RU866) в MYALIAS ! Записи получаются в кодировке RU1251...
А нужны в кодировке RU866.
Как назначить кодировку RU866 при создании базы ?




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




Пост N: 4800
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 14.05.15 15:09. Заголовок: Если верить сырцу db..


Если верить коментам в сырце
dbCreate( cFile, aStruct, cRDD, lKeepOpen, cAlias, cDelimArg, cCodePage, nConnection )

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




Пост N: 625
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 14.05.15 15:10. Заголовок: Andrey пишет:Как наз..


Andrey пишет:
 цитата:
Как назначить кодировку RU866 при создании базы ?


1. Harbour.. src\*.*
2. Far Alt+F7 *.prg,*.c наити dbcreate
3. получаем (dbcmd.c):
 
/*
* In Clipper the arguments are:
* dbCreate( cFile, aStruct, cRDD, lKeepOpen, cAlias, cDelimArg )
* In Harbour:
* dbCreate( cFile, aStruct, cRDD, lKeepOpen, cAlias, cDelimArg, cCodePage, nConnection ) (HB_EXTENSION)
*/
HB_FUNC( DBCREATE )


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




Пост N: 4168
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 14.05.15 15:16. Заголовок: Спасибо !!! :sm36: ..


Спасибо !!!
Еще вопрос по ходу - что за параметр cDelimArg ?

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




Пост N: 4801
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 14.05.15 15:19. Заголовок: Andrey пишет: Еще в..


Andrey пишет:

 цитата:
Еще вопрос по ходу - что за параметр cDelimArg ?



 
/*
* NOTE: 4-th, 5-th and 6-th parameters are undocumented Clipper ones
* 4-th is boolean flag indicating if file should stay open (any boolean
* value will enable this behavior)
* 5-th is alias - if not given then WA is open without alias
* 6-th is optional DELIMITED value used by some RDDs like DELIM
*/



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




Пост N: 4170
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 14.05.15 15:23. Заголовок: Dima пишет: 6-th is..


Dima пишет:

 цитата:
6-th is optional DELIMITED value used by some RDDs like DELIM



Я им не пользовался и не сталкивался...

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




Пост N: 4802
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 14.05.15 15:33. Заголовок: Andrey пишет: Я им ..


Andrey пишет:

 цитата:
Я им не пользовался и не сталкивался...


Ну типа так
 
request DELIM
dbcreate("test",{{"t","n",10,0},{"t1","n",10,0}} , "DELIM", .t., "tst", ";")
tst->(dbappend())
tst->t:=10
tst->t1:=20
close tst


На выходе получим TEST.TXT
Вот только результат в нем такой 10,20 вместо ожидаемого 10;20

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

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