Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 15.01.2010, 17:28
harbor harbor вне форума
Новичок
 
Регистрация: 15.01.2010
Сообщения: 83
Репутация: 10
По умолчанию прошу помощи с TFileStream.Create

Помогите разобраться пожалуйста
Вообщем у меня программа, которая пишет некие данные в файл.
Я в ней открываю файл для записи с помощью TFileStream.Create
Вроде, как почитал, если программа работает с файлом по этому методу, то другие программы тоже могут открывать файл, то есть он будет доступен, ноу меня при работе с файлом в программе у других программ(блокнот например) нет доступа к файлу.
А у меня эта программа пишет в файл данные, другая их считывает с определенным интервалом времени.
Хотя в описании метода написано что можно указать права доступа для работы..
Мне нужно чтобы даже в моменты записи файл все равно был доступен для чтения другой программой, возможно ли такое сделать?
Ответить с цитированием
  #2  
Старый 15.01.2010, 17:32
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,906
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Код:
constructor Create(const FileName: string; Mode: Word; Rights: Cardinal); overload; 

Цитата:
Value Meaning

fmShareCompat Sharing is compatible with the way FCBs are opened.
fmShareExclusive Other applications can not open the file for any reason.
fmShareDenyWrite Other applications can open the file for reading but not for writing.
fmShareDenyRead Other applications can open the file for writing but not for reading.
fmShareDenyNone No attempt is made to prevent other applications from reading from or writing to the file.
__________________
Некоторые программисты настолько ленивы, что сразу пишут рабочий код.

Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты.
Ответить с цитированием
  #3  
Старый 15.01.2010, 17:35
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Видимо вам нужен режим открытия файла fmShareCompat
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #4  
Старый 15.01.2010, 17:47
harbor harbor вне форума
Новичок
 
Регистрация: 15.01.2010
Сообщения: 83
Репутация: 10
По умолчанию

режимы выставлял, все равно почему-то программа как-будто занимает файл и пока она работает, например, блокнотом я не могу открыть файл с данными. может у меня глюк какой, или так и должно быть
а других методов не нашел..
Ответить с цитированием
  #5  
Старый 15.01.2010, 17:51
harbor harbor вне форума
Новичок
 
Регистрация: 15.01.2010
Сообщения: 83
Репутация: 10
По умолчанию

тоже самое если делаю так

AssignFile(myFile, Edit1.Text);
// if not FileExists(Edit1.Text) then
Rewrite(myFile);
f7:= 'строка' ;
// StrPCopy(buf1,f7);
WriteLn(myFile, f7);

пока файл не закрою. другим программам он недоступен
а мне желательно в программе держать файл открытым на запись
Ответить с цитированием
  #6  
Старый 15.01.2010, 18:09
harbor harbor вне форума
Новичок
 
Регистрация: 15.01.2010
Сообщения: 83
Репутация: 10
По умолчанию

вот сделал такой код
...
var f9:TFileStream;
...
f7:= 'строка' ;
StrPCopy(buf1,f7);

f9:= TFileStream.Create(Edit1.Text, fmOpenReadWrite, fmShareCompat);
f9.Write(buf1, 100);

закрытие файла при закрытии программы.
все время пока файл открыт в программе к нему нет доступа из других программ. может я что-то не так делаю?
Ответить с цитированием
  #7  
Старый 15.01.2010, 18:51
harbor harbor вне форума
Новичок
 
Регистрация: 15.01.2010
Сообщения: 83
Репутация: 10
По умолчанию

погодите, кажется все работает. стандартным блокнотом открывает
у меня по умолчанию порсто другая прога для открытия текстовых файлов, и видимо она с файлами по своему работает
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 12:44.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter