Форум: "Начинающим";
Текущий архив: 2008.11.09;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.004 c