Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Delphi, Kylix and Pascal


Ответ
 
Опции темы Опции просмотра
Старый 09.01.2011, 16:54   #1 (permalink)
Chervones
Novel user
 
Аватар для Chervones
 
Регистрация: 16.04.2010
Сообщений: 568
Записей в дневнике: 3
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 1149
По умолчанию Как открывать файлы в делфи 7?

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

Старый 09.01.2011, 16:54
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Форум наполнен схожими обсуждениями

Помогите с Делфи
Теория Делфи.
Делфи: массив, файлы
Обозреватели перестали открывать https://
Joomla перестал открывать все материалы

Старый 09.01.2011, 17:03   #2 (permalink)
AlexZir
support
 
Аватар для AlexZir
 
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,794
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
По умолчанию

OpenDialog
или стандартные паскалевские процедуры работы с файлами.
__________________
Убить всех человеков!
AlexZir вне форума   Ответить с цитированием
Старый 09.01.2011, 17:16   #3 (permalink)
Chervones
Novel user
 
Аватар для Chervones
 
Регистрация: 16.04.2010
Сообщений: 568
Записей в дневнике: 3
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 1149
По умолчанию

Я так пробовал при компиляции выдаёт ошибку.
Chervones вне форума   Ответить с цитированием
Старый 09.01.2011, 17:30   #4 (permalink)
Chervones
Novel user
 
Аватар для Chervones
 
Регистрация: 16.04.2010
Сообщений: 568
Записей в дневнике: 3
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 1149
По умолчанию

Кстати вот мой код:
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;
Chervones вне форума   Ответить с цитированием
Старый 09.01.2011, 17:45   #5 (permalink)
MrSTEP
一步一步地会到目的
 
Аватар для MrSTEP
 
Регистрация: 09.05.2009
Адрес: Черноземье
Сообщений: 10,939
Записей в дневнике: 10
Сказал(а) спасибо: 140
Поблагодарили 80 раз(а) в 33 сообщениях
Репутация: 28362
По умолчанию

Вот мой код, обрабатывает нажатие кнопки:
Код:
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...)
MrSTEP вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 09.01.2011, 18:14   #6 (permalink)
Chervones
Novel user
 
Аватар для Chervones
 
Регистрация: 16.04.2010
Сообщений: 568
Записей в дневнике: 3
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 1149
По умолчанию

Такой всё равно не компилируется.
[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'
Вот выдаваемые ошибки.
Chervones вне форума   Ответить с цитированием
Старый 09.01.2011, 18:25   #7 (permalink)
MrSTEP
一步一步地会到目的
 
Аватар для MrSTEP
 
Регистрация: 09.05.2009
Адрес: Черноземье
Сообщений: 10,939
Записей в дневнике: 10
Сказал(а) спасибо: 140
Поблагодарили 80 раз(а) в 33 сообщениях
Репутация: 28362
По умолчанию

Ну во-первых, у вас компонент называется OpenDialog, а у меня OpenDialog1. Вы этот код куда записали? Выложите весь код со страницы.
MrSTEP вне форума   Ответить с цитированием
Старый 09.01.2011, 18:35   #8 (permalink)
Chervones
Novel user
 
Аватар для Chervones
 
Регистрация: 16.04.2010
Сообщений: 568
Записей в дневнике: 3
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 1149
По умолчанию

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

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   #9 (permalink)
Chervones
Novel user
 
Аватар для Chervones
 
Регистрация: 16.04.2010
Сообщений: 568
Записей в дневнике: 3
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 1149
По умолчанию

Первоначально я хотел сделать загрузчик для диска. Нажал кнопку установить и пошла установка.
Chervones вне форума   Ответить с цитированием
Старый 09.01.2011, 19:40   #10 (permalink)
Fenix
404
 
Аватар для Fenix
 
Регистрация: 10.01.2010
Сообщений: 1,749
Записей в дневнике: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 3868
По умолчанию

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

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.
Fenix вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




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

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.