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

Вниз

Ошибка при создании файла   Найти похожие ветки 

 
Cardinalius ©   (2007-09-15 17:15) [0]

При вызове данной процедуры программа вылетает с ошибкой: "Файл занят другим процессом"

procedure TfmMain.ClientSocket1Connect(Sender: TObject;
 Socket: TCustomWinSocket);
begin
 fStream:= TFileStream.Create("Receive.fil", fmCreate);
end;

Добавлю еще на всякий случай процедуру чтения :)

procedure TfmMain.ClientSocket1Read(Sender: TObject;
 Socket: TCustomWinSocket);
var
 count :Integer;
 buffer: Array [0..MAX_BUF_SIZE] of Char;
begin
 repeat
   Socket.Lock;
   count:= Socket.ReceiveBuf(buffer,SizeOf(buffer));
   if count > 0 then
     fStream.WriteBuffer(buffer,count);
   Socket.Unlock;
  until (count <= 0);
end;


 
Cj ©   (2007-09-15 17:19) [1]

А Free то где?


 
Cardinalius ©   (2007-09-15 17:24) [2]

> [1] Cj ©   (15.09.07 17:19)
> А Free то где?

А fStream.Free при дисконнекте.


 
Anatoly Podgoretsky ©   (2007-09-15 17:45) [3]

> Cardinalius  (15.09.2007 17:15:00)  [0]

Значит так и есть.


 
Cardinalius ©   (2007-09-15 17:49) [4]

> [3] Anatoly Podgoretsky ©   (15.09.07 17:45)
> > Cardinalius  (15.09.2007 17:15:00)  [0]
>
> Значит так и есть.


Ну такого же не может быть (по крайней мере не должно). Какой такой процесс может запретить мне доступ на запись к файлу, который я создал и который уже открыт на запись? Или я чего-то недопонимаю?


 
Anatoly Podgoretsky ©   (2007-09-15 17:52) [5]

> Cardinalius  (15.09.2007 17:49:04)  [4]

Это твой процесс.


 
Cardinalius ©   (2007-09-15 17:56) [6]

> [5] Anatoly Podgoretsky ©   (15.09.07 17:52)
> > Cardinalius  (15.09.2007 17:49:04)  [4]
>
> Это твой процесс.

Ну и как тогда мне записать в файл, если он уже занят моим процессом?


 
Anatoly Podgoretsky ©   (2007-09-15 17:59) [7]

> Cardinalius  (15.09.2007 17:56:06)  [6]

А запись то тут причем, ты же на создание жалуешься.


 
Cardinalius ©   (2007-09-15 18:03) [8]

> [7] Anatoly Podgoretsky ©   (15.09.07 17:59)
> > Cardinalius  (15.09.2007 17:56:06)  [6]
>
> А запись то тут причем, ты же на создание жалуешься.

Вероятно я не так выразился. Файл физически создается на диске, но имеет размер 0б. Хотя по идее должен быть копией переданного по сети файла...


 
Anatoly Podgoretsky ©   (2007-09-15 18:04) [9]

> Cardinalius  (15.09.2007 18:03:08)  [8]

С какой это стати?


 
Cardinalius ©   (2007-09-15 18:11) [10]

> [9] Anatoly Podgoretsky ©   (15.09.07 18:04)
> > Cardinalius  (15.09.2007 18:03:08)  [8]
>
> С какой это стати?

Цитирую ошибку: "Cannot create file "c:\Receive.fil" процесс не может получить доступ к файлу, т.к. этот файл занят другим процессом.
Ну и как понимать "Cannot create file" если файл физически создан? Т.е. ошибка возникает уже после создания файла. Почему?


 
Anatoly Podgoretsky ©   (2007-09-15 18:45) [11]

> Cardinalius  (15.09.2007 18:11:10)  [10]

До создания


 
Cardinalius ©   (2007-09-15 18:53) [12]

> [11] Anatoly Podgoretsky ©   (15.09.07 18:45)
> > Cardinalius  (15.09.2007 18:11:10)  [10]
>
> До создания

Приятно поговорить с умным человеком :) Тогда почему файл все же создается, почему возникает ошибка и как ее избежать?


 
Anatoly Podgoretsky ©   (2007-09-15 19:34) [13]

> Cardinalius  (15.09.2007 18:53:12)  [12]

Он не создается.
А, чтобы избежать надо найти ошибку в программ, она же (программа) у тебя есть?


 
Cardinalius ©   (2007-09-15 19:45) [14]

Ошибка в строке:
fStream:= TFileStream.Create("Receive.fil", fmCreate);?
Я уже прочитал всю справку и всю инфу какая у меня есть по TFileStream, но что-то не могу найти ошибки :(



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

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

Наверх





Память: 0.47 MB
Время: 0.05 c
2-1190014526
~ShamaN~
2007-09-17 11:35
2007.10.14
Странности с модальной формой


15-1190005909
Slider007
2007-09-17 09:11
2007.10.14
С днем рождения ! 16 сентября 2007 воскресенье


15-1189594938
Юрий Зотов
2007-09-12 15:02
2007.10.14
Новый оператор ЯВУ


15-1189970382
ProgRAMmer Dimonych
2007-09-16 23:19
2007.10.14
Посоветуйте, что делать


1-1185813272
fdooch
2007-07-30 20:34
2007.10.14
Глобальный хук WH_MOUSE_LL





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