Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.10.2007, 01:58   #1
Volkogriz
Форумчанин
 
Аватар для Volkogriz
 
Регистрация: 11.10.2007
Сообщений: 384
Восклицание Проблема с копированием каталога!!!

Доброе время суток!
Проблема компиляции!
в чем прикол ?

Цитата:
uses
FileCtrl;

function FullDirectoryCopy(SourceDir, TargetDir: string; StopIfNotAllCopied,
OverWriteFiles: Boolean): Boolean;
var
SR: TSearchRec;
I: Integer;
begin
Result := False;
SourceDir := IncludeTrailingBackslash(SourceDir) ;
TargetDir := IncludeTrailingBackslash(TargetDir) ;
if not DirectoryExists(SourceDir) then
Exit;
if not ForceDirectories(TargetDir) then
Exit;

I := FindFirst(SourceDir + '*', faAnyFile, SR);
try
while I = 0 do
begin
if (SR.Name <> '') and (SR.Name <> '.') and (SR.Name <> '..') then
begin
if SR.Attr = faDirectory then
Result := FullDirectoryCopy(SourceDir + SR.Name, TargetDir + SR.NAME,
StopIfNotAllCopied, OverWriteFiles)
else if not (not OverWriteFiles and FileExists(TargetDir + SR.Name))
then
Result := CopyFile(Pchar(SourceDir + SR.Name), Pchar(TargetDir +
SR.Name), False)
else
Result := True;
if not Result and StopIfNotAllCopied then
exit;
end;
I := FindNext(SR);
end;
finally
SysUtils.FindClose(SR);
end;
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
FullDirectoryCopy ('C:\a', 'D:\b');//[Error] Unit1.pas(67): Not enough actual parameters
end;

end.
Пишу в Delphi 5 !!!
Помогите исправить эту ошибку пожалуйста!!!
С уважением Volkogriz!!!
Не количеством плюсов измеряется репутация человека...!
Volkogriz вне форума Ответить с цитированием
Старый 17.10.2007, 08:44   #2
Баламут
Баламучу слегка...
Участник клуба
 
Аватар для Баламут
 
Регистрация: 01.11.2006
Сообщений: 1,585
По умолчанию

Не смущает, что в объявлении функции фигурирует 4 параметра, а при вызове передается только 2?
Баламут вне форума Ответить с цитированием
Старый 17.10.2007, 08:57   #3
AlDelta
Реанимируюсь...
Участник клуба
 
Аватар для AlDelta
 
Регистрация: 19.07.2007
Сообщений: 1,445
Сообщение Копирование файлов.

Попробуй так, получится короче и быстрее:

Код:
......
uses
  ..., ShellApi;
......
procedure TForm1.Button1Click(Sender: TObject);
var OpStruc: TSHFileOpStruct;
frombuf, tobuf: Array [0..128] of Char;
begin
FillChar( frombuf, Sizeof(frombuf), 0 );
FillChar( tobuf, Sizeof(tobuf), 0 );
StrPCopy( frombuf, 'd:\temp\*.*' );//Откуда
StrPCopy( tobuf, 'd:\1' );//Куда
with OpStruc do begin
   Wnd := Handle;
   wFunc := FO_COPY;
   pFrom := @frombuf;
   pTo := @tobuf;
   fFlags := FOF_NOCONFIRMATION or FOF_RENAMEONCOLLISION;
   fAnyOperationsAborted := False;
   hNameMappings := Nil;
   lpszProgressTitle := Nil;
end;
ShFileOperation( OpStruc );
end;
Цитата:
FullDirectoryCopy ('C:\a', 'D:\b', , );//[Error] Unit1.pas(67): Not enough actual parameters
При вызове функции надо передавать ей 4 параметра;
Цитата:
function FullDirectoryCopy(SourceDir{1}, TargetDir{2}: string; StopIfNotAllCopied{3},
OverWriteFiles{4}: Boolean): Boolean;
Выбор из двух зол, подобен выбору из двух близнецов. Результат будет один - они родственники!
Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте.
Правила форума => Правила раздела => Для общего развития => Помощь студентам => Перед тем, как создавать тему, скачайте себе...
P.S.: форум не песочница (с)
название статьи на сайте MS: "Отмена принудительного отключения автоматического запуска в реестре Windows"

Последний раз редактировалось AlDelta; 17.10.2007 в 09:08. Причина: Дополнение.
AlDelta вне форума Ответить с цитированием
Старый 17.10.2007, 10:56   #4
Volkogriz
Форумчанин
 
Аватар для Volkogriz
 
Регистрация: 11.10.2007
Сообщений: 384
По умолчанию

Доброе время суеок!!!
Спасибо всем !!!
Дальше разберусь!!!
С уважением Volkogriz!!!
Не количеством плюсов измеряется репутация человека...!
Volkogriz вне форума Ответить с цитированием
Старый 17.10.2007, 13:08   #5
Volkogriz
Форумчанин
 
Аватар для Volkogriz
 
Регистрация: 11.10.2007
Сообщений: 384
По умолчанию

AlDelta
Я поменял флаги но не выходит то что я хочу!!!
Мне надо что бы при копированьи коталога не выводилось "этот файл уже сушиствует" А просто его пирипиала!
Я пишу инстолятор к игре!
Вобщем "откроется программа изменив разрешение монитора появится штото вроде меню игры и вдруг вылитит сообъщение "этот файл уже сушиствует переписать" Прикол выдит правда?"
Памаги пожалусто зделать кросива!!!

Цитата:
procedure TForm1.Button1Click(Sender: TObject);
var OpStruc: TSHFileOpStruct;
frombuf, tobuf: Array [0..128] of Char;
begin
FillChar( frombuf, Sizeof(frombuf), 0 );
FillChar( tobuf, Sizeof(tobuf), 0 );
StrPCopy( frombuf, 'editor\ÁÀÒ\*.*' );//Îòêóäà
StrPCopy( tobuf, 'C:\editor' );//Êóäà
with OpStruc do begin
Wnd := Handle;
wFunc := FO_COPY;
pFrom := @frombuf;
pTo := @tobuf;
fFlags := FOF_NOCONFIRMMKDIR or FOF_MULTIDESTFILES;
fAnyOperationsAborted := False;
hNameMappings := Nil;
lpszProgressTitle := Nil;
end;
ShFileOperation( OpStruc );
end;
И ещё вопрос как привезать ProgressBar к копированью дирикторий и файлов, вобщем весь просесс копированья!
И можно ли зделать ProgressBar по рисунку, тапа круглый, квадратный или триугольный пофигу!!!
С уважением Volkogriz!!!
Не количеством плюсов измеряется репутация человека...!
Volkogriz вне форума Ответить с цитированием
Старый 17.10.2007, 13:30   #6
Maslan
Форумчанин
 
Регистрация: 15.10.2007
Сообщений: 147
По умолчанию

Progressbar..... на закладке Samples компонент TGauge. Свойство Kind.
А с копированием... Пойду пообедаю , а потом чего-нить придумаем.
Т.е. тебе нужна функция рекурсивного копирования файлов с перезаписью существующих?
Maslan вне форума Ответить с цитированием
Старый 17.10.2007, 13:56   #7
Volkogriz
Форумчанин
 
Аватар для Volkogriz
 
Регистрация: 11.10.2007
Сообщений: 384
По умолчанию

Цитата:
Сообщение от Maslan Посмотреть сообщение
Progressbar..... на закладке Samples компонент TGauge. Свойство Kind.
А с копированием... Пойду пообедаю , а потом чего-нить придумаем.
Т.е. тебе нужна функция рекурсивного копирования файлов с перезаписью существующих?
Да!!!
Не количеством плюсов измеряется репутация человека...!
Volkogriz вне форума Ответить с цитированием
Старый 17.10.2007, 14:43   #8
Maslan
Форумчанин
 
Регистрация: 15.10.2007
Сообщений: 147
По умолчанию

Практически твой же код..... в чём проблема-то была?
Возможно это из-за D5? Я на 2006 написал вот это:
Цитата:
Procedure CopyDir2Dir(Src:PChar;Dst:PChar);
Var SR: TSearchRec; I: Integer;
begin
if src[Length(src)-1]<>'\' then src:=PChar(src+'\');
if dst[Length(dst)-1]<>'\' then dst:=PChar(dst+'\');;
if not((DirectoryExists(src))and(Force Directories(dst))) then exit;
I := FindFirst(src + '*', faAnyFile , SR);
while I = 0 do
begin
if (SR.Name <> '.') and (SR.Name <> '..')
then
begin
if SR.Attr = faDirectory
then
CopyDir2Dir(PChar(src+SR.Name),PCha r(dst+SR.Name))
else
CopyFile(PChar(src+SR.Name),PChar(d st+SR.Name),False);
I:=FindNext(SR);
end
else I:=FindNext(SR);
FindClose(SR);
end;
end;
Если не пойдёт (хотя я никаких модулей в Uses не добавлял - только стандартные) пиши - дома посмотрю на D5
Maslan вне форума Ответить с цитированием
Старый 17.10.2007, 14:48   #9
Volkogriz
Форумчанин
 
Аватар для Volkogriz
 
Регистрация: 11.10.2007
Сообщений: 384
По умолчанию

Благодарю !!!
Буду разбератся!!
Не количеством плюсов измеряется репутация человека...!
Volkogriz вне форума Ответить с цитированием
Старый 17.10.2007, 14:59   #10
Volkogriz
Форумчанин
 
Аватар для Volkogriz
 
Регистрация: 11.10.2007
Сообщений: 384
По умолчанию

Цитата:
Сообщение от Maslan Посмотреть сообщение
Практически твой же код..... в чём проблема-то была?
Возможно это из-за D5? Я на 2006 написал вот это:

Если не пойдёт (хотя я никаких модулей в Uses не добавлял - только стандартные) пиши - дома посмотрю на D5
Матирица на чом свет стоит!!!!!!!!!!
И Dtlphi 5 и 7;
Буду капать немогу понять что ему нихватает!!!
Не количеством плюсов измеряется репутация человека...!
Volkogriz вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
добавление строки копированием... ГОСЕАН БД в Delphi 3 13.08.2008 10:32
Помогите пожалуйста с копированием файла ==Spider== Общие вопросы Delphi 2 21.05.2008 10:54
Проблема с копированием Ronni10 Операционные системы общие вопросы 1 29.04.2008 09:39
картинки из каталога Var17 PHP 2 06.03.2008 22:05
Копирование КАТАЛОГА Рустам Общие вопросы Delphi 10 13.10.2007 12:22