Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.11.09;
Скачать: CL | DM;

Вниз

idFTP докачка файла + чтение из файла   Найти похожие ветки 

 
tytus   (2008-10-02 09:43) [0]

Доброго дня всем. С докачкой по idFTP через TFileStream я разобрался (помогли на этом форуме). Мне нужно с этого-же файла читать данные. Ситуация следующая: файл докачивается через некоторые промежутки времени (2 сек. к примеру). Вот в этот промежуток мне нужно читать с него данные. idFTP работает в доп. потоке, в нем-же в конструкторе создаю FileStream:
FStream := TFileStream.Create(FLocalFileName, fmCreate or fmShareDenyWrite);
В процедуре потока скачиваю файл:
FidFTP.Get(FOmpFileName, FStream, true);
(докачка работает)
Есче в одном потоке открываю этот файл
FFileHandle := CreateFile(PChar(AFileName), GENERIC_READ or GENERIC_WRITE,  FILE_SHARE_READ or FILE_SHARE_WRITE,
     nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);

Вот тут-то и не получается: ошибка
Процесс не может получить доступ к файлу, так как этот файл занят другим процессом
Поскажите, как мне правильно получить доступ к файлу.


 
Vlad Oshin ©   (2008-10-02 09:50) [1]


> FFileHandle := CreateFile(PChar(AFileName), GENERIC_READ
> or GENERIC_WRITE,  FILE_SHARE_READ or FILE_SHARE_WRITE,
>      nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);

а без этого?


 
tytus   (2008-10-02 09:56) [2]

>Vlad Oshin ©   (02.10.08 09:50) [1]
к сожелению не работает. Ошибка та-же...


 
Vlad Oshin ©   (2008-10-02 10:02) [3]

а так?
FStream := TFileStream.Create(FLocalFileName, fmCreate or fmShareDenyNone);


 
tytus   (2008-10-02 10:08) [4]

>Vlad Oshin ©   (02.10.08 10:02) [3]
... та-же ошибка...


 
Vlad Oshin ©   (2008-10-02 10:20) [5]

1. а если:
MemoryStreem.LoadFromFile(
и потом оттуда

2. а если: попробовать стандартно
AssignFile(F, Name);
FileMode := fmOpenRead;
Reset(F);


 
Плохиш ©   (2008-10-02 10:23) [6]

FStream := TFileStream.Create(FLocalFileName, fmOpenRead or fmShareDenyNone);


 
tytus   (2008-10-02 10:35) [7]

Vlad Oshin ©   (02.10.08 10:20) [5]
1. а если:
MemoryStreem.LoadFromFile(
и потом оттуда


это что - получается не нужно использовать idFTP?
мне по ftp нужно забирать и докачивать файл...

>Плохиш ©   (02.10.08 10:23) [6]
так не работает...


 
Vlad Oshin ©   (2008-10-02 10:41) [8]


> MemoryStreem.LoadFromFile(
> и потом оттуда

вместо


> Есче в одном потоке открываю этот файл
> FFileHandle := CreateFile(PChar(AFileName), GENERIC_READ
> or GENERIC_WRITE,  FILE_SHARE_READ or FILE_SHARE_WRITE,
>      nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);


 
tytus   (2008-10-02 10:53) [9]

>Vlad Oshin ©   (02.10.08 10:41) [8]
счаз попробую...


 
tytus   (2008-10-02 10:58) [10]

так это что - мне придется есче один файл создавать?

Я обрабатываю файл через CreateFileMapping, мне удобно читать по-байтно...
А с MemorySеream не работал... будет -ли быстрее чем мапированные файлы...



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

Текущий архив: 2008.11.09;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.013 c
2-1222762898
neon-w
2008-09-30 12:21
2008.11.09
NAN????


2-1222866483
Savek
2008-10-01 17:08
2008.11.09
Delphi 7 destruction


2-1222794081
Petr
2008-09-30 21:01
2008.11.09
О смене пользователя


2-1222750004
Gerbert
2008-09-30 08:46
2008.11.09
Вопрос по свойству "HomeName" у компонента "OraSession"


15-1221451319
Slider007
2008-09-15 08:01
2008.11.09
С днем рождения ! 15 сентября 2008 понедельник