Форум: "Начинающим";
Текущий архив: 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