Главная страница
    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.087 c
2-1330496040
Cobalt
2012-02-29 10:14
2013.03.22
Char в D2010


9-1193831870
savyhinst
2007-10-31 14:57
2013.03.22
Gravity


15-1330193035
oxffff
2012-02-25 22:03
2013.03.22
Вопрос по настройке VPN


15-1339284234
alexdn
2012-06-10 03:23
2013.03.22
Ориентация планшетов


15-1330783295
Savek
2012-03-03 18:01
2013.03.22
Воспроизведение видеофрагмента средствами медиаплеера





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский