Главная страница
    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.46 MB
Время: 0.008 c
3-101153
_pavel_
2002-10-10 18:36
2002.10.31
Apollo VCL + Apollo Server


3-101115
Юра
2002-10-09 16:37
2002.10.31
Сортировка на украинском.


3-101145
Cool
2002-10-09 06:24
2002.10.31
Затащить *.mdb в exe-шник


1-101207
VJar
2002-10-18 00:25
2002.10.31
Фильтр для Edit


1-101234
lipskiy
2002-10-20 23:17
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский