Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как открыть с помощью FileOpen? [D7]


Erudit ©   (2006-01-27 20:59:00) 

Добрый вечер!

Помогите пожалуйста с домашкой.

Изучаем функцию FileOpen.

Пишу так:

if FileExists('C:\new.txt')then
sysutils.FileOpen('C:\new.txt',fmOpenRead)else
showmessage('файла нет');

Но ничего не происходит, в чем ошибка?


nort   (2006-01-27 22:05:00) [1]

Прочитать файл в Memo1

procedure TForm1.Button1Click(Sender: TObject);
var
 hfile: tHandle;
 Buffer: PChar;
 FileSize: Integer;
begin
 with OpenDialog1 do
 begin
   Filter := 'Text files (*.txt)|*.txt';
   if not execute then exit;

   hfile := FileOpen(FileName,fmOpenRead);
   if hFile = 0 then exit;
   FileSize := GetFileSize(hfile,nil);
   GetMem(Buffer,FileSize);
   FileRead(hfile,Buffer^,FileSize);
   Memo1.Text := Buffer;
   FreeMem(Buffer);
   FileClose(hfile);
 end;
end;


nort   (2006-01-27 21:41:00) [2]

если в Блокноте Windows, то вот:

uses
   ShellApi;

procedure OpenTxt(FileList: TStrings);
var
 i: Integer;
begin
  for i := 0 to FileList.Count -1 do
      ShellExecute(0,'open',PChar(FileList.Strings[i]),nil,nil,SW_NORMAL);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 with OpenDialog1 do
 begin
    Filter := 'Text files (*.txt)|*.txt';
    if Execute then
       OpenTxt(Files);
 end;
end;


Erudit   (2006-01-27 21:27:00) [3]

Не лучший вариант, но другой вспоминать лень :)

Глупый вопрос, наверное задал?


guitarist   (2006-01-27 21:22:00) [4]

Попробуй (не забудь uses ShellApi)

ShellExecute(Application.Handle, 'open', 'cmd.exe',Pchar('/c C:/example.txt'), nil, SW_Hide);

Не лучший вариант, но другой вспоминать лень :)


Erudit   (2006-01-27 21:15:00) [5]

Я вооще-то именно таки считаю :(((

Но я не могу понять, как именно можно открыть файл.
Если что у меня спиок файло в формате txt, но как открыть - не доходит :((
Стыдно аж на форуме торчать, но желание понять - огромное!


guitarist   (2006-01-27 21:10:00) [6]

Я когда только знакомился с программированием, считал, что Open  открывает файл как Windows, т.е. картинка открывается как картинка  итп.
Если автор тоже так читает, то на самом деле FileOpen открывает файл для записи, чтения, ты с ним можешь работать, как с куском памяти (условно говоря). Если автор так не считал, то извиняюсь, но я знаю -- это частая проблема среди моих друзей.


Erudit   (2006-01-27 21:09:00) [7]

А я если четно не свосем врубился.

У меня тоже не получилось.
Можно по подробнее?


mozgan   (2006-01-27 21:07:00) [8]

Я так понимаю, что должен запуститься файл (в блокноте открыться).

Я сейчас исправил на...

procedure TForm1.Button1Click(Sender: TObject);
var
hfile: THandle;
begin
 if FileExists('C:\new.txt')then
 hfile :=sysutils.FileOpen('C:\new.txt',fmOpenRead)else
 showmessage('файла нет');
end;

Что-то опять ничего нет...


nort   (2006-01-27 21:03:00) [9]

> Но ничего не происходит

var
 hfile: THandle;
hfile := sysutils.FileOpen(... // получаем хэндл окрытого файла
// потом читаем

А что должно, по-вашему, произойти?


Наверх

Титульная страница Поиск, карта сайта Написать письмо