|
Вопрос # 1 083/ вопрос решён / |
|
Здрасти, Как проверить существует ли фаил (*txt) и если нет - то создать его?
 |
Вопрос задал: Аксион (статус: 4-ый класс)
Вопрос отправлен: 3 ноября 2007, 18:26
Состояние вопроса: решён, ответов: 3.
|
Ответ #1. Отвечает эксперт: ANBsoft
Здрав будь, Блазер!
Процедура дописывает строку в файл если он есть, и создает файл если его нет.
Procedure SaveToMyFile(s:String);
Var f:TextFile;
Begin
AssignFile(f,'Debug.txt');
if FileExists('Debug.txt') then Append(f)
else Rewrite(f);
writeln(f,s);
CloseFile(f);
End;
 |
Ответ отправил: ANBsoft (статус: Студент)
Время отправки: 3 ноября 2007, 18:50
Оценка за ответ: 5
Комментарий к оценке: спс
|
Ответ #2. Отвечает эксперт: Николай Рубан
Здравствуйте, Блазер!
Можно воспользоваться стандартной функцией проверки на существование файла - FileExists(), которая возвращает значени TRUE, если файл существует и FALSE в противном случае.
Например так:
var FileName:string;
f:TextFile;
begin
...
FileName:='c:\temp1.txt'; //имя необходимого файла
if not FileExists(FileName) then
begin
AssignFile(f,FileName);
Rewrite(f);
CloseFile(f);
end;
...
end;
...
Good Luck!!!
 |
Ответ отправил: Николай Рубан (статус: 10-ый класс)
Время отправки: 3 ноября 2007, 18:52
Оценка за ответ: 5
Комментарий к оценке: спасибки
|
Ответ #3. Отвечает эксперт: Ilia Ermakov
Здравствуйте, Блазер!
А можно сделать как в приложении, это конечно больший изврат, чем FileExists(), но тоже работает.
Приложение: Переключить в обычный режим- var
- ChechHFile: THandle;
- begin
- ChechHFile:=CreateFile(pchar(FileName),GENERIC_READ,FILE_SHARE_READ,nil,OPEN_EXISTING,0,0);
- if ChechHFile=INVALID_HANDLE_VALUE then begin
-
- end
- else begin
-
- end;
- end;
 |
Ответ отправил: Ilia Ermakov (статус: 1-ый класс)
Время отправки: 4 ноября 2007, 02:33
Оценка за ответ: 5
Комментарий к оценке: спасибо
|
Мини-форум вопроса
Всего сообщений: 1; последнее сообщение — 4 ноября 2007, 18:18; участников в обсуждении: 1.
|
Ilia Ermakov (статус: 1-ый класс), 4 ноября 2007, 18:18 [#1]:
" если нет - то создать его? "
Да, Насчет как создать, можно воспользоваться той же функцией, но с другими параметрами: GENERIC_WRITE и CREATE_ALWAYS.
var
ChechHFile: THandle;
begin
ChechHFile:=CreateFile(pchar(FileName),GENERIC_READ,FILE_SHARE_READ,nil,OPEN_EXISTING,0,0);
if ChechHFile=INVALID_HANDLE_VALUE then begin
// Файла нет
ChechHFile:=CreateFile(pchar(FileName),GENERIC_WRITE,FILE_SHARE_READ,nil,CREATE_ALWAYS,0,0);
end
else begin
// Файл есть
end;
end;
//В конце не забудь закрыть хэндл
CloseHandle(ChechHFile);
|
31 января 2011, 19:23: Статус вопроса изменён на решённый (изменил модератор Ерёмин А.А.): Автоматическая обработка (2 и более ответов с оценкой 5)
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|