Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   string и pansichar (http://forum.oszone.net/showthread.php?t=176051)

LilLoco 19-05-2010 14:35 1416739

string и pansichar
 
Столкнулся с такой проблемой!Раньше все сидел на делфи7 сейчас решил перейти на Embarcadero delphi 2010! При работе на делфи7 с временными таблицами:

Код:

path : string; //путь к ехе
.....
query := tquery.create(nil);
query.Active := false;
query.SQL.Add('......');
query.SQL.Open;
DBiMakePermanent(query.handle,path+'temp.db',true);
query.SQL.Close;

код прекрасно работал. а на 2010 ругается на приведение типов :(
работает если просто

Код:

.....
DbiMakePermanent(query.handle,'temp.db',true);
.....

но такой вариант не подходи, так как все поддиректории создаются программно!

как это осуществить?помогите пожалуйста

LilLoco 19-05-2010 15:03 1416762

Все с той проблемой я кажется разобрался!нужно вроде бы так:

Код:

dir : string;
......
dir := path+'...';
.....
DbiMakePermanent(query.Handle,pansichar(ansistring(dir)),true);
......

но тут же появился новый вопрос :( Не Работает с русским языком :( Как сделать чтобы создавалась папка на русском языке, и туда закидывался файлик ?(

opel431 19-05-2010 22:57 1417077

Пока лучшее, что я нашел по "борьбе" с Юникодом:
http://www.delphi2009.ru/Unicode_Delphi-RUS.pdf

http://edn.embarcadero.com/article/38446
http://edn.embarcadero.com/article/38582
http://edn.embarcadero.com/article/38703

Я не пробовал перевод проектов с 7 на 2010, но про проблемы читал.
Можно попробовать явно указать тип AnsiString.

AnsiString в 2010 включают в себя Encoding, по умолчанию текущий, системы.
Т.е можно так: AnsIString(1251) := AnsIString(866); или так AnsIString := AnsIString(866); или так AnsIString := AnsIString(utf8);

LilLoco 19-05-2010 23:04 1417083

opel431, да спасибо, читал эти ссылки, завтра буду пробывать :)


Время: 01:34.

Время: 01:34.
© OSzone.net 2001-