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



Пост N: 66
Зарегистрирован: 30.05.11
ссылка на сообщение  Отправлено: 10.01.13 00:38. Заголовок: перекодирока dbf в 866 кодовую страницу


В dbf базе украинский текст набран с помощью утилиты keyrus. Какая это кодовая страница - не знаю. Если данные из этой базы перенести в другую dbf базу, которая использует 866 кодовую страницу, то в новой базе эти данные не читабельны. Как средствами clipper5 преобразовать данные в 866 кодовую страницу, а если это невозможно, то какой сторонней утилитой можно сделать данное преобразование?

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





Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 27.01.13 16:08. Заголовок: Возможны варианты..


Так у Вас просто обмен данными между двумя программами или последовательная обработка.
В этом случае не обязательно иметь полный общий DBF, в котором нужно менять байт в заголовке софтом нижнего уровня.

1) Экспорт(fox - в папку обмена для clipper) - импорт (clipper)- экспорт(для fox)- импорт ( fox - от cliiper)
в качестве носителя данных - возможен DBF без кодовой странциы или простой ASCI txt-файл

2) Зачем нужен Clipper для этой задачи? Перекодировку можно сделать в рамках и только одного Fox:
одну таблицу создать с одной кодовой страницей, вторую - с другой
Преобразовать при копировании полей первого DBF во второй DBF или через TXT-файл

Спасибо: 0 
Цитата Ответить



Пост N: 73
Зарегистрирован: 30.05.11
ссылка на сообщение  Отправлено: 27.01.13 18:30. Заголовок: Я ранее уже писал чт..


Я ранее уже писал что задача решена, но хотелось больше ее автоматизировать.
1. Есть чужая откомпилированная прога на визуал фокспро 7. В базах бардак.
2. Есть чужая прога на фокспро 2.6, в базах которой порядок и там есть данные для первой проги.
3. Нужно из баз второй проги перенести некоторые данные в базы первой проги.
Поскольку фокспро не знаю, с помощью этого форума написал программу на клиппере 5.01, которая собирает из нескольких таблиц второй проги базу, которую средствами клиппера перекодирую с CP1125 в CP866 и некоторые данные переношу в базу первой проги.
4. Поскольку клиппер обнулил 29 байт базы второй проги, инфа с второй проги будет во второй проге отображаться крякозябрами. (любой вьювер отображает данные нормально)
5. Чтобы изменить 29 байт, открываю в визуал фокспро 7 базу (use dbfname exclusive), фокспро сам выбрасывает окно с предложением выбрать кодовую страницу, выбираю 866 и выхожу с фокспро. В результате 29 байт заполнен номером 866 кодовой страницы.
6.Подбрасываю базу во вторую прогу, и после этого она нормально отображает символьные данные.

5 пункт хотелось бы выполнить средствами клиппера, чтобы все выполнить с помощью одной клипперовской программы

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




Пост N: 2602
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 30.01.13 12:16. Заголовок: SergeyKorotun пишет:..


SergeyKorotun пишет:

 цитата:
ЮЛЎЯ
СТАНЎСЛАВ
СВЎТЛАНА
ЛЕОНЎД
МАРЎЯ
РА°СА
ВАЛЕРЎЙ
АНАТОЛЎЙ
ВЎРА
ЇВГЕНЎЙ
ЎННА
АНАСТАСЎЯ
ЮРЎЙ

Надо перекодировать:
Перекодировка Украина ГОСТ cp1125 -> cp866


Нужен DBF файл, я не могу собрать DBF из этих ИМЕН....
SergeyKorotun пишет:

 цитата:
Если возможно, занесите в 29 байт (по счету - 30-ый, отсчет байтов ведется с нуля) номер 866 кодовой страницы.


Вот примерно так (править под себя):
Скрытый текст



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



Пост N: 76
Зарегистрирован: 30.05.11
ссылка на сообщение  Отправлено: 31.01.13 01:10. Заголовок: Andrey пишет: Нуже..


Andrey пишет:

 цитата:

Нужен DBF файл, я не могу собрать DBF из этих ИМЕН....


Перенеси имена в текстовый файл и добавь в базу родной утилитой клиппера - dbu.exe (F6, добавить, выбрать SDF и выбрать текстовый файл с именами)
Andrey пишет:

 цитата:
Вот примерно так (править под себя):
Скрытый текст

А ограничение на длину бинарного файла есть?
Базы большие.

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




Пост N: 2608
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 31.01.13 12:38. Заголовок: SergeyKorotun пишет:..


SergeyKorotun пишет:

 цитата:
Перенеси имена в текстовый файл и добавь в базу родной утилитой клиппера - dbu.exe (F6, добавить, выбрать SDF и выбрать текстовый файл с именами)


Вот вы и проделайте эту работу. У меня русская 1251 кодировка на компе, ставить украинскую не когда.
Если вам "влом" сделать DBF-ник и выложить здесь, то тогда продолжать разговор не чего !

SergeyKorotun пишет:

 цитата:
А ограничение на длину бинарного файла есть?
Базы большие.



Запись идет 30 байт (ПЕРВЫХ) в базу, какой размер файла - это до лампочки !

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



Пост N: 77
Зарегистрирован: 30.05.11
ссылка на сообщение  Отправлено: 31.01.13 23:08. Заголовок: Andrey пишет: Вот в..


Andrey пишет:

 цитата:
Вот вы и проделайте эту работу. У меня русская 1251 кодировка на компе, ставить украинскую не когда.
Если вам "влом" сделать DBF-ник и выложить здесь, то тогда продолжать разговор не чего !


Я не знаю как вставить файл, поэтому базу импортировал в текстовый файл и несколько имен вставил в сообщение. Кнопка "файл с компьютера" делает переадресацию на сайт, на котором можно вставить только картинку.
По поводу продолжения разговора: я уже пару раз писал, что перекодировку сделал программно, поэтому дополнительная утилита мне уже не нужна. Вы просили, я протестировал, нет в проге перекодировки с дос 1125 в дос 866. Если подскажите как присоединить файл, базу я вам выложу.

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



Пост N: 705
Зарегистрирован: 11.06.10
ссылка на сообщение  Отправлено: 31.01.13 23:15. Заголовок: SergeyKorotun пишет:..


SergeyKorotun пишет:

 цитата:
Я не знаю как вставить файл

Синяя стрелка вниз (файл с компьютера).

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



Пост N: 78
Зарегистрирован: 30.05.11
ссылка на сообщение  Отправлено: 31.01.13 23:24. Заголовок: AlexMyr пишет: Синя..


AlexMyr пишет:

 цитата:
Синяя стрелка вниз (файл с компьютера).


при нажатии открывает http://photo.qip.ru/index.php на котором можно вставить только картинку

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



Пост N: 79
Зарегистрирован: 30.05.11
ссылка на сообщение  Отправлено: 31.01.13 23:43. Заголовок: Для Andrey отправил ..


Для Andrey
отправил вам базу на 30195@mail.ru

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




Пост N: 2613
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 31.01.13 23:55. Заголовок: SergeyKorotun пишет:..


SergeyKorotun пишет:

 цитата:
при нажатии открывает http://photo.qip.ru/index.php на котором можно вставить только картинку


файл можно выложить на любой файло обменник , к примеру files.mail.ru и продублировать сюда ссылку , что то
типа http://files.mail.ru/FBD6TR (это просто пример)

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



Пост N: 80
Зарегистрирован: 30.05.11
ссылка на сообщение  Отправлено: 01.02.13 01:54. Заголовок: база для перекодиров..


база для перекодировки из ср1125 в ср866 http://us.ua/1024583/

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




Пост N: 2618
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 01.02.13 17:12. Заголовок: SergeyKorotun пишет:..


SergeyKorotun пишет:

 цитата:
база для перекодировки из ср1125 в ср866


Вот программа (и исходник) для перекодировки на МиниГуи - http://files.mail.ru/D2E69525A38D43F3B1734C3B07081E82

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

Забыл язык указать правильно...
Замените сами на эти строки:
SET LANGUAGE TO UKRAINIAN
SET CODEPAGE TO UKRAINIAN



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



Пост N: 81
Зарегистрирован: 30.05.11
ссылка на сообщение  Отправлено: 03.02.13 17:20. Заголовок: Доработанная функция..


Доработанная функция Андрея по смене 29 байта базы
//chr(101) for cp866
//chr(201) for cp1251

#include "fileio.ch"
clear screen

Set29biteInCP866("c:\proba.dbf")

FUNCTION Set29biteInCP866(cFile)
Local nFile, nStatus, nSizeFile, cStream

nFile:=Fopen(cFile,FO_WRITE)
nStatus:=FError()
if ((nFile=-1) .or. (nStatus!=0))
alert("Номер вiдкритого файла: "+ltrim(str(nFile))+";Помилка! Неможливо вiдкрити файл:;"+cFile+";Код помилки ДОС: "+ltrim(str(nStatus)))
return NIL
endif

nSizeFile := FSEEK(nFile,0,FS_END)
//alert("Size file "+str(nSizeFile))
nSeek:=FSEEK(nFile,29,FS_SET)
if nSeek<>29
alert("Не вдалося перемiстити курсор в 29 байт;для змiни номеру кодової сторiнки на CP866;Зробiть це за допомогою visual foxpro 7; use "+alltrim(cFile)+" exclusive; i виберiть 866 кодову сторiнку")
Fclose(nFile)
return NIL
endif
cStream=chr(101) //chr(201) for cp1251
nWriteBites:=Fwrite(nFile, cStream, 1)
nStatus:=FError()
if nWriteBites<>1
Alert("Не вдалося змiнити номер кодової сторiнки в файлi:;"+cFile+";"+"Код помилки ДОС: "+ltrim(str(nStatus)))
endif

FClose(nFile)
Return NIL


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



Пост N: 82
Зарегистрирован: 30.05.11
ссылка на сообщение  Отправлено: 05.02.13 00:17. Заголовок: Задача скорее не име..


Задача скорее не имеет решение, но все же сформулирую.
Клиентам раздается программа с заполненной данными базой:
tin c 10
sum n 16.2
fio c 60
Клиент на основе данных этой базы с помощью программы создает новую базу:
tin c 10
tin_cl c 10
sum n 16.2
sum_cl n 16.2
fio c 60
fio_cl c 60
Программа после поиска tin или fio в первой базе заполняет пары get полей (tin и tin_cl, sum и sum_cl, fio и fio_cl) одинаковыми значениями и если некоторые данные неверные, клиент должен исправить их в полях tin_cl, sum_cl, fio_cl. Поля tin, sum, fio недоступные для редактирования и отображают значения из первой базы.
В первую базу заносились данные прогой, использующей 866 кодовую станицу (но через использование сторонних программ в первой базе присутствуют данные в разных кодировках.
Во вторую базу в поля *_cl данные заносятся в кодовой странице 1125 (используется кейрус)
Требуется данные в поле fio_cl перекодировать в 866 кодовую страницу.


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




Пост N: 2625
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 05.02.13 11:38. Заголовок: SergeyKorotun пишет:..


SergeyKorotun пишет:

 цитата:
Во вторую базу в поля *_cl данные заносятся в кодовой странице 1125 (используется кейрус)
Требуется данные в поле fio_cl перекодировать в 866 кодовую страницу.


Сделай эту программу на хХарборе, отличия от Клипера минимальны, и заморачиватся с кодировками не будешь.
Как сделать программу на хХарборе смотри http://clipper.borda.ru/?1-6-0-00000002-000-0-0-1355737108

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



Пост N: 83
Зарегистрирован: 30.05.11
ссылка на сообщение  Отправлено: 06.02.13 02:00. Заголовок: Andrey пишет: Сдела..


Andrey пишет:

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


Заморачиваться придется, так как исходная база (сp1125) берется с одной чужой проги, с помощью клипперовской проги правится база (ср866) другой чужой проги, используя данные с первой базы.
Помогла бы утилита наподобии кейруса, но переводящяя коды символов не в ср1125, а в ср866. Существует такая?

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




Пост N: 2629
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 06.02.13 09:21. Заголовок: SergeyKorotun пишет:..


SergeyKorotun пишет:

 цитата:
Существует такая?


Не знаю !

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

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