Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 5 068

Раздел: Delphi » Прочее
/ вопрос открыт /

Здравствуйте, уважаемые эксперты!
Можно ли произвести рефакторинг следующего кода?
По шагам, если можно с описанием.

Приложение:
  1. procedure TForm1.Button1Click(Sender: TObject);
  2. var
  3. outfi:string;
  4. begin
  5. if OpenDialog1.Execute then
  6. begin
  7. outfi:=sysutils.ExtractFilePath((OpenDialog1.FileName))+'/program.asm';
  8. windows.CreateFile(PChar(outfi),0,0,0,0,0,0);
  9. AssignFile(outPutFile,outfi);
  10. Rewrite(outPutFile);
  11. Append(outPutFile);
  12. AssignFile(inPutFile,OpenDialog1.FileName);
  13. Reset(inPutFile);
  14. init();
  15. writeLn(outPutFile,prologMemo.Lines.GetText());
  16.  
  17. doprogram();
  18.  
  19. writeLn(outPutFile,epilogMemo.Lines.GetText());
  20.  
  21. CloseFile(outPutFile);
  22. CloseFile(inPutFile);
  23. ShellExecute( 0, 'open', PChar(outfi), nil, nil, SW_SHOWNORMAL);
  24. end;
  25. end;


Gooddy Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Gooddy (статус: 3-ий класс)
Вопрос отправлен: 5 марта 2011, 03:03
Состояние вопроса: открыт, ответов: 0.


Мини-форум вопроса

Всего сообщений: 6; последнее сообщение — 5 марта 2011, 14:51; участников в обсуждении: 6.
Мережников Андрей

Мережников Андрей (статус: Абитуриент), 5 марта 2011, 04:59 [#1]:

выбросить строки 8,11.
Зачем в выходной файл дважды пишется содержание Memo?
bugmenot

bugmenot (статус: 3-ий класс), 5 марта 2011, 05:03 [#2]:

Можно? Нужно! Во-первых, код надо отформатировать. Далее:
* в строке 7 захардкожен PathDelim
* в строке 8 добавить комментарий // wtf?
* стр. 10,11: определиться, что же делать с outPutFile
* 15,19: почему так и кто будет освобождать память?
* 23: обработка ошибок

после обернуть получившееся в try...finally
виконання програми розпочинається з того самого мiсця, де призупинилося.

Егор

Егор (статус: 10-ый класс), 5 марта 2011, 05:27 [#3]:

а что, метод Memo.Lines.SaveToFile() не катит?
Опасайтесь багов в приведенном выше коде; я только доказал корректность, но не запускал его.
— Donald E. Knuth.
min@y™

min@y™ (статус: Доктор наук), 5 марта 2011, 08:13 [#4]:

Очень хотелось бы узнать, что аффтар хотел от этого кода. Т.е. что должно происходить при нажатии на кнопку?
Да, а чо такое рефакторинг? А то влом курить педивикию....
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Ерёмин А.А.

Ерёмин А.А. (статус: *Администратор), 5 марта 2011, 09:19 [#5]:

min@y™: Рефакторинг
Gooddy

Gooddy (статус: 3-ий класс), 5 марта 2011, 14:51 [#6]:

Забил на этот код, кроме этого метода ещё куча кала, так что решил просто переписать.
Чисти код! Чисти код! Чисти код!

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:55
Выполнено за 0.02 сек.