Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.05.2012, 17:21   #1
munthrekosh
Пользователь
 
Аватар для munthrekosh
 
Регистрация: 12.11.2011
Сообщений: 80
Вопрос Как записать в файл при использовании OpenFile?

Нужно записывать в файл символ. Проблема в том что я использую OpenFile, при этом совершенно не зная как с ним работать. Работая методом научного тыка попытался что-то сделать сам и получил вот это:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  buf:_ofstruct;
begin
  FileHandle:=OpenFile(PANSIChar('lol.txt'),buf,of_create or OF_READWRITE or OF_SHARE_EXCLUSIVE);
  pp:=true;
end;

procedure TForm1.Memo1KeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
var
  length:integer;
begin
if pp then
    begin
      length:=Memo1.SelStart-start;
      Memo1.SelStart:=start;
      Memo1.SelLength:=length;
      write(FileHandle,Memo1.SelText);
    end;
end;

procedure TForm1.Memo1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  Start:=Memo1.SelStart;
end;
Выдаёт Exception EInOutError. Что я делаю не так?
Ш.Р.Ю.-программист! йопта!!!
munthrekosh вне форума Ответить с цитированием
Старый 15.05.2012, 18:37   #2
3D Hunter
Сумрачная тень
Форумчанин
 
Аватар для 3D Hunter
 
Регистрация: 05.03.2009
Сообщений: 689
По умолчанию

Встречный вопрос: почему именно OpenFile? Почему не FileOpen, CreateFile, TFileStream, TextFile, File of <...>, File?
Код:
LhFile:=OpenFile('lol.txt',buf,OF_CREATE or OF_READWRITE);
А ошибка скорей всего потому, что этот файл открыт другим приложением и не может быть удален.
"ковыряю изнутри" (с)
3D Hunter вне форума Ответить с цитированием
Старый 15.05.2012, 20:25   #3
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

OpenFile вообще-то устарела.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 15.05.2012, 20:31   #4
3D Hunter
Сумрачная тень
Форумчанин
 
Аватар для 3D Hunter
 
Регистрация: 05.03.2009
Сообщений: 689
По умолчанию

Используйте уже тогда CreateFile, если хотите с хэндлами иметь дело.
"ковыряю изнутри" (с)
3D Hunter вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как убрать N/A при использовании VLOOKUP Lana_svt Microsoft Office Excel 3 21.09.2011 15:23
как убрать сообщение HTTP:404 при использовании IdHTTP(InDy9) Пепел Феникса Работа с сетью в Delphi 18 01.04.2009 19:40
Как записать файл в файл программы? Хамяг Общие вопросы Delphi 2 02.11.2008 16:01
Как при использовании FileWrite перейти на новую строку? Artem Win Api 4 03.09.2007 17:02