Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.12.30;
Скачать: [xml.tar.bz2];

Вниз

Проблема с кирилицей в таблице FoxPro 2.6   Найти похожие ветки 

 
dmtr   (2003-12-04 13:53) [0]

Возникла необходимость обработать данные, записанные в таблице
FP 2.6. Подулючаюсь через BDE компоненты не используя алиасов.
Проблема в том, что русские буквы криво отображаются. Подскажите, как эту ситуацию можно поправить?


 
Andrey V.   (2003-12-04 15:08) [1]

Может так ?
procedure TLogForm.MakeRusCP(FileName:string);
var
F:TFileStream;
Fanny:byte;
begin
F := TFileStream.Create(FileName, fmOpenReadWrite);
try
// русификация
F.Seek(29, soFromBeginning);
Fanny := 38;
F.Write(Fanny,1);
// а заодно избавляемся от индексов
F.Seek(28, soFromBeginning);
Fanny := 0;
F.Write(Fanny,1);
finally
F.Free;
end;
end;

As is .


 
dmtr   (2003-12-04 15:16) [2]

А если таким образом модифицированный файл снова открыть в FP 2.6 под ДОСом, то что мы увидим?


 
HSolo   (2003-12-04 15:53) [3]

Зачем же файл портить?
Просто langdriver укажите: dBASE RUS cp866


 
Andrey V.   (2003-12-05 08:55) [4]

Ничего не будет. (в смысле - ничего плохого) Досу на эти байты наплевать, он на них не смотрит.
Содержание- то полей не меняется.


 
Anatoly Podgoretsky   (2003-12-05 09:21) [5]

Andrey V. © (05.12.03 08:55) [4]
Не будь таким наивным, смотрит и еще как, а если ты не умеешь писать программы для Фокса или не знаешь как он работает, то не давай такие зверские методы, а то подведешь человека под монастырь.

Но может ты его не долюбоиваешь и специально такой совет даешь?


 
RUYurik   (2003-12-05 09:34) [6]


> HSolo © (04.12.03 15:53) [3]

Ты прав! нужно "dBase 866 RUS" поставить.

> Anatoly Podgoretsky © (05.12.03 09:21) [5]
> Andrey V. © (05.12.03 08:55) [4]
> Не будь таким наивным, смотрит и еще как, а если ты не умеешь
> писать программы для Фокса или не знаешь как он работает,
> то не давай такие зверские методы

Я когда сталкивался с этим - делал так
With Table do
begin
ZeroByte:=$00;
FileDBF:=TFileStream.Create(DatabaseName + "\" + TableName,fmOpenReadWrite or fmShareExclusive);
FileDBF.Position:=$1C; //Отрыв ндексов
FileDBF.Write(ZeroByte,1);
FileDBF.Position:=$1D; //Обнуление кодовой страницы
FileDBF.Write(ZeroByte,1);
FileDBF.Free;
end;
И под ДОС"ом он работал отлично, разве только в нем не было прописано индексов. А на кодовую страницу ему действительно наплевать


 
Andrey V.   (2003-12-05 15:00) [7]

2 Anatoly Podgoretsky
То что мы признак индекса убираем, понятно надо и ?.cdx удалить.
И ясно надо понимать к чему это приведет и для чего это мыделаем.
Насчет 29 байта , уверяю Fox 2.6 его не смотрит.
А вообще я там внизу мелко приписал "As is" :-)
Во всяком случае это пример из моей программы (пусть и наивной :))
которая работает с фоксовыми базами вместе(не паралельно естественно) с досовской прогой.
Впрочем оставляю небольшой процент на мою непровоту :-\



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2003.12.30;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.007 c
14-99705
Dimaz-z
2003-12-09 14:12
2003.12.30
Будущее Delphi в целом.


1-99632
Gloomer
2003-12-16 12:26
2003.12.30
Отслеживание изменения файлов


3-99499
Фагот
2003-12-04 11:18
2003.12.30
Как добавить фильтр?


8-99656
arous
2003-08-30 18:57
2003.12.30
TColor


7-99795
Woolen
2003-10-23 11:36
2003.12.30
Определение частоты процессора





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский