Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
11-1195151305
Gry
2007-11-15 21:28
2008.11.09
Фокус формы в KOL


2-1222856610
Giga
2008-10-01 14:23
2008.11.09
Загрузка данных в ComboBox


15-1221252916
RaMoNeZz
2008-09-13 00:55
2008.11.09
Помогите упростить код и проверить правильно ли написан он....


3-1209092666
azamatufa
2008-04-25 07:04
2008.11.09
Paradox - не работает Filter LIKE


15-1221195608
[i2e]
2008-09-12 09:00
2008.11.09
Как повернуть текст на 90 градусов?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский