|
Снова кодовая страница таблицы и старый добрый FPD 2.6 for DOS
|
|||
---|---|---|---|
#18+
Программа обработчик, написана на старом FoxPro 2.6. в файле config.fp CODEPAGE=866. Системой клиент-банк выписка выгружается в DBF файл с внутренней кодировкой 866, а структура таблицы с кодировкой 1251, если ручками менять символ обозначающий кодировку таблицы с CHR(201) на CHR (101), то все прекрасно. В самой программе клиент-банк никаких возможностей смены кодировки таблицы экспорта нету. Как можно открывать таблицу с кодировкой 1251, если вся программка использует кодировку 866 ???? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2012, 11:19 |
|
Снова кодовая страница таблицы и старый добрый FPD 2.6 for DOS
|
|||
---|---|---|---|
#18+
DAndreyесли ручками менять символ обозначающий кодировку таблицы с CHR(201) на CHR (101), то все прекрасно. Автоматизировать это действие что мешает? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2012, 11:51 |
|
Снова кодовая страница таблицы и старый добрый FPD 2.6 for DOS
|
|||
---|---|---|---|
#18+
Dima T, Придется открывать файл менять, обрабатывать, а потом обратно менять . Так как пытался оставить в описании таблицы 866 кодовую страницу, тогда совсем не понятная кодировка получается при выгрузки из клиент-банка. Может есть другое решение данной проблемы ???? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2012, 12:04 |
|
Снова кодовая страница таблицы и старый добрый FPD 2.6 for DOS
|
|||
---|---|---|---|
#18+
DAndreyМожет есть другое решение данной проблемы ???? Как по твоему должно выглядеть другое решение? У тебя кривой генератор в клиент-банке. Он пишет данные в 866 (ДОС) кодировке, а в заголовке DBF ставит что читайте как 1251 (CHR(201) обозначает 1251 по стандартам). Можешь CPCONVERT() использовать для смены кодовой страницы, только этой функции нет в FPD 2.6 for DOS если не ошибаюсь. DAndreyПридется открывать файл менять, обрабатывать, а потом обратно менять . Обратно-то зачем менять? хочешь исходный файл сохранить - делай копию и в ней меняй. Еще раз повторюсь - файл изначально кривой. И приведение его в порядок - не криминал, а самое правильное решение. Сложного ничего не вижу: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Можешь сверху еще анализатор неправильной кодировки прикрутить, в 866 многие русские буквы имеют коды непечатаемых символов в 1251 и наоборот. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2012, 12:43 |
|
Снова кодовая страница таблицы и старый добрый FPD 2.6 for DOS
|
|||
---|---|---|---|
#18+
Dima T, Функции CPCONVERT() точно нету, а функция Set866CP с небольшими доработками заработала. СПАСИБО !!! ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2012, 13:51 |
|
Снова кодовая страница таблицы и старый добрый FPD 2.6 for DOS
|
|||
---|---|---|---|
#18+
DAndreyDima T, Функции CPCONVERT() точно нетуТочно? А это что? ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї і CPCONVERT() і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ CPCONVERT(<expN1>,<expN2>, <expC>) ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Converts the character expression <expC> from one code page (<expN1>) to another (<expN2>). Return value - Character ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД CPCONVERT() is commonly used to translate character or memo fields or character expressions to the current code page. Use CPCURRENT() to determine the current code page. Note that CPCONVERT() isn't required for normal cross-platform functioning of the product. It is strictly used to access the underlying translation facilities of FoxPro. For example, if the variable x contains a character that on the Macintosh (in code page 10000) would look like then this command will return a character that will look like when viewed under the ANSI character set (code page 1252) in Microsoft Windows. CPCONVERT(10000, 1252, x) ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД See Also: International/X-Platform, CPCURRENT(), CPDBF(), MODIFY COMMAND/MODIFY FILE, SET NOCPTRANS ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД А еще там есть вот это: ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї і OEMTOANSI() і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ OEMTOANSI(<expC>) ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Converts each character in a character expression to the corresponding character in the ANSI character set. Return value - Character ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД OEMTOANSI() is supported in FoxPro for Windows and FoxPro for Macintosh. Use OEMTOANSI() to move data from FoxPro for MS-DOS to FoxPro for Windows and FoxPro for Macintosh. <expC> OEMTOANSI() converts each character in <expC> to the corresponding character in the ANSI character set. The character expression <expC> should contain characters from the MS-DOS (OEM) character set. If a character in <expC> doesn't have an ANSI equivalent, the character is converted to a similar ANSI character. For example, MS-DOS line-drawing characters might not be found in the ANSI character set. ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД See Also: ANSITOOEM(), CHRTRAN(), SYS(15) Character translation ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2012, 14:07 |
|
Снова кодовая страница таблицы и старый добрый FPD 2.6 for DOS
|
|||
---|---|---|---|
#18+
Sergey Sizov, Sorry !!! Но в FoxPro 2.6. for DOS такие функции отсутствуют ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2012, 14:13 |
|
Снова кодовая страница таблицы и старый добрый FPD 2.6 for DOS
|
|||
---|---|---|---|
#18+
DAndreySergey Sizov, Sorry !!! Но в FoxPro 2.6. for DOS такие функции отсутствуютДумаешь, я это всё придумал? Не поверил, что я это их хелпа вырезал? И не попробовал непосредственно в FPD 2.6? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2012, 14:34 |
|
Снова кодовая страница таблицы и старый добрый FPD 2.6 for DOS
|
|||
---|---|---|---|
#18+
Sergey Sizov, Как ни странно но я тоже попробовал для интереса и не поверите система выдала "Function not implemented" . ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2012, 15:35 |
|
Снова кодовая страница таблицы и старый добрый FPD 2.6 for DOS
|
|||
---|---|---|---|
#18+
DAndrey, Если у вас нет, значит ваш FPD26 подозрительно напоминает FPD20 )))))))) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2012, 15:56 |
|
Снова кодовая страница таблицы и старый добрый FPD 2.6 for DOS
|
|||
---|---|---|---|
#18+
DAndreyПрограмма обработчик, написана на старом FoxPro 2.6. в файле config.fp CODEPAGE=866. Системой клиент-банк выписка выгружается в DBF файл с внутренней кодировкой 866, а структура таблицы с кодировкой 1251, если ручками менять символ обозначающий кодировку таблицы с CHR(201) на CHR (101), то все прекрасно. В самой программе клиент-банк никаких возможностей смены кодировки таблицы экспорта нету. Как можно открывать таблицу с кодировкой 1251, если вся программка использует кодировку 866 ???? Если не читается: *Запускаем cpzero - в комплекте фокспро есть cpzero.prg таблица.DBF (этим дейстием обнулим кодовую страницу) *Открываем таблицу USE таблица.DBF * фокс выдаст окошко с просьбой указать кодировку. Указываем 1251 если она была создана в 1251. BROWSE * смотрим. если будут какозябрики то таблица.DBF заполнялась НЕ как 1251. начинаем сначала - cpzero и пробуем выбрать другую кодировку. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2012, 17:33 |
|
Снова кодовая страница таблицы и старый добрый FPD 2.6 for DOS
|
|||
---|---|---|---|
#18+
Запускать cpzero можно с параметром DO cpzero WITH таблица.DBF Просто обнулит кодировку без лишних вопросов. Утилита cpzero данные внутри таблицы не меняет. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2012, 17:41 |
|
Снова кодовая страница таблицы и старый добрый FPD 2.6 for DOS
|
|||
---|---|---|---|
#18+
проходящий., Изредко нужно читать вопрос и судя по ответу не один раз. Решение у (Dima T) самое оптимальное. Я же не буду каждый раз запускать CPZERO, а если точнее то гл. бухгалтер. Система клиент-банк создает каждый раз новый файл при экспорте выписки. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2012, 18:48 |
|
Снова кодовая страница таблицы и старый добрый FPD 2.6 for DOS
|
|||
---|---|---|---|
#18+
DAndreySergey Sizov, Как ни странно но я тоже попробовал для интереса и не поверите система выдала "Function not implemented" .Проверяй версию своего фокса. Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2012, 18:51 |
|
Снова кодовая страница таблицы и старый добрый FPD 2.6 for DOS
|
|||
---|---|---|---|
#18+
Sergey Sizov, ?version() выдает FoxPro 2.6 (X) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2012, 18:55 |
|
Снова кодовая страница таблицы и старый добрый FPD 2.6 for DOS
|
|||
---|---|---|---|
#18+
DAndrey?version() выдает FoxPro 2.6 (X) Кошерная версия должна выдавать 2.Xx, где вместо большого хрена - буковка версии, вместо маленького - буковка релиза. Так что XAndy был недалёк от истины... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2012, 19:36 |
|
Снова кодовая страница таблицы и старый добрый FPD 2.6 for DOS
|
|||
---|---|---|---|
#18+
DAndreyпроходящий., Изредко нужно читать вопрос и судя по ответу не один раз. Решение у (Dima T) самое оптимальное. Я же не буду каждый раз запускать CPZERO, а если точнее то гл. бухгалтер. Система клиент-банк создает каждый раз новый файл при экспорте выписки. Что за дебильный ответ? DO cpzero WITH 'таблица.dbf',1251 && Одна строчка. И такие отпетые двоечники как ты работают с банком? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2012, 20:26 |
|
Снова кодовая страница таблицы и старый добрый FPD 2.6 for DOS
|
|||
---|---|---|---|
#18+
проходящий.DO cpzero WITH 'таблица.dbf',1251 && Одна строчка. Те же яйца только в профиль. cpzero точно также меняет 30-й байт. Какая разница чем менять своей функцией или предложенной MS? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2012, 20:36 |
|
Снова кодовая страница таблицы и старый добрый FPD 2.6 for DOS
|
|||
---|---|---|---|
#18+
1122112211проходящий.DO cpzero WITH 'таблица.dbf',1251 && Одна строчка. Те же яйца только в профиль. cpzero точно также меняет 30-й байт. Какая разница чем менять своей функцией или предложенной MS? Вот и я о том же. Dima T тут целую поибень накатал, когда есть готовая утилита cpzero.prg в дистрибутиве фокса :)) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2012, 20:45 |
|
Снова кодовая страница таблицы и старый добрый FPD 2.6 for DOS
|
|||
---|---|---|---|
#18+
проходящий.Dima T тут целую поибень накатал, когда есть готовая утилита cpzero.prg в дистрибутиве фокса :)) Ну знаешь, если для тебя 9 строк это мегапрога, то не знаю чего сказать в ответ. По моему их быстрее набить по памяти чем название cpzero.prg вспомнить, потом где она живет и в проект добавить. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2012, 20:52 |
|
|
start [/forum/topic.php?fid=41&fpage=61&tid=1583815]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
27ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
70ms |
get tp. blocked users: |
2ms |
others: | 11ms |
total: | 156ms |
0 / 0 |