Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.03.22;
Скачать: CL | DM;

Вниз

Передача данных через параметры от функции к функции   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.261 c
15-1354200038
Паскаль
2012-11-29 18:40
2013.03.22
3 не сложных задания по ПАСКАЛЮ / заплачу пару баксов за них


15-1350643594
Grimm375
2012-10-19 14:46
2013.03.22
Информировать, какие символы разрешено вводить


15-1353937133
Дмитрий С
2012-11-26 17:38
2013.03.22
Язык в трее Windows 7


15-1339959786
Artem
2012-06-17 23:03
2013.03.22
Pocket Fritz


6-1241416373
ForumReader
2009-05-04 09:52
2013.03.22
Сломал голову на фреймах в TWebBrowser :( Помогите...