Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.027 c
14-80210
Nikolay M.
2004-01-30 15:03
2004.02.25
Ответы некоторых пользователей на письма вроде


4-80349
LOMic
2003-12-18 10:32
2004.02.25
Здравствуйте. Как получить HWND для SpeedButton ?


3-79581
sergvc
2004-01-28 14:02
2004.02.25
Получить имя таблицы для поля в DBGrid


14-80220
ZeRaM
2004-02-05 15:58
2004.02.25
HTML


1-79836
Grinder
2004-02-10 19:54
2004.02.25
ListView checked





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский