Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Delphi, Kylix and Pascal


Ответ
 
Опции темы Опции просмотра
Старый 02.05.2010, 13:41   #1 (permalink)
MrSTEP
一步一步地会到目的
 
Аватар для MrSTEP
 
Регистрация: 09.05.2009
Адрес: Черноземье
Сообщений: 10,939
Записей в дневнике: 10
Сказал(а) спасибо: 140
Поблагодарили 80 раз(а) в 33 сообщениях
Репутация: 28362
По умолчанию Преобразование типа TCaption (String) в PAnsiChar

пишу небольшую программулину на Делфи, которая будет работать с функцией WinAPI CopyFile. Записывается она сл. образом:
Код:
function CopyFile(
  lpExistingFileName,    // Указатель на файл, который надо копировать
  lpNewFileName: PChar;  // Указатель на имя файла, куда надо копировать
  bFailIfExists: BOOL    // Чё делать если файл уже существует.
  ): BOOL; stdcall;
В первых двух переменных вместо типа PChar требует PAnsiChar, но беда не в этом. Дело в том, что эти переменные будут вводиться в к-т Edit. У поля Edit.Text тип TCaption, следовательно, компилятор ругается на несовместимость типов TCaption и PAnsiChar. Как мне преобразовать строку в PAnsiChar?
MrSTEP вне форума   Ответить с цитированием

Старый 02.05.2010, 13:41
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Обязательно прочитайте содержимое схожих тем

Типа как в Японии
Тип String
Преобразование аналога в цифровой формат

Старый 02.05.2010, 14:25   #2 (permalink)
MrSTEP
一步一步地会到目的
 
Аватар для MrSTEP
 
Регистрация: 09.05.2009
Адрес: Черноземье
Сообщений: 10,939
Записей в дневнике: 10
Сказал(а) спасибо: 140
Поблагодарили 80 раз(а) в 33 сообщениях
Репутация: 28362
По умолчанию Как всегда вовремя

Написал тему, потом догадался погуглить. нашел крайне простой способ преобразования:
Код:
  s:=Edit1.Text;
  FsList[NumOfFs]:=PAnsiChar(s);
или
Код:
NF:=PAnsiChar(Edit1.text);
Интересная функция.. но компилятор более не ругается, пока все работает
MrSTEP вне форума   Ответить с цитированием
Старый 03.05.2010, 19:43   #3 (permalink)
MrSTEP
一步一步地会到目的
 
Аватар для MrSTEP
 
Регистрация: 09.05.2009
Адрес: Черноземье
Сообщений: 10,939
Записей в дневнике: 10
Сказал(а) спасибо: 140
Поблагодарили 80 раз(а) в 33 сообщениях
Репутация: 28362
По умолчанию

не, что-то тут не так.. кто знает что-либо об этом типе, отпишитесь?
MrSTEP вне форума   Ответить с цитированием
Старый 04.05.2010, 12:22   #4 (permalink)
MrSTEP
一步一步地会到目的
 
Аватар для MrSTEP
 
Регистрация: 09.05.2009
Адрес: Черноземье
Сообщений: 10,939
Записей в дневнике: 10
Сказал(а) спасибо: 140
Поблагодарили 80 раз(а) в 33 сообщениях
Репутация: 28362
По умолчанию

Хотя дело даже не в типе, а в самой функции CopyFile. Ибо работать она не хочет ни коим образом, даже самым простейшим:
Код:
  CopyFile('C:\WINDOWS\Tasks','G:\',true);
Может для нее надо какой-то модуль подключить?
MrSTEP вне форума   Ответить с цитированием
Старый 20.05.2010, 21:50   #5 (permalink)
MrSTEP
一步一步地会到目的
 
Аватар для MrSTEP
 
Регистрация: 09.05.2009
Адрес: Черноземье
Сообщений: 10,939
Записей в дневнике: 10
Сказал(а) спасибо: 140
Поблагодарили 80 раз(а) в 33 сообщениях
Репутация: 28362
По умолчанию

Так, покурил мануалы, оказывается, ее можно применять только для копирования отдельных файлов, и записывается она несколько по-другому:
Код:
 CopyFile(PСhar('C:\1.txt'),PChar('D:\2.txt)',true);
(это на будущее, вдруг кому пригодится). А для копирования папок надо писать нечто другое..
MrSTEP вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 04:10.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.