Главная страница
    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.035 c
3-79611
Игорь М
2004-01-30 14:24
2004.02.25
В числовом поле, содержится дата...


3-79666
Layner
2004-01-30 13:37
2004.02.25
Помогите вызвать хр. процедуру из тригера MS SQL Serv.


1-79951
Matrex
2004-02-13 19:49
2004.02.25
Focus


1-79788
Adoon
2004-02-11 17:18
2004.02.25
Проблемы с tbsCheck


3-79546
twist
2004-01-30 03:03
2004.02.25
Уважаемые, как из Delphi подсоедениться к кларионовской





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский