Кодировка dbf #4162


#0 by Sector04
Люди, кто знает как сделать. Есть dbf фоксовская dos, в фоксе под винду базу смотрю, соответственно забитые поля, вместо русских букв - хрень. Как сделать, чтобы в фоксе под винду, поля забитые в досовском фоксе просматривались. Т.е. чтобы кодировка поддержалась или может программулины есть какие для этого. За ранее спасибо.
#1 by SnarkHunter
В каком фоксе...
#2 by Sector04
FoxPro 2.6.
#3 by kadr
Перекодируй... Скачай программулину с инета...
#4 by Sector04
А что за софт, не подскажешь ?
#5 by kadr
попробуй или
#6 by Sector04
kadr, спасибо. Скачал, сейчас заценю.
#7 by Sector04
kadr, нето. Я так понимаю, это проги для перекодирования не dbf. А мне базу шоркнуть надобно.
#8 by Valery
Вообще когда в фоксе базу открываеш, она спрашивает кодовую страницу. если такое непроисходит, то я раньше делел так: открываешь dosовский файл в EXEL, сохраняешь его, а потом открывашь его в wind фоксе. Данный трюк просто убивает кодовую страницу в dbf. Хотя в фоксе есть отдельная процедура по уничтожению кодовой страницы. Только название не помню. Поэтому предлагаю такой вариант.
#9 by Vser1
Просто и надежно, работает под FoxPro: ============================================== Use ------.dbf     * имя перекодируемой базы * переменные: S-перекодируемые символы (1261 кодовая таблица) * Р-подставляемые символы (866 кодовая таблица) * с 1 прописные(большие) буквы Pole='' S ='рстуфх=цчшщъыьэюяЁёІіґµ·±ј»№єЅѕ' S1='------и=-========-=--==--=- --||-=' P ='абвгдеежзийклмнопрстуфхцчшщыьъэюя№' P1 ='АБВГДЕЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЫЬЪЭЮЯ№' For i=0 to Fcount go top  Pole=Field(i) if Type(pole)='C'  Do While .not. Eof    repl &Pole with Chrtran(&Pole,S,P)    repl &Pole with Chrtran(&Pole,S1,P1)    skip  EndDo endif EndFor Browse  * просмотр результатов Quit =========================== Передать кодировку S и S1 не могу, ограничения форума, но надеюсь дагадаетесь как их получить :))) Прим. программа перегоняет все текстовые поля базы из одной кодировки в другую, игнорируя все остальные (дату, числовые, логические...), надеюсь догадаетесь как поменять переменные что-бы из 866 получить 1261 кодировку :)))
#10 by 427
Мдя... Сезон охоты на любителей драть гланды через одно место можно делать круглогодичным.... Вообще то есть такая фигня, как CodePage.... и как ни странно, это именно в 1С...
#11 by Vser1
Ну не всега надо в 1эссину гнать, иногда и из нее приходиться получать, в досовской кодировке... +заменой строчных на прописны + заменой некоторых символов на другие, да и много всякого бывает нужно и не всегда знаешь как правельно подступиться, вот и рвешь гланды через ж...
#12 by 427
"досовской кодировке".... CodePage "заменой некоторых символов на другие" - ага, при записи тоже нельзя сделать напрямую.... ты могешь лезть в задницу... но лучше сначала глянуть в ЖКК "заменой строчных на прописны" ....  ого .... и где это (в каком языке) нет Lower и Upper
#13 by Vser1
Ну я же писал всяко бывает, например чел. (как я) в 1С ноль с палочкой :))), а для пенсионного (PF04) приходиться кой какие данные выдергивать из эссины, вот и извращаюсь на старом добром FoxPro, который так сяк знаю. А ЖКК не читаю, туповато написано, не для среднего ума...
#14 by 427
Ага, туповато... Для умов ниже среднего ... вот к примеру СтрЗаменить(<?>,,) StrReplace(<?>,,) Синтаксис: СтрЗаменить(<СтрИсточник>,<СтрПодстрока>,<СтрЗамены>) Назначение: Возвращает строку, полученную из строки поиска заменой всех вхождений шаблона поиска строкой замены. Параметры: <СтрИсточник> - строка в которой ищем (место поиска); <СтрПодстрока> - строка которую ищем (шаблон поиска); <СтрЗамены> - строка, которой заменяем найденную подстроку (строка замены). или Врег(<?>) Upper(<?>) Синтаксис: Врег(<Строка>) Назначение: Возвращает строку, полученную из исходной преобразованием всех символов в верхний регистр. Параметры: <Строка> - исходная строка.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С