Технический форум

Технический форум (http://www.tehnari.ru/)
-   Delphi, Kylix and Pascal (http://www.tehnari.ru/f43/)
-   -   Как открывать файлы в делфи 7? (http://www.tehnari.ru/f43/t44554/)

Chervones 09.01.2011 16:54

Как открывать файлы в делфи 7?
 
Недавноначал изучать делфи и хотел сделать прогу чтобы открывалось какой нибудь внешний файл с разными расширениями при нажатии на кнопку.

AlexZir 09.01.2011 17:03

OpenDialog
или стандартные паскалевские процедуры работы с файлами.

Chervones 09.01.2011 17:16

Я так пробовал при компиляции выдаёт ошибку.

Chervones 09.01.2011 17:30

Кстати вот мой код:
var F: TextFile;
S: string;
begin
if OpenDialog.Execute
then AssignFiie(F, OpenDialog.FileName)
else Exit; Reset(F);
while Not EOF(F) do
begin
Readln(F, S) ;
Memo.Lines.Add(S);
end;

MrSTEP 09.01.2011 17:45

Вот мой код, обрабатывает нажатие кнопки:
Код:

var f:textfile;
  s:string;
begin
  OpenDialog1.Execute;
  Edit1.Text:=OpenDialog1.FileName;
  AssignFile(f,OpenDialog1.FileName);
  Reset(f);
  Readln(f,s);
  Memo1.Lines.Add(s);
end;

Работает без ошибок. А у вас ветвление неверно построено - даже если OpenDialog не запущен, вы пытаетесь читать файл (while Not EOF(F) do...)

Chervones 09.01.2011 18:14

Такой всё равно не компилируется.
[Error] Unit1.pas(31): Undeclared identifier: 'OpenDialog'
[Error] Unit1.pas(31): Missing operator or semicolon
[Error] Unit1.pas(32): Missing operator or semicolon
[Error] Unit1.pas(33): Incompatible types
[Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'
Вот выдаваемые ошибки.

MrSTEP 09.01.2011 18:25

Ну во-первых, у вас компонент называется OpenDialog, а у меня OpenDialog1. Вы этот код куда записали? Выложите весь код со страницы.

Chervones 09.01.2011 18:35

Вот код всеёй страницы. ено мне необходимее чтоб открывались не только текстовые файлы но и другие

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;

type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var F: TextFile;
S: string;
begin
if OpenDlg.Execute
then AssignFiie(F, OpenDlg.FileName)
else Exit; Reset(F);
while Not EOF(F) do
begin
Readln(F, S) ;
Memo.Lines.Add(S);

end;

end.

Для того чтобы открывались и другие файлы бдостаточно писать

var UntypedFile: file;

Chervones 09.01.2011 19:08

Первоначально я хотел сделать загрузчик для диска. Нажал кнопку установить и пошла установка.

Fenix 09.01.2011 19:40

собственно вот:
Запуск файлов

function ExecuteFile(const FileName, Params, DefaultDir: string; ShowCmd: Integer): THandle;
var
zFileName, zParams, zDir: array[0..79] of Char;
begin
Result := ShellExecute(Application.MainForm.Handle, nil,
StrPCopy(zFileName, FileName), StrPCopy(zParams, Params),
StrPCopy(zDir, DefaultDir), ShowCmd);
end;
У этой функции есть 4 параметра:
• ConstFileName – полный путь к -exe файлу.
• Params – параметр с которым надо запускать -exe файл.
• DefaultDir - Директория по умолчанию, с которой должна работать программа. Если директория не указана, то будет использоваться та, в которой находится запускаемый файл.
• ShowCmd - Способ отображения запущенного файла. К примеру ShowWindow.

Пример использования функции:

procedure TForm1.SpeedButton3Click(Sender: TObject);
begin
ExecuteFile('C:\Program Files\ArtIcons Pro\ARTICONS.exe','','C:\Program Files\ArtIcons Pro',SW_SHOW);
end;
Для работы этой функции надо в раздел USES - добавить ShellAPI.


Часовой пояс GMT +4, время: 12:30.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.