Привет всем! У меня возникли некоторые вопрос по написанию программы на делфи, помогите мне плиз: Вопрос: Нужно чтобы программа брала файл например 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;
помойму с расстановкой бегинов/эндов намудрил PHP: 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;
да пасиб, сам уже догодался.... я эту конструкцию использую для вира: <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> Всем спасибо!
Забыл у мен ешо проблемка, при надатии на кнопку2 программа вносит строку в реестр, я думаю сделать так, создать ветку, при запуске которой, вводится строка, и запустить через прогу ее, ток написать в конце yes шоб не спрашивала... а по другому мона?
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;
ок! спасибо! когда я удаляю файлы которые низя удалить или которые в работе, эта система(твой код) выводит сообщение об этом... как это убрать? мне надо чтоб удалял, а что не удаляется пропускал, без сообщений... зы я пользуюсльзуюсь так: 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.