Re: Помогите со чтением файла.
От: bercsoft Россия http://www.34.ru/gameclient/index.html
Дата: 27.02.03 08:42
Оценка:
Здравствуйте, Mitallic, Вы писали:

M>Здравствуйте.


M>Я работаю с файлами:

M>
M>    FILE *file = fopen(FileName,"r+b");
M>    ...
M>    fclose(file);
M>

M>Мне необходимо открыть файл чтение + запись.
M>Но вот проблемка: если файл — read only — то он не открывается.
M>Подскажите, пожалуйста, как ее побороть.
M>Зарание благодарен.


Код работающий в C++Builder, думаю разберешься.
Все это находится в какой-то из этих библиотек:
#include "fstream.h"
#include "sys\stat.h"
#include "dos.h"
#include "io.h"
#include <stdio.h>

if ((F = fopen("Test.zzz", "r+t")) == NULL)
{
F = fopen("Test.zzz", "a+t");
ShowMessage ("Файл не удалось открыть и он был создан");
}

//-- Добавляет к атрибутам файла атрибут "невидимый" --
attrib = _rtl_chmod("Test.zzz", 0);
_rtl_chmod("Test.zzz", 1, attrib | FA_HIDDEN);

//-- Установка атрибута файла "невидимый", заданного строкой SFile -------------
attrib = _rtl_chmod("Test.zzz", 1, FA_HIDDEN);

//-- Отображает в окне Memo1 атрибуты файла SFile -------------
attrib = _rtl_chmod("Test.zzz", 0);
if (attrib == -1)
{
Memo1->Lines->Add("SrP<LB RTXDx " + IntToStr(errno));
return;
}
SFile1 = SFile;
if (attrib & FA_RDONLY)
Memo1->Lines->Add(SFile1 + " — файл только для чтения");
if (attrib & FA_SYSTEM)
Memo1->Lines->Add(SFile1 + " — системный файл");
if (attrib & FA_HIDDEN)
Memo1->Lines->Add(SFile1 + " — невидимый файл");
if (attrib & FA_DIREC)
Memo1->Lines->Add(SFile1 + " — каталог");
if (attrib & FA_ARCH)
Memo1->Lines->Add(SFile1 + " — архивный файл");
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.