Форум: "Базы";
Текущий архив: 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