Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.074 c
2-1339482474
Abcdef123
2012-06-12 10:27
2013.03.22
Медленно работает TdxDBTreeView.


2-1331843715
Zheksonz
2012-03-16 00:35
2013.03.22
Управление шаговым двигателем через LPT


15-1338920514
Глеб
2012-06-05 22:21
2013.03.22
виндосАпи


15-1341656050
ФЫВАОЛДЖ
2012-07-07 14:14
2013.03.22
Случайности не случайны.


15-1334694230
Дмитрий С
2012-04-18 00:23
2013.03.22
Дельфи не может перезаписать EXE файл.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский