Открыть на запись свежесозданный файл

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Открыть на запись свежесозданный файл

Сообщение Climber » 27.10.2009 11:21:44

Вот код, который вызывается по нажатию кнопки (код шел с zeos):
Код: Выделить всё
procedure TForm1.Button2Click(Sender: TObject);
var
  BlobStream: TStream;
  FileStream: TStream;
  fname: string;
begin
  fname := 'kartinka.bmp';
  if not FileExists(fname) then FileCreate(fname);
  BlobStream := ZQuery1.CreateBlobStream(ZQuery1.FieldByName('b_image'), bmRead);
  try
    FileStream:= TFileStream.Create(fname, fmOpenWrite);  // ошибка тут
    try
      FileStream.CopyFrom(BlobStream, BlobStream.Size);
    finally
      FileStream.Free;
    end;
  finally
    BlobStream.Free;
  end;
end;
Если нажать кнопку когда файла kartinka.bmp нет в папке, то файл создается, а потом выскакивает "Unable to open file". Если программу закрыть, запустить заново и нажать на кнопку при существующем файле, то все работает нормально, файл сохраняется. То есть получается, что после FileCreate файл чем-то занят?
Climber
постоялец
 
Сообщения: 415
Зарегистрирован: 03.06.2007 20:09:57
Откуда: Москва

Re: Открыть на запись свежесозданный файл

Сообщение v-t-l » 27.10.2009 11:39:11

Climber писал(а): FileStream:= TFileStream.Create(fname, fmOpenWrite); // ошибка тут
Код: Выделить всё
    FileStream:= TFileStream.Create(fname, fmCreate);
v-t-l
энтузиаст
 
Сообщения: 735
Зарегистрирован: 13.05.2007 16:27:22
Откуда: Belarus

Re: Открыть на запись свежесозданный файл

Сообщение Climber » 27.10.2009 11:59:21

О! Работает...
Изображение
Спасибо.
Climber
постоялец
 
Сообщения: 415
Зарегистрирован: 03.06.2007 20:09:57
Откуда: Москва


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 38

Рейтинг@Mail.ru