Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > string to pchar


Автор: МММ 8.8.2002, 11:14
Есть вот это  
  ShellExecute(Handle,nil,'arj.exe','a '+DirectoryListBox1.Directory+edit1.Text+' '+s ,nil,SW_SHOWNORMAL);

ругается типа string а надо pchar
как  перевести string to pchar

Автор: Vit 8.8.2002, 12:02
Примерно так: ShellExecute(Handle,nil,PChar('arj.exe'),PChar('a '+DirectoryListBox1.Directory+edit1.Text+' '+s) ,nil,SW_SHOWNORMAL);

Автор: МММ 8.8.2002, 12:22
Пасиба бальшое!!! :D
я так примерно и сделал!!!

Автор: Vit 8.8.2002, 12:38
Так как тебе ответили на форуме Source.ru:

Код

var
s:array [0..255] of char;
begin
strPCopy(s,edit1.text);


Тоже можно, но имеет смысл с этим заводится только если предпологаешь потом с PChar работать. Кстати этот код не очень точный - он не учитывает длины строки, будет вылетать при длине больше 255 символов, и массив это не совсем PChar, хотя и совместим с ним в большинстве ситуаций. Более корректным будет такой код:

Код

 var s:Pchar;
begin
 GetMem(s,length(edit1.text)+1);//выделяешь память под переменную
 strPCopy(s,edit1.text); //конвертируешь
 {здесь ты работаешь с переменной}
 FreeMem(s);//освобождаешь память

Автор: Song 9.8.2002, 21:41
А ф-ия PChar() не катит?  :)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)