Форум: "Основная";
Текущий архив: 2003.10.13;
Скачать: [xml.tar.bz2];
ВнизКак проверить существование файла. Найти похожие ветки
← →
Alexandr Bratunets (2003-09-30 08:43) [0]Нужно проверить, есть файл с настройками или нет. Если его нет то он создается. Сейчас это работает так:
procedure TForm1.StartProgram(Sender: TObject);
begin
IniFileName := ExtractFileDir(ParamStr(0)) + "\test.ini";
IniFile := TIniFile.Create(IniFileName);
if(IniFile.SectionExists("General")) then ReadINIFile
else SaveINIFile
end;
← →
Думкин (2003-09-30 08:47) [1]А зачем так?
Если настроечного файла с настройками нет еще - есть значения по умолчанию.
← →
DimChan (2003-09-30 08:54) [2]А не проще настройки хранить/создавать в Реестре?
← →
Verg (2003-09-30 09:04) [3]
> procedure TForm1.StartProgram(Sender: TObject);
var ife : boolean;
> begin
> IniFileName := ExtractFileDir(ParamStr(0)) + "\test.ini";
ife:=FileExists(IniFileName);
> IniFile := TIniFile.Create(IniFileName);
> if ife then ReadINIFile
> else SaveINIFile
> end;
> Думкин © (30.09.03 08:47) [1]
> А зачем так?
> Если настроечного файла с настройками нет еще - есть значения
> по умолчанию.
Да, но файл-то так и не задастся.
Иногда надо бывает, чтобы прога создала INI файл со всеми нужными разделами и значениями именно по умолчанию, если этого INI не было.
← →
Кулюкин Олег (2003-09-30 09:08) [4]> Нужно проверить, есть файл с настройками или нет
Если надо проверить существование файла:
function FileExists(const FileName: string): Boolean;
Description
FileExists returns True if the file specified by FileName exists. If the file does not exist, FileExists returns False.
← →
ads (2003-09-30 09:10) [5]By the way:
FileExists(*.*) - вернет TRUE...
- это отвратительно....
← →
Palladin (2003-09-30 09:16) [6]
> ads (30.09.03 09:10) [5]
почему?
← →
Verg (2003-09-30 09:22) [7]
> ads (30.09.03 09:10) [5]
> By the way:
> FileExists(*.*) - вернет TRUE...
> - это отвратительно....
Del *.* - сработает, что тоже гадко.
← →
Verg (2003-09-30 09:42) [8]Кстати, если уж говорить о приколах FileExists, то стоит отметить лишь одно - файлы с датой ранее 1980 года для нее не существуют.
← →
ads (2003-09-30 09:56) [9]> Palladin
потому что пользователь в строке ввода может все что угодно написать...
и мне придется синтаксис проверять...
а FileExists - (как следует из названия) - должна проверять существует ли ФАЙЛ. Один. блин.
← →
ads (2003-09-30 10:01) [10]> Verg
Del - задокументированная функция обработчика пользовательского ввода, поддерживающая маски файлов....
FileExists - функция библиотеки - с красивым названием но глупой реализацией...
Вот помню в Delphi 1 - была реализованна через FileAge()
...
← →
Palladin (2003-09-30 10:01) [11]
> ads (30.09.03 09:56) [9]
ты знаешь... есть такая функция pos...
думаю ты не умрешь если напишешь подобное
if (pos("*",edit1.text)<>0) or (pos("?",edit1.text)<>0) then ShowMessage("Недопустимые символы в имени файла");
← →
Verg (2003-09-30 10:05) [12]
> Вот помню в Delphi 1 - была реализованна через FileAge()
... и до сих пор.
> потому что пользователь в строке ввода может все что угодно
> написать...
> и мне придется синтаксис проверять...
Вот вот. Одни, блин, голову ломают как сделать так, чтобы пользователь именно все что угодно написать мог, а другие наоборот....
← →
ads (2003-09-30 10:05) [13]Правда сама FileAge оставляет желать лучшего ...
← →
ads (2003-09-30 10:22) [14]> Palladin
Pos - это конечно прекрасно. Тем и радует программирование что всегда можно найти обходной путь...
Можно было бы и функцию FileExists самому написать...
Может я просто много жду от RTL ? Самодокументрованые названия функций, комментарии в документации по Delphi ...
> Verg
не надо путать ввод имени файла в поле ввода и
написание script-a пользователем...
← →
panov (2003-09-30 10:24) [15]Всегда пользовался таким методом и не было проблем:
1. TIniFile.Create;
2. Myparm := ReadString(..,..,"");
3. if MyParm="" then
begin
MyParm=MyString;
WriteString(..,..,MyParm);
end;
Если фала нет, он создается.
Если параметр не задан, то он записывается в файл со значением по умолчанию.
← →
Anatoly Podgoretsky (2003-09-30 10:34) [16]У тебя написано правильно, для ИНИ файлов проверять наличие нет нужды.
← →
BlackKing (2003-09-30 11:59) [17]Pri otkritii programmi popitajsja schitat" nuzhnije znachenija, jesli fajl ne sozdan, podstavjaca znachenija po umolchaniju. A potom ili pri vihode iz programmi ili srazu posle chtenija ili jesho kogda, sohrani eti vse znachenija, fajl sam sozdasca, jesli jesho ne sozdan.
← →
han_malign (2003-09-30 12:45) [18]>panov © (30.09.03 10:24) [15]
>Если фала нет, он создается.
- если не забывать про TIniFile.UpdateFile...
← →
panov (2003-09-30 13:36) [19]>han_malign © (30.09.03 12:45) [18]
Достаточно TIniFile.Free;
← →
Rem (2003-09-30 14:01) [20]
function FileExistsEx(a_sFileName: string): boolean;
var
f: file;
begin
AssignFile(f, a_sFileName);
FileMode := fmOpenRead;
{$I-}
Reset(f);
CloseFile(f);
{$I+}
Result := (IOResult = 0) and (a_sFileName <> "");
end;
← →
Black King (2003-09-30 22:37) [21]Jest" jesho
function FindFirst(const Path: string; Attr: Integer; var F: TSearchRec): Integer;
iz SysUtils :o)
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.10.13;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.01 c