![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как открыть с помощью 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(... // получаем хэндл окрытого файла
// потом читаем
А что должно, по-вашему, произойти?