Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Файловая система
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 27.11.2011, 17:31
tesler tesler вне форума
Прохожий
 
Регистрация: 27.11.2011
Сообщения: 2
Репутация: 10
По умолчанию скопировать файл

здравствуйте!помогите!!!надо скопировать один файл(текстовый) в другой с атрибутами только для чтения используя функции:
CreateFile
CloseHandle
ReadFile
WriteFile
могу ли я просто его скопировать, а потом у второго файла просто -поменять атрибут????
вот что - то сделала...
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation


{$R *.dfm}
procedure SetAttribut( Path: string; r, h, s, a: char );
var
  At: integer;
begin
   At := FileGetAttr( Path );
   if r = '+' then At := At or faReadOnly;

   if h = '-' then At := At or faHidden;

   if s = '+' then At := At or faSysFile;

   if a = '+' then At := At or faArchive;

   FileSetAttr( Path, At );
end;
procedure TForm1.Button1Click(Sender: TObject);

var
  f: TextFile;
  begin
if copyfile('c:1.txt','c:2.txt',true) then
showmessage('Файл успешно скопирован!')
else showmessage('Неудача!');
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  At: integer;
begin

  SetAttribut( 'c:\2.txt', '+', '-', ' ', ' ' );
end;
end.
Ответить с цитированием
  #2  
Старый 27.11.2011, 22:12
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Можешь конечно, только это кака:
Код:
procedure SetAttribut( Path: string; r, h, s, a: char );
var
  At: integer;
begin
   At := FileGetAttr( Path );
   if r = '+' then At := At or faReadOnly;

   if h = '-' then At := At or faHidden;

   if s = '+' then At := At or faSysFile;

   if a = '+' then At := At or faArchive;

   FileSetAttr( Path, At );
end;
...
procedure TForm1.Button2Click(Sender: TObject);
var
  At: integer;
begin
  SetAttribut( 'c:\2.txt', '+', '-', ' ', ' ' );
end;

так "красивее":
Код:
type
  TAttr   = (atReadOnly, atHidden, atSysFile, atArchive);
  TAttSet = set of TAttr;

procedure SetAttribut(Path: string; Attr : TAttrSet);
var
  At: integer;
begin
//  At := FileGetAttr(Path);
  At := 0;
  if atReadOnly in Attr then At := At or faReadOnly;
  if atHidden in Attr then At := At or faHidden;
  if atSysFile in Attr then At := At or faSysFile;
  if atArchive in Attrthen At := At or faArchive;

  FileSetAttr(Path, At);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  SetAttribut( 'c:\2.txt', [atReadOnly]);
end;
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.

Последний раз редактировалось angvelem, 27.11.2011 в 22:28.
Ответить с цитированием
Этот пользователь сказал Спасибо angvelem за это полезное сообщение:
tesler (28.02.2012)
  #3  
Старый 28.02.2012, 14:12
tesler tesler вне форума
Прохожий
 
Регистрация: 27.11.2011
Сообщения: 2
Репутация: 10
По умолчанию

хоть я и поздно отвечаю, но всё равно спасибо, вы мне тогда очень помогли!здесь есть какая-нибудь кнопка "автоматическое спасибо"???(которая ваш рейтинг повышает)
Ответить с цитированием
Этот пользователь сказал Спасибо tesler за это полезное сообщение:
ResTaVRaToR_96 (12.04.2013)
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 02:53.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter