![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Чтение файла своей прогой
_Sergey © (2005-02-14 18:07:00)Здраствуйте.
У меня такой вопрос.
Я зарегистрировал свое расширение файла, который будет открываться с помощью моей программы.
Вопрос.
Как мне вывести текст в моей программе который содержится в файле?
Anatoly Podgoretsky (2005-02-14 20:07:00) [1]Что то есть сомнение в Я зарегистрировал свое расширение файла
Набережных С. (2005-02-14 20:04:00) [2]>olookin © (14.02.05 19:36) [17]
Чтобы не было казусов, в реестре, в Open Command нужно регистрировать так:
"C:\Program Files\MyProg.exe" "%1"
Ключевое здесь - кавычки
Stilgar (2005-02-14 19:47:00) [3]Profi © (14.02.05 19:32) [16]
Если я запущу прогу двойным кликом на её exe, то что будет в ParamStr?
'' :)
Но если она была запущена с нужным параметром (адресом файла) то это сработает и по нажатию кнопки.
Вобщем разобрались.
olookin © (14.02.05 19:36) [17]
if ParamStr(1) <> '' then
Абсолютно согласен.
for I := 1 to ParamCount do
if I < ParamCount then
s := s + ParamStr(I) + ' ' else s := s + ParamStr(I);
Ну это только если больше параметров не передаеться. Иначе не надо. Например если пользоватеь выделит сразу несколько файлов, то будет ошибка.
2 _Sergey
Разобрался?
olookin (2005-02-14 19:36:00) [4]Что-то слишком уж просто - ParamStr(1). Попробуйте это на любом файле из Program Files, например. Лично я во избежание казусов использую:
if ParamStr(1)<>'' then for i:=1 to ParamCount do
if i<ParamCount then s:=s+ParamStr(i)+' ' else s:=s+ParamStr(i);
где s - это и есть имя файла (независимо от того, как называется каталог).
Profi (2005-02-14 19:32:00) [5]Stilgar © (14.02.05 19:28) [15]
Если я запущу прогу двойным кликом на её exe, то что будет в ParamStr?
Stilgar (2005-02-14 19:28:00) [6]2 Profi
Если же привязать его к нажатию кнопки, то будет ошибка.
Не понимаю, откуда тут взяться ошибке. ParamStr работает все время.
2 _Sergey
Да есть пишет "Cannot open file 1"
Что-то возникают сомнения по поводу правильности написанного тобою кода. При чем тут файл "1"? Или его ты в параметрах и передал?
Profi (2005-02-14 19:10:00) [7]Предложенный метод,
Memo1.Lines.LoadFromFile(ParamStr(1));надо обробатывать при открытии программы! Если же привязать его к нажатию кнопки, то будет ошибка.
_Sergey (2005-02-14 19:08:00) [8]Имя этого файла '11.sk'
begin...end (2005-02-14 19:07:00) [9]> _Sergey (14.02.05 19:02) [10]
Какое имя у того файла, который Вы открываете своей программой?
Profi (2005-02-14 19:04:00) [10]Это приколы тут чтоли?
_Sergey (2005-02-14 19:02:00) [11]Да есть пишет "Cannot open file 1"
begin...end (2005-02-14 18:58:00) [12]> _Sergey (14.02.05 18:55) [8]
Вот такой: "Чёта не идет."
Может быть, сообщения об ошибках какие-нибудь появляются?
_Sergey (2005-02-14 18:55:00) [13]Какой вывод???
begin...end (2005-02-14 18:50:00) [14]> _Sergey (14.02.05 18:45) [6]
На основании чего Вы сделали такой вывод?
_Sergey (2005-02-14 18:45:00) [15]>Memo1.Lines.LoadFromFile(ParamStr(1));
Чёта не идет.
ssk (2005-02-14 18:36:00) [16]>Вот если можно с коротким примером?
примерно так:
Memo1.Lines.LoadFromFile(ParamStr(1));
_Sergey (2005-02-14 18:33:00) [17]Нет файл обычный текстовый но с моим расширением, и открывается моей прогой.
Плохиш (2005-02-14 18:28:00) [18]Хм, я всегда думал, что сначала создаётся программа, которая выводит текст, содержащийся в файле. А уже после этого она регистрируется в системе для открытия файлов с определённым расширением. :-(
_Sergey (2005-02-14 18:17:00) [19]Вот если можно с коротким примером?
Alexander Panov (2005-02-14 18:12:00) [20]Вариантов масса - TStringList, TFleStream и пр...