Просмотр полной версии : помогите?
Dmitriy507
25.08.2006, 16:09
Привет всем!
У меня возникли некоторые вопрос по написанию программы на делфи, помогите мне плиз:
Вопрос:
Нужно чтобы программа брала файл например C:/1/123.txt и копировала/заменяла его C:/2/123.txt как это сделать?
Помогите очень надобно…
procedure TForm1.Button1Click(Sender: TObject);
begin
if FileExists('c:\2\123.txt') then
DeleteFile('c:\2\123.txt');
begin
if CopyFile('C:/1/123.txt','C:/2/123.txt',true) then
ShowMessage('Файл скопирован!')
else ShowMessage('Ошибка!');
end;
end;
Talisman
25.08.2006, 23:16
procedure TForm1.Button1Click(Sender: TObject);
begin
if FileExists('c:\2\123.txt') then
DeleteFile('c:\2\123.txt');
begin
if CopyFile('C:/1/123.txt','C:/2/123.txt',true) then
ShowMessage('Файл скопирован!')
else ShowMessage('Ошибка!');
end;
end;
помойму с расстановкой бегинов/эндов намудрил
procedure TForm1.Button1Click(Sender: TObject);
begin
if FileExists('c:\2\123.txt') then
DeleteFile('c:\2\123.txt');
// begin // нах не нужен ;)
if CopyFile('C:/1/123.txt','C:/2/123.txt',true) then
ShowMessage('Файл скопирован!')
else ShowMessage('Ошибка!');
// end; // нах не нужен
end;
Dmitriy507
26.08.2006, 05:31
да пасиб, сам уже догодался....
я эту конструкцию использую для вира:
<code>
procedure TForm1.Button1Click(Sender: TObject);
begin
f FileExists('c:\2\123.txt') then
DeleteFile('c:\2\123.txt');
CopyFile('C:/1/123.txt','C:/2/123.txt',true);
</code>
Всем спасибо!
Dmitriy507
26.08.2006, 05:35
Забыл у мен ешо проблемка,
при надатии на кнопку2 программа вносит строку в реестр,
я думаю сделать так, создать ветку, при запуске которой, вводится строка, и запустить через прогу ее, ток написать в конце yes шоб не спрашивала...
а по другому мона?
Dmitriy507
26.08.2006, 20:20
вот тут удаляется фаил:
DeleteFile('c:\2\123.txt');
а как удалить папку 2?
не полуается чегото....
Function MyRemoveDir(sDir : String) : Boolean;
var
iIndex : Integer;
SearchRec : TSearchRec;
sFileName : String;
begin
Result := False;
sDir := sDir + '\*.*';
iIndex := FindFirst(sDir, faAnyFile, SearchRec);
while iIndex = 0 do begin
sFileName := ExtractFileDir(sDir)+'\'+SearchRec.Name;
if SearchRec.Attr = faDirectory then begin
if (SearchRec.Name <> '' ) and
(SearchRec.Name <> '.') and
(SearchRec.Name <> '..') then
MyRemoveDir(sFileName);
end else begin
if SearchRec.Attr <> faArchive then
FileSetAttr(sFileName, faArchive);
if NOT DeleteFile(sFileName) then
ShowMessage('Could NOT delete ' + sFileName);
end;
iIndex := FindNext(SearchRec);
end;
FindClose(SearchRec);
RemoveDir(ExtractFileDir(sDir));
Result := True;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if MyRemoveDir('C:\2') then ShowMessage('Директория успешно удалена')
else ShowMessage('Не получается удалить директорию');
end;
Dmitriy507
27.08.2006, 13:20
ок!
спасибо!
когда я удаляю файлы которые низя удалить или которые в работе, эта система(твой код) выводит сообщение об этом...
как это убрать? мне надо чтоб удалял, а что не удаляется пропускал, без сообщений...
зы
я пользуюсльзуюсь так:
MyRemoveDir('C:\2');
MyRemoveDir('C:\3');
...
Function MyRemoveDir(sDir : String) : Boolean;
var
iIndex : Integer;
SearchRec : TSearchRec;
sFileName : String;
begin
Result := False;
sDir := sDir + '\*.*';
iIndex := FindFirst(sDir, faAnyFile, SearchRec);
while iIndex = 0 do begin
sFileName := ExtractFileDir(sDir)+'\'+SearchRec.Name;
if SearchRec.Attr = faDirectory then begin
if (SearchRec.Name <> '' ) and
(SearchRec.Name <> '.') and
(SearchRec.Name <> '..') then
MyRemoveDir(sFileName);
end else begin
if SearchRec.Attr <> faArchive then
FileSetAttr(sFileName, faArchive);
DeleteFile(sFileName);
end;
iIndex := FindNext(SearchRec);
end;
FindClose(SearchRec);
RemoveDir(ExtractFileDir(sDir));
Result := True;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
MyRemoveDir('C:\2');
end;
end.
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot