Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / FoxPro, Visual FoxPro Новый топик    Ответить
 1C7.7 в foxpro 2.6 DOS  [new]
Кормщик
Member

Откуда:
Сообщений: 5
Нужно открыть dbf сабж, но вылазят "кракозяблы"
Кодавая страница в файле указана как "С9" что значит русский виндовс 1251
Если забиваю 0 вместо С9, тогда при открытии ФОКС спрашивает про кодовую страницу. указываю 1251, всеровно кракозяблы.
в файле config.fp ставил кодовую страницу 1251 вместо "АВТО", не помогает.

Что делать посоветуйте????
31 дек 13, 01:37    [15367370]     Ответить | Цитировать Сообщить модератору
 Re: 1C7.7 в foxpro 2.6 DOS  [new]
q1w1e1
Member

Откуда: Кы-рск
Сообщений: 1034
Кодовая страница может быть не только у таблицы, но и у текста, который находится в таблице...
Если надо для поиска чего-либо, а не для написания программы, пользовался виндовским проводником и DBFNavigator, открыл, поставил фильтр на что либо, посмотрел код, пошел в связанную таблицу открыл нашел код и т.д.
31 дек 13, 05:30    [15367506]     Ответить | Цитировать Сообщить модератору
 Re: 1C7.7 в foxpro 2.6 DOS  [new]
Дед Евгений
Member

Откуда: Московская область
Сообщений: 118
Пропиши кодовую 866 (101 код), можешь и 1251, там другой код. Но похоже у тебя 866 страница. Прописать очень легко, вот код:

nOnFileDbf = FOPEN(FULLPATH("")+"ClipDate.dbf",2)
IF nOnFileDbf > 0
= FSEEK(nOnFileDbf,29) && Перемещаемся к 29 байту в заголовке
= FWRITE(nOnFileDbf,CHR(101)) && Прописываем код 866
= FCLOSE(nOnFileDbf)
ENDIF

С наступающим Новым годом!!!
31 дек 13, 09:11    [15367846]     Ответить | Цитировать Сообщить модератору
 Re: 1C7.7 в foxpro 2.6 DOS  [new]
Кормщик
Member

Откуда:
Сообщений: 5
q1w1e1
К сожалению я не могу пользоваться сторонними смотрелками, а так же менять 29 байт, по одной причине.
Это живая база, с ней работают.
Но она достигла Гигабайтных размеров и некоторые отчеты или обработки выполняются несколько дней.
А в Фокспро со своими индексами идет живенько.
Опять же фох2.6 для виндовс показывает все правильно, но он не такой копактный как для дос.
31 дек 13, 10:08    [15368034]     Ответить | Цитировать Сообщить модератору
 Re: 1C7.7 в foxpro 2.6 DOS  [new]
AndreTM
Member

Откуда: Где-то в вологодских лесах...
Сообщений: 6901
Если объём базы файловой 1С достиг гигабайтных размеров - может, всё же стОит задуматься о том, чтобы, наконец, прочесть инструкцию?
Например, сделать свёртку... или вообще (если последовательность проведённых документов позволяет) - удалить старые данные?
Или вам удобнее доставать гланды не то чтобы через заднепроходное отверстие, - а заодно через задний проход главы администрации муниципального района??
31 дек 13, 18:47    [15369603]     Ответить | Цитировать Сообщить модератору
 Re: 1C7.7 в foxpro 2.6 DOS  [new]
Dima T
Member

Откуда:
Сообщений: 15279
Может стоит взять версию фокса посвежей?
31 дек 13, 19:34    [15369673]     Ответить | Цитировать Сообщить модератору
 Re: 1C7.7 в foxpro 2.6 DOS  [new]
AndreTM
Member

Откуда: Где-то в вологодских лесах...
Сообщений: 6901
Dima T
стоит взять версию фокса посвежей?
Судя по первому сообщению - ТС и так взял "посвежее" (ибо FPD точно никогда не работал с CP()). Но проблема-то - в головах...
1 янв 14, 15:03    [15370740]     Ответить | Цитировать Сообщить модератору
 Re: 1C7.7 в foxpro 2.6 DOS  [new]
Dima T
Member

Откуда:
Сообщений: 15279
AndreTM
Dima T
стоит взять версию фокса посвежей?
Судя по первому сообщению - ТС и так взял "посвежее" (ибо FPD точно никогда не работал с CP()). Но проблема-то - в головах...

Тоже так думал, но недавно узнал что последний FPD все-таки работал с CP при некотором шаманстве. Правда сам живьем такого не видел.

С виндовыми версиями фокса проблемы не возникло бы, т.к. у 1С77 используется виндовая кодировка (1251) но в заголовке 0 стоит.

Вообще странная логика у ТС: иметь гиговые базы и гимороиться с FPD из-за того что он займет на пару метров меньше чем VFP.
1 янв 14, 20:15    [15371385]     Ответить | Цитировать Сообщить модератору
 Re: 1C7.7 в foxpro 2.6 DOS  [new]
fore5ta
Member

Откуда:
Сообщений: 51
Сижу на FPD2.6 по сей день, приходится иногда данные гонять в разные кодировки, у него (фокса) с кодовыми страницами проблем нет, есть разные нюансы. Мне отсюда не видно что реально у ТС. Могу посоветовать следующее: до XP в конфиге достаточно было AUTO, а начиная с XP и выше указывай принудительно. На разных машинах наблюдал разные результаты при AUTO. Если вдруг системные установки Украина или другое (не русские) то принудительно указывай кодировку системы. Проверь какой берется файл конфига (может ты указываешь кодировку в одном, а платформа читает с другого. Для этого средства у него есть. Подробнее об этом в хелпе достаточно написано.) Проверь в какой кодировке платформа и открываемый файл (cpcurrent(), cpdbf() в помошь), если увидел не то что ожидал, ищи что у тебя не так. Browse не панацея в последней инстанции, а также oemtoansi() и наоборот он тоже умеет делать. Удачи.
2 янв 14, 13:55    [15372461]     Ответить | Цитировать Сообщить модератору
 Re: 1C7.7 в foxpro 2.6 DOS  [new]
Кормщик
Member

Откуда:
Сообщений: 5
fore5ta,
Можно по подробней? Какая версия FOXPRO у вас? У моей 2.6 CPDBF() или CPCURRENT() нет.

Насчет свёртки баз 1С. В ней то и дело, гигабайтных размеров файлы регистров и констант разростаются в течении 3-4 месяцев, а свертка идет примерно неделю. И не факт, что не будет сбоев. На такое время останавливать предприятие не реально.
Короче скорость 1С меня не устраивает. А ФОКСОМ можно сделать довольно таки быстро.

Насчет VFP я не могу держать не лицензионный софт. С флешки нужно запускаться.
Да и с FPD DBASE я начинал, в 90г но тогда виндой и не пахло, мне проще вспомнить чем учиться.
Наверное у меня какой-то глюк. Если признак кодировки сбросить в 0, Фокс спрашивает какую кодировку использовать
Но не использует...........
3 янв 14, 12:17    [15374207]     Ответить | Цитировать Сообщить модератору
 Re: 1C7.7 в foxpro 2.6 DOS  [new]
Кормщик
Member

Откуда:
Сообщений: 5
Пишу что бы самому не забыть, и другим в помощь
CPDBF() и прочие всё таки были в моём фоксе, но небыли документированны в Помощи
мне помогли вот какие действия
1. Как известно в 1С dbf не указанна кодовая страница(стоит 0 по адресу D1) нужно поставить С9 что значит кодовая страница 1251
(Это обязательно нужно сделать.)
2. Если в конфигурационном файле config.ft стоит CODEPAGE = AVTO то поможет:
CPCONVERT(1251,866, <поле>)

Если же в config.ft стоит CODEPAGE = 866
То всё идет чики-пуки.

Всем спасибо, проблема решена....
3 янв 14, 13:13    [15374297]     Ответить | Цитировать Сообщить модератору
 Re: 1C7.7 в foxpro 2.6 DOS  [new]
Кормщик
Member

Откуда:
Сообщений: 5
В догонку

CPCURRENT(1) - кодовая страница системы, у меня выдавал 437.
так что если прописать кодовую страницу 866 в MS-DOS то и возможно а конфиге и АВТО можно оставить, (Я не проверял),
Работаю в dosbox

НУ это совсем Всё
3 янв 14, 13:17    [15374301]     Ответить | Цитировать Сообщить модератору
 Re: 1C7.7 в foxpro 2.6 DOS  [new]
Dima T
Member

Откуда:
Сообщений: 15279
Кормщик
Насчет VFP я не могу держать не лицензионный софт. С флешки нужно запускаться.

а лицензия на FPD есть?
VFP с флэшки тоже работает, а на готовый EXE лицензия не нужна.
Кормщик
Да и с FPD DBASE я начинал, в 90г но тогда виндой и не пахло, мне проще вспомнить чем учиться.

Синтаксис FPD полностью поддерживается в последнем VFP9. Если пользовательского интерфейса не требуется, то осваивать новое не обязательно. Просто запусти тот же PRG. Возможно несколько SET`ов добавить понадобится (для восстановления совместимости).

Главный недостаток FPD в последней букве. DOS-программы во всех виндовсах (начиная с 2000) идут через прослойку в виде виртуальной DOS-машины, что производительности не добавляет.
Так что советую попробовать запустить свою поделку под VFP9 и сравнить скорость. Сам не мерил, но думаю заметно будет разницу.
3 янв 14, 20:02    [15375007]     Ответить | Цитировать Сообщить модератору
 Re: 1C7.7 в foxpro 2.6 DOS  [new]
fore5ta
Member

Откуда:
Сообщений: 51
Кормщик
CPDBF() и прочие всё таки были в моём фоксе, но небыли документированны в Помощи

В родном англоязычном хелпе все команды присутствуют, а если хелп русифицированный от 2.0, то там да, этих команд нет.
Кормщик
2. Если в конфигурационном файле config.ft стоит CODEPAGE = AVTO то поможет:
CPCONVERT(1251,866, <поле>)

Кормщик
CPCURRENT(1) - кодовая страница системы, у меня выдавал 437.
... Работаю в dosbox

Выше уже писал, что AUTO имеет смысл ставить если платформа правильно определяет CP системы, а если нет, то прописывай явно, иначе будешь иметь свои "кракозяблы", тем более, что в постах неуказана какая кодировка установлена у винды, и под ней еще эмулятор с американской CP.
7 янв 14, 06:18    [15383362]     Ответить | Цитировать Сообщить модератору
Все форумы / FoxPro, Visual FoxPro Ответить