Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.02.25;
Скачать: CL | DM;

Вниз

CreateFile   Найти похожие ветки 

 
heady   (2004-02-12 18:28) [0]

Я был бы вам крайне благодарен, если бы вы привели мне пример
использования CreateFile и обработки ошибки создания файла, ни как не могу разобраться с нужными параметрами, в help"e и в Фаронове эта процедура описана плоховато :(
ну или хотя бы как заставить работать
MyFile:TextFile;
assign(MyFile,Edit1.Text); а то выдает Incompatible types:
"TPersistent" and "Text"


 
MBo ©   (2004-02-12 18:36) [1]

F1 AssignFile (с примером)


 
Fay ©   (2004-02-12 18:38) [2]

var
f : Cardinal;
begin
f := CreateFile("c:\1.1", GENERIC_WRITE, FILE_SHARE_READ, nil, CREATE_ALWAYS, 0, 0);
if f = Cardinal(-1) then
begin
Application.MessageBox("Фигня получается, братцы!");
Exit;
end;
CloseHandle(f);
end;


 
Mystic ©   (2004-02-12 18:41) [3]

SysUtils:

function FileCreate(const FileName: string): Integer;
begin
Result := Integer(CreateFile(PChar(FileName), GENERIC_READ or GENERIC_WRITE,
0, nil, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0));
end;


 
heady   (2004-02-12 18:42) [4]

если пишу f := CreateFile("c:\1.1", GENERIC_WRITE, FILE_SHARE_READ, nil, CREATE_ALWAYS, 0, 0);
то ошибка:Incompatible types: "TCaption" and "PAnsiChar"


 
Mystic ©   (2004-02-12 18:44) [5]

function FileOpen( const FileName: string; Mode: LongWord): Integer;
const
AccessMode: array[0..2] of LongWord = (
GENERIC_READ,
GENERIC_WRITE,
GENERIC_READ or GENERIC_WRITE);
ShareMode: array[0..4] of LongWord = (
0,
0,
FILE_SHARE_READ,
FILE_SHARE_WRITE,
FILE_SHARE_READ or FILE_SHARE_WRITE);
begin
Result := Integer(CreateFile(PChar(FileName), AccessMode[Mode and 3],
ShareMode[(Mode and $F0) shr 4], nil, OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL, 0));
end;

function FileCreate( const FileName: string): Integer;
begin
Result := Integer(CreateFile(PChar(FileName), GENERIC_READ or GENERIC_WRITE,
0, nil, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0));
end;

constructor TFileStream.Create( const FileName: string; Mode: Word);
begin
if
Mode = fmCreate then
begin
FHandle := FileCreate(FileName);
if FHandle < 0 then
raise
EFCreateError.CreateResFmt(@SFCreateError, [FileName]);
end else
begin
FHandle := FileOpen(FileName, Mode);
if FHandle < 0 then
raise
EFOpenError.CreateResFmt(@SFOpenError, [FileName]);
end;
end;


 
heady   (2004-02-12 18:44) [6]

очепятался :) f := CreateFile(Edit2.Text{"c:\1.1"}, GENERIC_WRITE, FILE_SHARE_READ, nil, CREATE_ALWAYS, 0, 0);
ошибка:Incompatible types: "TCaption" and "PAnsiChar"


 
heady   (2004-02-12 18:46) [7]

Mystic раскажи pz что function FileOpen делает? :)


 
Amoeba ©   (2004-02-12 18:47) [8]

По-видимому из-за того, что 1-й параметр - строковая константа, а не переменная.


 
heady   (2004-02-12 18:53) [9]

Amoeba так там вроде бы и должен идти путь к файлу...


 
Mystic ©   (2004-02-12 18:57) [10]

Открывает файл (задается строкой) в указаном режиме и возвращает его дескриптор. Описана в помощи.


 
heady   (2004-02-12 19:07) [11]

касательно FileCreate - что она вернет если FileName некорректен? еще вопрос - считается ли созданный таким образом файл открытым? и как его теперь открыть для записи?

и все таки идеальным было бы заставить работать
MyFile:TextFile;
assign(MyFile,Edit1.Text);
а то выдает Incompatible types: "TPersistent" and "Text" как бы эти типы сделать совместимыми?


 
MBo ©   (2004-02-13 07:51) [12]

>heady
Зря ты [1] игнорировал...
И вообще, скорее на delphi.vtpc.com в Лицей, на уроки А. Подгорецкого...


 
Anatoly Podgoretsky ©   (2004-02-13 09:10) [13]

heady (12.02.04 19:07) [11]
Возвращает если отарыт, как можно открыть если имя не корректо, что то типа я чего то там открыла на всякий случай, чтобы не сильно растраивался. Как можно открыть для записи если имя не корректно?

Читаем еще раз [1]
И не лезь в файлы пока не поямешь что это такое хотя бы в зачатках. Иначе ты таких делов в системе натворишь, слабо не будет.



Страницы: 1 вся ветка

Текущий архив: 2004.02.25;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.019 c
7-80334
DDS
2003-12-08 00:02
2004.02.25
Как отловить нажатие средней клавиши мыша?


1-79966
plintus
2004-02-13 16:10
2004.02.25
Как из TWebBrowser вытащить HTML код страницы?


14-80141
_none_
2004-02-02 11:26
2004.02.25
Что такое


4-80367
SH
2003-12-17 14:17
2004.02.25
Hint в TStringGrid


1-80016
heady
2004-02-12 18:28
2004.02.25
CreateFile