Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.10.31;
Скачать: [xml.tar.bz2];

Вниз

Не могу прочитать файл созданный TFileStream   Найти похожие ветки 

 
Zergling   (2002-10-21 10:08) [0]

Всем привет! Помогите люди добрые!!! 1-е приложение создает файл с помощью TFileStream и все время пишет в него данные. Мне нужно прочитать данные из этого файла другим приложением, но вываливается ошибка, что файл не может быть открыт. Как обойти эту проблему?
TFileStream я создаю так:
if FileExists(FName) then RecStream:=TRecordStream.Create(FName,fmShareDenyNone)
fmShareDenyNone - если я верно понял данный параметр дает полный доступ для всех.

Заранее благодарен.


 
Smithson   (2002-10-21 10:30) [1]

Смотри параметры открытия файла (кажись, ShareRead)


 
andrey_pst   (2002-10-21 10:35) [2]

возможно Вы пытаетесь открыть файл в режиме чтение/запись
как читаете-то, напишите ?


 
Zergling   (2002-10-21 11:36) [3]

Параметры fmOpenRead, fmShareDenyNone не помогают. Во втором приложении создаю TFileStrem так же как и в первом случае:
if FileExists(FName) then RecStream:=TRecordStream.Create(FName,fmShareDenyNone)


 
Zergling   (2002-10-21 12:00) [4]

Второе приложение не читает файл, если первое приложение создает новый файл:
if FileExists(FName) then RecStream:=TRecordStream.Create(FName,fmCreate), а если первое приложение открывает существующий файл с параметром fmShareDenyNone, то второе приложение без проблем считывает данные из файла. Пытался открыть вновь созданный файл с параметром fmShareDenyNone следующим образом:
RecStream:=TRecordStream.Create(FName,fmCreate);
RecStream.Free;
RecStream:=TRecordStream.Create(FName,fmShareDenyNone);

Но при таком подходе второе приложение ни чего ни считывает из файла. Как быть???


 
Bis   (2002-10-21 13:31) [5]

полагается делать FlushBuffers, тогда все записанное читается.
Не знаю, как это делается родными средствами Дельфи, можно в крайнем случае открывать и закрывать после каждой записи.


 
Рыжик   (2002-10-21 13:31) [6]


> Второе приложение не читает файл, если первое приложение
> создает новый файл:
> if FileExists(FName) then RecStream:=TRecordStream.Create(FName,fmCreate),
>

fmCreate Create a file with the given name. If a file with the given name exists, open the file in write mode.

Попробуй так :
if FileExists(FName) then RecStream:=TRecordStream.Create(FName,fmCreate or fmOpenReadWrite or fmShareDenyNone)


 
Zergling   (2002-10-22 13:24) [7]

Данный метод не помогоает.
if FileExists(FName) then RecStream:=TRecordStream.Create(FName,fmCreate or fmOpenReadWrite or fmShareDenyNone)
Тут дают совет все время открывать/закрывать файл после записи.
Как это правильно это делается? Результат с Free я описал выше.


 
Bis   (2002-10-22 13:40) [8]

FlushFileBuffers(RecStream.Handle);



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2002.10.31;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.007 c
1-101212
Slava V.
2002-10-21 15:56
2002.10.31
Как отловить события копирования в Clipboard?


4-101580
Zion
2002-09-19 18:23
2002.10.31
Вопрос тоже кстати из-за неопытности....


1-101196
МВВ
2002-10-21 14:20
2002.10.31
Hint из DLL


1-101310
irmantukas
2002-10-19 20:56
2002.10.31
DBGrid и Table


14-101455
Дремучий
2002-10-10 17:30
2002.10.31
Глючит дата (год) регистрациии?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский