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



Пост N: 43
Зарегистрирован: 15.11.05
ссылка на сообщение  Отправлено: 23.01.08 12:04. Заголовок: Как перетащить данные из DBF в кодировке cp1251 в DBF кодировке cp866?


Есть DBF в кодировке cp1251.
Все остальные (основные) базы обрабатываются в cp866.

Как перетащить данные из DBF в кодировке cp1251 в DBF кодировке cp866?


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


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




Пост N: 821
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 23.01.08 13:26. Заголовок: func ansitoem(srt) l..


func ansitoem(srt)
local j:=len(srt)
local i:=1
local ret:=""
local asco:=""
for i=1 to j
asco:=substr(srt,i,1)
if asc(asco)<128
ret+=asco
elseif asc(asco)>=192 .and. asc(asco)<=239
ret+=chr(asc(asco)-64)
elseif asc(asco)>=240 .and. asc(asco)<=255
ret+=chr(asc(asco)-16)
else
ret+=""
endif
next
RETURN ret


Спасибо: 0 
Профиль
moderator


Пост N: 20
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 23.01.08 17:02. Заголовок: Есть штатный способ:..


Есть штатный способ:
hb_Translate( cText,"RU1251","RU866" )
Для этого должны стоять в начале программы:
REQUEST HB_CODEPAGE_RU1251
REQUEST HB_CODEPAGE_RU866

А можно и так:

use file1 new codepage "RU1251"
use file2 new codepage "RU866"

do while ! file1->(eof())
file2->Some_field := file1->Some_field
file1->(dbSkip(1))
file2->(dbSkip(1))
enddo


Спасибо: 0 
Профиль



Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 23.01.08 17:13. Заголовок: Ва-у!!! Кто нас посе..


Ва-у!!! Кто нас посетил??? Сам Господ(ин) КРЕСИН!!!
Без всякого ехидства ...

Спасибо: 0 
администратор




Пост N: 822
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 23.01.08 18:50. Заголовок: alkresin пишет: Ест..


alkresin пишет:

 цитата:
Есть штатный способ:


Виноват .....не заметил сразу что речь про Xharbour

Спасибо: 0 
Профиль
moderator


Пост N: 21
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 23.01.08 22:45. Заголовок: Почему про xHarbour ..


Почему про xHarbour ?
Это штатные средства в обеих ветках, а появились впервые как раз в Harbour ( сам делал :) ).

Спасибо: 0 
Профиль





Пост N: 163
Зарегистрирован: 08.04.06
ссылка на сообщение  Отправлено: 25.01.08 17:08. Заголовок: А я в своё время (ещ..


А я в своё время (ещё для Клиппера) сделал функцию сам (чтобы перекодировать напечатанное в файл для последующего открытия в Word'е и т.п.). Для Harbour'а зато ничего дописывать/переписывать не пришлось.
Не знаю, как вышеприведённые варианты, а моя ещё псевдографику обрабатывает: вместо вертикальной - символ "|", вместо горизонтальной - символ дефиса, вместо двойной горизонтальной - символ "=", и так далее, и наоборот из 1251 в 866-ю точно так же. Привести здесь нереально т.к. символы у меня в этой функции в их графическом виде, но кому интересно - могу прислать.

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


Пост N: 8
Зарегистрирован: 13.09.07
ссылка на сообщение  Отправлено: 25.01.08 18:42. Заголовок: Перекодиро..


Перекодировать из 1251 в 866 или наоборот просто. Было бы не плохо,
если бы Harbour( так же как и FoxPro ) реагировал на кодовую страницу, находящуюся
в заголовке Dbf-файла и сам занимался перекодировкой текстовых полей.

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