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





Пост N: 119
Зарегистрирован: 02.02.06
ссылка на сообщение  Отправлено: 15.05.09 14:06. Заголовок: Ох уж эти буковки


Не работает команда Append, хоть ты тресни. Точнее работает и на первый взгляд красиво.
Теперь суть.
Есть база кодировка 866. Создаю файл и командами Append добавляю туда информацию из других баз и все бы хорошо, но только маленькие русские буковки не всегда правильно лезут. Вот. Например вместо "р" лезет "а", вместо "т" лезит "в", вместо "ф" лезит"д". С большими буквами полный порядок.
Наконец выговорился, одному трудно это выносить. Все.

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


Администратор




Пост N: 1130
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 15.05.09 15:42. Заголовок: Такое может быть, ес..


Такое может быть, если файлы открыты с разными кодировками:

т.е:

use t1 codepage ru866
use t2 codepage ru1251

t1->(dbAppend())
t1->f1 := t2->f1

будет выполняться перекодировка ru1251 -> ru866

Чтобы перекодировка не выполнялась, надо либо при открытии указывать одинаковую кодировку, либо не указывать ее вообще


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





Пост N: 120
Зарегистрирован: 02.02.06
ссылка на сообщение  Отправлено: 18.05.09 12:01. Заголовок: У меня выполняется в..


У меня выполняется вот такой блок:

SELECT 001
s_struct=dbstruct()
dbcreate(sf1,s_struct)
SELECT 118
USE &SF1 EXCLUSIVE CODEPAGE RU866
APPEND FROM T001 FOR DATA >= GOD .AND. DATA <= MES
APPEND FROM T003 FOR DATA >= GOD .AND. DATA <= MES

Все файлы в досовской кодировке.


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




Пост N: 1131
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 18.05.09 12:12. Заголовок: надо или не указыват..


надо или не указывать кодировку в команде use, или указать ее и в команде append:

APPEND FROM T001 FOR DATA >= GOD .AND. DATA <= MES CODEPAGE RU866



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





Пост N: 121
Зарегистрирован: 02.02.06
ссылка на сообщение  Отправлено: 18.05.09 12:25. Заголовок: Такая конструкция не..


Такая конструкция не катит. Syntax error "syntax error at 'FROM' "
Уже проходил. Harbour Version: 1.1.0dev


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





Пост N: 122
Зарегистрирован: 02.02.06
ссылка на сообщение  Отправлено: 18.05.09 12:35. Заголовок: А вот если открывать..


А вот если открывать без указания кодовой таблицы, то действительно получается нормально.
Но очень это все странно, почему только маленькие буковки и то избранно?

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




Пост N: 1132
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 18.05.09 13:11. Заголовок: Наверное, по умолчан..


Наверное, по умолчанию стоит кодировка 1251
Вот append from и перекодирует данные 1251->866
Но данные и так находятся в кодировке 866, и получается такой парадоксальный результат

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





Пост N: 123
Зарегистрирован: 02.02.06
ссылка на сообщение  Отправлено: 18.05.09 13:32. Заголовок: Спасибо, Паша, за по..


Спасибо, Паша, за помощь. Придется базу открывать дважды, без кодовой таблицы, а потом с кодовой таблицей.
Может кто-нибудь добавит в команду APPEND параметр CODEPAGE.

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




Пост N: 1133
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 18.05.09 13:53. Заголовок: Дык он там есть Я ко..


Дык он там есть
Я когда-то и добавлял :)
Возможно, что-то в препроцессоре
Можно вызвать функцию __dbApp напрямую

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





Пост N: 124
Зарегистрирован: 02.02.06
ссылка на сообщение  Отправлено: 18.05.09 13:59. Заголовок: Спасибо, буду иметь ..


Спасибо, буду иметь ввиду.

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


Пост N: 123
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 18.05.09 14:40. Заголовок: Можно создать *.ppo ..


Можно создать *.ppo и глянуть, чё получилось.

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




Пост N: 1134
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 18.05.09 14:53. Заголовок: Сергей Р пишет: Так..


Сергей Р пишет:

 цитата:
Такая конструкция не катит. Syntax error "syntax error at 'FROM' "
Уже проходил. Harbour Version: 1.1.0dev



Похоже, что-то с препроцессором все-таки
Я использую xHarbour сборки август-2008, и там эта команда еще компилировалась
На xHarbour CVS гляну позже

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




Пост N: 1135
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 18.05.09 14:57. Заголовок: В include\std.ch..


В include\std.ch должна быть команда:

#command APPEND [FROM <(f)>] [FIELDS <fields,...>] ;
[FOR <for>] [WHILE <while>] [NEXT <next>] ;
[RECORD <rec>] [<rest:REST>] [ALL] [VIA <rdd>] ;
[CODEPAGE <cp>] [CONNECTION <conn>] => ;
__dbApp( <(f)>, { <(fields)> }, ;
<{for}>, <{while}>, <next>, <rec>, <.rest.>, <rdd>, <conn>, <cp> )

Она есть ? с параметром codepage ?


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


Пост N: 658
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 18.05.09 15:09. Заголовок: Pasha, речь, наверно..


Pasha, речь, наверное, про Harbour
Harbour Version: 1.1.0dev

И тогда все правильно, команда APPEND класс CODEPAGE не содержит.
Топик-стартеру, все таки явно надо бы указывать на чем летает.

Использовать __dbApp или то-что Pasha предложил

 цитата:
#command APPEND [FROM <(f)>] [FIELDS <fields,...>] ;
[FOR <for>] [WHILE <while>] [NEXT <next>] ;
[RECORD <rec>] [<rest:REST>] [ALL] [VIA <rdd>] ;
[CODEPAGE <cp>] [CONNECTION <conn>] => ;
__dbApp( <(f)>, { <(fields)> }, ;
<{for}>, <{while}>, <next>, <rec>, <.rest.>, <rdd>, <conn>, <cp> )




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




Пост N: 1136
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 18.05.09 15:25. Заголовок: Лучше добавить это н..


Лучше добавить это на SVN
Петр, напишите пожалуйста в mail list. Тем более, поддержка эта в Harbour есть

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


Пост N: 659
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 18.05.09 16:17. Заголовок: Да, так будет лучше...


Да, так будет лучше.
Сегодня вечером или завтра с утра добавлю.

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





Пост N: 127
Зарегистрирован: 02.02.06
ссылка на сообщение  Отправлено: 19.05.09 09:59. Заголовок: Спасибо ребята, очен..


Спасибо ребята, очень полезные вещи делаете.

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



Пост N: 8
Зарегистрирован: 14.10.08
ссылка на сообщение  Отправлено: 27.05.09 12:52. Заголовок: Есть возможность ис..



Есть возможность использовать

HB_TRANSLATE( cFieldValue, cFrom,cTo ) в данном случае "RU866","RU1251"

Только должно быть указано что то типа

#ifdef __XHARBOUR__
REQUEST HB_CODEPAGE_RUWIN, HB_CODEPAGE_RU866
#define RUWIN "RUWIN"
#else
REQUEST HB_CODEPAGE_RU1251, HB_CODEPAGE_RU866
#define RUWIN "RU1251"
#endif

Кстати непонятно, эти реквесты обрабатываются во время компиляции или во время исполнения программы.
Хотелось бы загрузить сразу все HB_CODEPAGE какие возможны или во время исполнения подключать необходимые.



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


Пост N: 664
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 27.05.09 22:32. Заголовок: XVar пишет: Кстати ..


XVar пишет:

 цитата:
Кстати непонятно, эти реквесты обрабатываются во время компиляции или во время исполнения программы.


Во время связывания программы

 цитата:
Хотелось бы загрузить сразу все HB_CODEPAGE какие возможны или во время исполнения подключать необходимые.


см. ответ на первый вопрос

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

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