Форум: "Основная";
Текущий архив: 2004.02.25;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.035 c