• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Преобразование типа TCaption (String) в PAnsiChar

  • Автор темы Автор темы MrSTEP
  • Дата начала Дата начала

MrSTEP

一步一步地会&#
Почётный участник
Регистрация
9 Май 2009
Сообщения
10,939
Реакции
225
Баллы
63
Преобразование типа TCaption (String) в PAnsiChar

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

Написал тему, потом догадался погуглить. нашел крайне простой способ преобразования:
Код:
  s:=Edit1.Text;
  FsList[NumOfFs]:=PAnsiChar(s);
или
Код:
NF:=PAnsiChar(Edit1.text);
Интересная функция.. но компилятор более не ругается, пока все работает
 
не, что-то тут не так.. кто знает что-либо об этом типе, отпишитесь?
 
Хотя дело даже не в типе, а в самой функции CopyFile. Ибо работать она не хочет ни коим образом, даже самым простейшим:
Код:
  CopyFile('C:\WINDOWS\Tasks','G:\',true);
Может для нее надо какой-то модуль подключить?
 
Так, покурил мануалы, оказывается, ее можно применять только для копирования отдельных файлов, и записывается она несколько по-другому:
Код:
 CopyFile(PСhar('C:\1.txt'),PChar('D:\2.txt)',true);
(это на будущее, вдруг кому пригодится). А для копирования папок надо писать нечто другое..
 
Назад
Сверху