Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> открытие файлов программой 
:(
    Опции темы
Михалыч
Дата 21.9.2009, 21:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 472
Регистрация: 1.7.2008

Репутация: нет
Всего: нет



Есть текстовый редактор,при открытии редактора файлом, нужно что бы он проверял расширение и если расширение txt ,то открывается в Richedit1,а
если ini , то в Richedit2
Написал вот так ,но открывается сразу в двух

Код:


Код

procedure TForm1.FormCreate(Sender: TObject);
var
ten:string;
begin
ten := ExtractFileExt(ParamStr(1));
  delete(ten, 1, 1);
if ten='txt' then begin RichEdit1.Lines.LoadFromFile(ParamStr(1)); end;
if ten='ini' then begin RichEdit2.Lines.LoadFromFile(ParamStr(1)); end;
end;





--------------------
За частый поиск был забанен во всех известных поисковых системах.
Обиженных  комодераторов: 1 
PM MAIL   Вверх
THandle
Дата 21.9.2009, 21:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хранитель Клуба
Group Icon
Награды: 1



Профиль
Группа: Админ
Сообщений: 3639
Регистрация: 31.7.2007
Где: Moscow, Dubai

Репутация: 50
Всего: 372



Михалыч, вообще все должно нормально работать. Посмотри под отладчиком что находится в ten и какие строки выполняются.

Замечания: Нет проверки на количество параметров, зачем то впихнуты лишние begin...end, оформление ужасно.
PM   Вверх
Михалыч
Дата 21.9.2009, 22:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 472
Регистрация: 1.7.2008

Репутация: нет
Всего: нет



Цитата(THandle @  21.9.2009,  21:44 Найти цитируемый пост)
Замечания: Нет проверки на количество параметров, зачем то впихнуты лишние begin...end, оформление ужасно. 

На счет проверки количества параметров можно поподробней.
А лишние  begin...end  вставил от без исходности,все подряд пробовал


--------------------
За частый поиск был забанен во всех известных поисковых системах.
Обиженных  комодераторов: 1 
PM MAIL   Вверх
THandle
Дата 21.9.2009, 22:31 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хранитель Клуба
Group Icon
Награды: 1



Профиль
Группа: Админ
Сообщений: 3639
Регистрация: 31.7.2007
Где: Moscow, Dubai

Репутация: 50
Всего: 372



Михалыч, не идеальный вариант, но попробуй:
Код


procedure TForm2.FormCreate(Sender: TObject);
const
  EXT_TXT = '.txt';
  EXT_INI = '.ini';
var
  s: String;
begin
  if ParamCount > 0 then
  begin
    s := ExtractFileExt(ParamStr(1));
    if CompareStr(s, EXT_TXT) = 0 then
      RichEdit1.Lines.LoadFromFile(ParamStr(1))
    else
      if CompareStr(s, EXT_INI) = 0 then
        RichEdit2.Lines.LoadFromFile(ParamStr(1))
  end;
end;

PM   Вверх
former
Дата 21.9.2009, 22:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


MEMS Expert
***


Профиль
Группа: Завсегдатай
Сообщений: 1166
Регистрация: 1.3.2006
Где: Россия

Репутация: 4
Всего: 17



Цитата(THandle @  21.9.2009,  21:44 Найти цитируемый пост)
зачем то впихнуты лишние begin...end, оформление ужасно. 

Код

procedure TForm1.FormCreate(Sender: TObject);
var
ten:string;
begin
  ten := ExtractFileExt(ParamStr(1));
  delete(ten, 1, 1); //этого можно и не делать
  if ten='.txt' then RichEdit1.Lines.LoadFromFile(ParamStr(1))
  else if ten='.ini' then RichEdit2.Lines.LoadFromFile(ParamStr(1));
end;




--------------------
Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами.
PM MAIL   Вверх
THandle
Дата 21.9.2009, 22:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хранитель Клуба
Group Icon
Награды: 1



Профиль
Группа: Админ
Сообщений: 3639
Регистрация: 31.7.2007
Где: Moscow, Dubai

Репутация: 50
Всего: 372



former,  к сожалению последний пункт, а именно плохое оформление твой код не закрывает smile Да и не понятно зачем делать Delete...

Добавлено @ 22:45
К тому же твой код не сработает. Ты удаляешь точку, а в сравнении пишешь расширение с точкой...
PM   Вверх
former
Дата 21.9.2009, 22:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


MEMS Expert
***


Профиль
Группа: Завсегдатай
Сообщений: 1166
Регистрация: 1.3.2006
Где: Россия

Репутация: 4
Всего: 17



Цитата(THandle @  21.9.2009,  22:44 Найти цитируемый пост)
К тому же твой код не сработает. Ты удаляешь точку, а в сравнении пишешь расширение с точкой... 

тык я и пометил, что этого не нужно делать (я про delete).

Код

procedure TForm1.FormCreate(Sender: TObject);
var
  ten:string;
begin
  ten := ExtractFileExt(ParamStr(1));
  if ten='.txt' then
    RichEdit1.Lines.LoadFromFile(ParamStr(1))
  else if ten='.ini' then
    RichEdit2.Lines.LoadFromFile(ParamStr(1));
end;

 smile 

Это сообщение отредактировал(а) former - 21.9.2009, 22:50


--------------------
Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами.
PM MAIL   Вверх
THandle
Дата 21.9.2009, 23:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хранитель Клуба
Group Icon
Награды: 1



Профиль
Группа: Админ
Сообщений: 3639
Регистрация: 31.7.2007
Где: Moscow, Dubai

Репутация: 50
Всего: 372



former, я конечно зануда, но код снова недооформлен smile И проверку на количество параметров все же лучше делать.
PM   Вверх
former
Дата 21.9.2009, 23:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


MEMS Expert
***


Профиль
Группа: Завсегдатай
Сообщений: 1166
Регистрация: 1.3.2006
Где: Россия

Репутация: 4
Всего: 17



Цитата(THandle @  21.9.2009,  23:21 Найти цитируемый пост)
former, я конечно зануда, но код снова недооформлен

THandle, буду признателен за критику. smile 
Может ты имеешь виду пробелы перед знаками (= и smile?
Кстати, по хорошему, и в твоем коде (;) пропущена. smile 
Цитата(THandle @  21.9.2009,  23:21 Найти цитируемый пост)
И проверку на количество параметров все же лучше делать. 

Мотивация.

Это сообщение отредактировал(а) former - 22.9.2009, 00:43


--------------------
Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0539 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.