Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как состыковать pchar и string? {дурдом} [D5, WinXP]


The X ©   (2006-12-19 21:17:00) 

Получаю с помощью следующей ф-ции путь к каталогу определенной базы данных (не важно):

function GetPhNameByAlias(sAlias: string): string;
var
 Database: TDatabase;  
 pszDir: PChar;
begin
 Database := TDatabase.Create(nil); pszDir := StrAlloc(255);
 try
   Database.AliasName := sAlias;
   Database.DatabaseName := ′TEMP′;
   Database.Connected := True; DbiGetDirectory(Database.Handle, True, pszDir);
   Database.Connected := False;
   Result := StrPas(pszDir);  
 finally
   Database.Free; end;
 end;

В итоге получаю из вышеприведенной функции путь SDir в виде string.
Далее передаю этот путь  в процедуру копирования одного файла из этой директории в другую:

CopyFile(SDir + 'are.mb', 'C:\are.mb', True);   (все аргументы должны быть string)

И ошибка - несовместимость с pchar и string!!!
Это у меня логики нет? Откуда по цепочке берется этот pchar?
Подскажите плиз!


The X   (2006-12-20 16:18:00) [1]

хех!..))
все равно сенкс!


Anatoly Podgoretsky   (2006-12-20 15:38:00) [2]

> The X  (20.12.2006 15:34:12)  [12]

Странно проблемы в файловой системе, а драйвер меняешь в БДЕ.


Anatoly Podgoretsky   (2006-12-20 15:37:00) [3]

> The X  (20.12.2006 15:29:11)  [11]

Использование Юникод подразумевает не только использование pwidechar, но и соответствующей Юникод версии функции.

Точно чушь, плюнь на это займись другой работой.


The X   (2006-12-20 15:34:00) [4]

Пробовал даже менять языковый драйвер на парадоксе в БДЕ - без результата.


The X   (2006-12-20 15:29:00) [5]

Попробовал использовать юникод через pwidechar - вообще чушь сплошная получается, тогда как при pchar и pansichar искажаются только русские буквы и по-одинаковому!
Чушь это все.
???


Anatoly Podgoretsky   (2006-12-20 15:03:00) [6]

> The X  (20.12.2006 14:53:09)  [9]

Не замечено подобного, а может у тебя локализация не верная? Тогда работай с Юникод версией.


The X   (2006-12-20 14:53:00) [7]

Я имею ввиду, что при передаче в CopyFile через pchar имени папки с кириллицей, то не работает копирование (в CopyFile некорректно прописывается кириллица). И кстати, через PAnsiChar я пробовал с самого начала - никакой положительной реакции.
???


Anatoly Podgoretsky   (2006-12-20 12:56:00) [8]

> The X  (20.12.2006 12:16:06)  [6]

Чтобы это значило?


sniknik   (2006-12-20 12:23:00) [9]

PAnsiChar


The X   (2006-12-20 12:16:00) [10]

При этом варианте не работают кириллические папки. Как быть?


TStass   (2006-12-19 23:28:00) [11]

В "статьях" хорошая статья есть, как строчка устроена.


The X   (2006-12-19 21:59:00) [12]

Сенкс, все получилось!


trubin   (2006-12-19 21:40:00) [13]


> CopyFile(PChar(LM[1059] + 'are.mb'), 'C:\are.mb', True);


извините :)))))

CopyFile(PChar(SDir + 'are.mb'), 'C:\are.mb', True);


trubin   (2006-12-19 21:38:00) [14]


> CopyFile(SDir + 'are.mb', 'C:\are.mb', True);


CopyFile(PChar(LM[1059] + 'are.mb'), 'C:\are.mb', True);


Anatoly Podgoretsky   (2006-12-19 21:20:00) [15]

> The X  (19.12.2006 21:17:00)  [0]

> (все аргументы должны быть string)

(все аргументы должны быть PChar)


Наверх

Титульная страница Поиск, карта сайта Написать письмо