|
Вопрос # 5 068/ вопрос открыт / |
|
Здравствуйте, уважаемые эксперты!
Можно ли произвести рефакторинг следующего кода?
По шагам, если можно с описанием.
Приложение: Переключить в обычный режим- procedure TForm1.Button1Click(Sender: TObject);
- var
- outfi:string;
- begin
- if OpenDialog1.Execute then
- begin
- outfi:=sysutils.ExtractFilePath((OpenDialog1.FileName))+'/program.asm';
- windows.CreateFile(PChar(outfi),0,0,0,0,0,0);
- AssignFile(outPutFile,outfi);
- Rewrite(outPutFile);
- Append(outPutFile);
- AssignFile(inPutFile,OpenDialog1.FileName);
- Reset(inPutFile);
- init();
- writeLn(outPutFile,prologMemo.Lines.GetText());
-
- doprogram();
-
- writeLn(outPutFile,epilogMemo.Lines.GetText());
-
- CloseFile(outPutFile);
- CloseFile(inPutFile);
- ShellExecute( 0, 'open', PChar(outfi), nil, nil, SW_SHOWNORMAL);
- end;
- end;
 |
Вопрос задал: Gooddy (статус: 3-ий класс)
Вопрос отправлен: 5 марта 2011, 03:03
Состояние вопроса: открыт, ответов: 0.
|
Мини-форум вопроса
Всего сообщений: 6; последнее сообщение — 5 марта 2011, 14:51; участников в обсуждении: 6.
|
Мережников Андрей (статус: Абитуриент), 5 марта 2011, 04:59 [#1]:
выбросить строки 8,11.
Зачем в выходной файл дважды пишется содержание Memo?
|
|
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™ (статус: Доктор наук), 5 марта 2011, 08:13 [#4]:
Очень хотелось бы узнать, что аффтар хотел от этого кода. Т.е. что должно происходить при нажатии на кнопку?
Да, а чо такое рефакторинг? А то влом курить педивикию....
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Gooddy (статус: 3-ий класс), 5 марта 2011, 14:51 [#6]:
Забил на этот код, кроме этого метода ещё куча кала, так что решил просто переписать.
Чисти код! Чисти код! Чисти код!
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|