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

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

Файл


Страницы:   1 2

Bast ©   (2007-08-22 15:51:00) 

Здравствуйте! Есть прога допустим 123.exe она должна себе копировать на Диск Ц в папку программ файлес, но если я воспользуюсь функциекй copy то надо указывать имя проги т.е. copy(123.exe, c:\....), а как быть если у прога уже 312.exe ?


Anatoly Podgoretsky   (2007-08-23 15:10:00) [1]

Кстати в коде нет проверки длины, это ты выдумал.


Anatoly Podgoretsky   (2007-08-23 15:10:00) [2]


> wp2 ©   (23.08.07 11:55) [22]

Это не приведение, а именно функция, кроме того ты код не до конца дочитал.


Leonid Troyanovsky   (2007-08-23 13:12:00) [3]


> wp2 ©   (23.08.07 11:35) [19]
> wp2 ©   (23.08.07 11:40) [20]
> wp2 ©   (23.08.07 11:52) [21]
> wp2 ©   (23.08.07 11:55) [22]

RTFM, RTFM & RTFM.

--
Regards, LVT.


wp2   (2007-08-23 11:55:00) [4]

То я когда-то вроде отлаживал приведение типа PChar.
И что вы думаете я обнаружил, какой именно ассемблерный код?
А никакой! Там была проверка на длину строку (не нулевая ли), а потом return :-)

Вот вам и всё приведение типа... :-)


wp2   (2007-08-23 11:52:00) [5]

Я вот только не вдуплил, что должна возвращать функция StrPCopy?
Вроде тоже возвращает строку...

тогда можно записать

varPC: PChar;
begin
New(PC);
CopyFile(StrPCopy(PC, Application.ExeName), 'c:\test.exe', true);
end;

тоже работает.
Вот только в примерах я нигде не видел, чтобы ее использовали как функцию.


wp2   (2007-08-23 11:40:00) [6]

уточнение:

varPC: PChar;
begin
New(PC);
StrPCopy(PC, Application.ExeName);
CopyFile(PC, 'c:\test.exe', true);
end;

Проверено в Турбо Pascal 7.1 :-)


wp2   (2007-08-23 11:35:00) [7]

>Какая функция переводит String в PAnsiChar? так понятнее?

Хм, а ведь есть такая функция, только не помню как называется. Счас поисчу.
Ага. вот оно. StrPCopy

varPC: PChar;
begin
 StrPCopy(PC, Application.ExeName);
 CopyFile(PC, 'c:\test.exe', true);
end;

вроде так.


Bast   (2007-08-22 23:46:00) [8]


> В руках "умелого" программиста любая программа может стать
> хуже трояна...

:)))))))))))


DrPass   (2007-08-22 23:18:00) [9]


> Bast   (22.08.07 23:17) [16]
> Нет, это не троян

В руках "умелого" программиста любая программа может стать хуже трояна...


Bast   (2007-08-22 23:17:00) [10]

Нет, это не троян


Anatoly Podgoretsky   (2007-08-22 19:16:00) [11]

> Bast  (22.08.2007 17:54:13)  [13]

Теперь дрожите мужики, сами напросились.


grisme   (2007-08-22 18:40:00) [12]

ну троян ведь небось :)


Bast   (2007-08-22 17:54:00) [13]

Всем спасибо


Dib@zol   (2007-08-22 17:22:00) [14]

> [11] Bast   (22.08.07 17:12)

ROFL +1
Объяснено же ж уже!!! PANSIChar()!!! Можно кстати просто PChar()!


Bast   (2007-08-22 17:12:00) [15]

Какая функция переводит String в PAnsiChar? так понятнее?


wp2   (2007-08-22 17:09:00) [16]

Эх, нету на вас С++ там бы вообще погрязли...


wp2   (2007-08-22 17:09:00) [17]

А разве можно просто так самого себя копировать без хакерских методов.

> [Error] Unit1.pas(28): Incompatible types: 'String' and 'PAnsiChar'
Бери словарь англо-русский (должен быть по-любому). И переводи.
"Несовместимые типы String и PAnsiChar"

Теперь головой думаем, что надо сделать чтобы они были совместимыми?

ПРАВИЛЬНО!

Привести к нужному типу.
CopyFile(PAnsiChar(Application.ExeName),'c:\test.exe',true);

Как будто раньше никогда не приходилось типы приводить....


Сергей М.   (2007-08-22 16:53:00) [18]


> Bast   (22.08.07 16:46) [7]
>
> Пытаюсь сделать вот так


> выдает ошибку


И ?

Твои-то действия каковы в этой ситуации ?

Кроме трындёжа в форуме ?

Спрасвку ты уже проштудировал ?

Что--то в ней не понял ?

Что ?


Bast   (2007-08-22 16:46:00) [19]

Пытаюсь сделать вот так:
CopyFile(Application.ExeName,'c:\test.exe',true);
Но выдает ошибку:
Build
 [Error] Unit1.pas(28): Incompatible types: 'String' and 'PAnsiChar'
 [Fatal Error] Project2.dpr(5): Could not compile used unit 'Unit1.pas'


Сергей М.   (2007-08-22 16:26:00) [20]


> если 123.exe переименовать в 321.exe то она уже не скорируется


Абракадабра ..


Страницы:   1 2

Наверх

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