Форум: "Начинающим";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];
ВнизПередача данных через параметры от функции к функции Найти похожие ветки
← →
Pcrepair © (2012-07-18 21:23) [0]Добрый день. Есть такой код:
type
TForm1 = class(TForm)
Memo1: TMemo;
Button1: TButton;
Edit1: TEdit;
Label1: TLabel;
idHttpLoad: TIdHTTP;
IdAntiFreeze1: TIdAntiFreeze;
procedure Button1Click(Sender: TObject);
function LoadSearchPage(const S:string):string; (*загрузка страницы*)
function DelUselessUrls(const S:string):string; (*удаление ссылок на закачку файлов*)
function DeleteRootUrls(var S:string):string; (*удаление УРЛ ведущих на основную страницу сайта*)
function GetURLs(const Data:string):string; (*выделение из кода страницы строк с УРЛ*)
................
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var Request,Ans1,Ans2:string;
begin
Request:=Edit1.Text; (*ввод данных*)
Ans1:=GetURLs(LoadSearchPage(Request)); (*вывод и обработка результата*)
Ans2:=DelUselessUrls(DeleteRootUrls(Ans1)); (*дополнительная обработка результа*)
Memo1.Text:=Ans2;
end;
В общем все работает, но если попробовать сделать такMemo1.Text:=DelUselessUrls(DeleteRootUrls(GetURLs(LoadSearchPage(Request)) ));
выскакивает ошибка при компиляции: E2197 Constant object cannot be passed as var parameter
Вопрос: правильно ли пробовать каскадно подключать функцию на функцию, или надо функции обработки строк объединить в одну?
← →
Омлет © (2012-07-18 21:35) [1]А зачем у тебя в DeleteRootUrls var-параметр, если ты всё равно возвращаешь результат через Result?
← →
Pcrepair © (2012-07-18 21:49) [2]не заметил видимо, и да, после замены на КОНСТ компиляция в норме
тем не менее, это вообще правильно? функцию на функцию громоздить?
← →
Anatoly Podgoretsky © (2012-07-18 21:49) [3]> Pcrepair (18.07.2012 21:23:00) [0]
Как всегда ни справку, ни книг не читаем, и со здравым смыслом не дружим.
Зачем объявлял var, а передаешь константное выражение, к какой переменной
прикажешь обращаться?
← →
Pcrepair © (2012-07-18 21:54) [4]как всегда толян ты не успел а значит опоздал
без тебя, самага умнага разобрались
← →
Юрий Зотов © (2012-07-18 21:57) [5]
> Pcrepair © (18.07.12 21:49) [2]
> это вообще правильно? функцию на функцию громоздить?
Если читабельность кода не сильно страдает, то нормально.
← →
Германн © (2012-07-19 02:03) [6]
> Pcrepair © (18.07.12 21:49) [2]
>
> не заметил видимо
Естественно. Следствие бездумного+неграмотного использования/передирания чужого кода. И много ещё чего не заметишь.
← →
Pcrepair © (2012-07-19 08:11) [7]да ничего ужастного. не замечу - спрошу
← →
Inovet © (2012-07-19 08:57) [8]> [7] Pcrepair © (19.07.12 08:11)
> да ничего ужастного. не замечу - спрошу
Идиотский подход. Вместо того, чтобы самому разобраться, ходить с протянутой рукой и кляньчить.
← →
Pcrepair © (2012-07-19 14:08) [9]да да подай в ОНН заяву - запретить интернет форумы и прочее, пусть каждый сам свою цивилизацию с нуля создает
не хочешь делиться опытом - че ты тут забыл?
← →
Inovet © (2012-07-19 14:50) [10]> [9] Pcrepair © (19.07.12 14:08)
> не хочешь делиться опытом - че ты тут забыл?
Тебя забыл спросить. Не опытом, а основами из букваря, который тебе лень читать. А было бы быстрее.
По сабжу. Вполне нормальная практика, технически ограничений нет. Если много параметров и/или таких вложенных вызовов, читаемость отчасти можно повысить форматированием текста. Всё в предалах здравого смысла, конечно.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.3 c