Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.12.2010, 13:34   #1
Aleksey1989
Форумчанин
 
Регистрация: 25.04.2010
Сообщений: 127
По умолчанию Объект TFileStream

Здравствуйте. При создании файла командой TFileStream.Create(п1,п2,п3) нужно описать три параметра. Первые два-понятно, а вот с третьим у меня возникли некоторые сложности, а именно: при использовании в качестве параметра fmShareDenyNone или fmShareExclusive при попытке открыть файл txt возникает запрет на доступ. Тогда в чём между данными значениями отличие?

Код:
 file1:=TFileStream.Create('1.txt',fmOpenRead,fmShareDenyNone);
Aleksey1989 вне форума Ответить с цитированием
Старый 17.12.2010, 14:57   #2
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

fmShareExclusive - файл недоступен для открытия другими приложениями
fmShareDenyWrite - другие приложения могут читать данные из файла
fmShareDenyRead - другие приложения могуть писать данные в файл
fmShareDenyNone - другие приложения могут производить с файлом любые операции
SERG1980 вне форума Ответить с цитированием
Старый 17.12.2010, 15:05   #3
Aleksey1989
Форумчанин
 
Регистрация: 25.04.2010
Сообщений: 127
По умолчанию

Почему я тогда не могу открыть текстовый файл при любом значении данного параметра?
Aleksey1989 вне форума Ответить с цитированием
Старый 17.12.2010, 15:33   #4
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

ну и откройте его так
Код:
 file1:=TFileStream.Create('1.txt',fmOpenRead)
SERG1980 вне форума Ответить с цитированием
Старый 17.12.2010, 15:38   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А он еще никем не открыт случайно?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 17.12.2010, 15:58   #6
Aleksey1989
Форумчанин
 
Регистрация: 25.04.2010
Сообщений: 127
По умолчанию

Цитата:
Сообщение от SERG1980 Посмотреть сообщение
ну и откройте его так
Код:
 file1:=TFileStream.Create('1.txt',fmOpenRead)
Но третий параметр как тогда использовать: просто интересно в чём проблема?

Больше этот файл ни чем не используется.
Aleksey1989 вне форума Ответить с цитированием
Старый 01.06.2012, 15:16   #7
avd
Пользователь
 
Регистрация: 06.06.2010
Сообщений: 79
По умолчанию

Поднимем тему.
Честным образом часа два убил чтобы решить проблему. Не вышло.
Может кто объяснит, что не так.

Код:
procedure TForm2.Button1Click(Sender: TObject);
var
  fStream: TFileStream;
  strList: tStringList;
begin
  fStream := TFileStream.Create('c:\11.txt', fmCreate or fmOpenReadWrite or fmShareDenyNone);
  fStream.Seek(0, soFromEnd);
  fStream.Write(AnsiString(TimeToStr(Time))[1], 8);

  strList := TStringList.Create;
  strList.LoadFromFile('c:\11.txt'); // ТУТА ИСКЛЮЧЕНИЕ
  strList.Free;
  fStream.Free;
end;
avd вне форума Ответить с цитированием
Старый 01.06.2012, 15:30   #8
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

Код:
procedure TStrings.LoadFromFile(const FileName: string);
var
  Stream: TStream;
begin
  Stream := TFileStream.Create(FileName, fmOpenRead or fmShareDenyWrite);
  try
    LoadFromStream(Stream);
  finally
    Stream.Free;
  end;
end;
вот такие редиски были в борланде, не удивительно, что они прогорели
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 01.06.2012, 15:44   #9
avd
Пользователь
 
Регистрация: 06.06.2010
Сообщений: 79
По умолчанию

Спасибо!

Редиски не только в борланде, но оказывается и наши песатили которые пишут книги типа "Delphi. Полное руководство"
avd вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Шаблоны - нужно создать объект класса abc в котором вместо aa использовался бы объект класса fff? Farrel Общие вопросы C/C++ 2 13.11.2010 17:37
добавить в объект объект. the_deer_one Общие вопросы C/C++ 7 10.09.2010 12:17
проблемы с TFileStream andrey4623 Общие вопросы Delphi 9 01.11.2007 20:44
TFilestream UnD)eaD)Snake Win Api 1 27.09.2007 21:22