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

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

Чтение файла своей прогой


_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 и пр...


Наверх

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