![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
"Случайная" переменная?
markers © (2006-10-19 10:26:00)Можно-ли реализовать и как %subj ? Заренее Спасибо!
markers (2006-10-19 12:10:00) [41]Ketmar © (19.10.06 11:32) [25]
Ketmar ©
у меня было сделано кривым способом, пытался сделать на рекурсию но то что она глобальная не обратил внимание и ничего не помогало, воть я уже самые пародоксальные идеи выдвигал, хотя сам понимаю что сие полный изврат :) Просто очень хотелось рекурсию :)
Ketmar (2006-10-19 11:32:00) [42]а пинок мой был, кстати, за то, что ты выдвигаешь совершенно кривые прдположения столь безапелляционным тоном. %-)
Ketmar (2006-10-19 11:32:00) [43]>[21] markers(c) 19-Oct-2006, 11:23
>ПО этому я сразу и пошёл писать в раздел "начинающим"......
вот именно. умно. пошёл бы в другое -- получил бы по самое немогу. %-))
markers (2006-10-19 11:23:00) [44]Просто говорю, уже давно не програмил позабыл всё на.... :( ПО этому я сразу и пошёл писать в раздел "начинающим"...... эх.....
markers (2006-10-19 11:21:00) [45]Ketmar © (19.10.06 11:10) [16]
Блин! спасибо тебе!!!! Всё работает !!!!!!!
Всем спасибо!!!!!
Ketmar (2006-10-19 11:19:00) [46]>[17] Плохиш(c) 19-Oct-2006, 11:16
>Спокойно, он же ничего не читал и читать не собирается.
ну зачем так сразу? а вдруг просто не спал неделю? %-)
Elen (2006-10-19 11:19:00) [47]
> markers
Помоему код в [6] вообще не годиться для такого. Зачем тебе постоянно делать Select?
Плохиш (2006-10-19 11:16:00) [48]
> Ketmar © (19.10.06 11:10) [16]
Спокойно, он же ничего не читал и читать не собирается. Вот потопчет чуток кнопки и пойдёт займётся своими прямыми обязанностями ;-)
Ketmar (2006-10-19 11:10:00) [49]>[6] markers(c) 19-Oct-2006, 10:39
>Просто у меня проблема, у меня при этой рекурсии
>перезаписываются переменные
да? точно? прям-таки "перезаписывабтся"? гражданин соврамши. ошибка у тебя совсем в другом месте. а конкретно -- какого ангела ты ожидаешь, что внешняяпеременнаяResRowсохранит свое значение после возврата из рекурсивного вызова? ты её где-то сохраняшь?
markers (2006-10-19 11:10:00) [50]Elen © (19.10.06 11:01) [14]
просто у меня в БД лежат данные и мне нужно построить дерево вида
-кат1
--подкат1
--подкат2
---подподкат1
----...
--подкат3
--..
-кат1
-...
Берём первый корневой кат, проверяем нет ли у него детей (Вызовом самого себя)...... возвращаемся на первый вызов, Берём второй корневой кат ...... и т.д.
Elen (2006-10-19 11:01:00) [51]
> Просто у меня проблема, у меня при этой рекурсии перезаписываются
> переменные
Ну и что? Зачем тебе старые данные если ты перед вызовом рекурсии их обрабатываеш.
Плохиш (2006-10-19 10:59:00) [52]
> markers © (19.10.06 10:39) [6]
> ...
> function catfill(parentid:string='0'; pnod : TTreeNode =
> nil):Boolean;
> var nod: TTreeNode;
> Rsname, Rsid: String; // Надо чтоб имена переменных
> были разными при вызове этой функции
При каждом вызове, они и будут разными переменными.
markers (2006-10-19 10:58:00) [53]Джо © (19.10.06 10:50) [10]
Я на самом деле давно уже в Дельфях пишу, но просто по работе оно надо редко, а дома лень что-то писать, по этому получается я в Дельфях набегами работаю. Естественно что-то забывается и т.д. (Тем более что я более полугода в PHP програмил после дельфей :) :( )
markers (2006-10-19 10:55:00) [54]Elen © (19.10.06 10:47) [9]
Можно поподробней? Плиз!
Джо (2006-10-19 10:50:00) [55]Вредное влияние PHP на рассудок начинающих программистов все еще до конца не оценено :o)
Elen (2006-10-19 10:47:00) [56]
> у меня при этой рекурсии перезаписываются переменные
Юзай глобальный массив
Elen (2006-10-19 10:45:00) [57]
> В некоторых других языках это возможно!
Это в каких?
markers (2006-10-19 10:42:00) [58]Просто в PHP такой код (Только написанный на PHP естественно) работает прекрасно без случайных переменных....
markers (2006-10-19 10:39:00) [59]...
function catfill(parentid:string='0'; pnod : TTreeNode = nil):Boolean;
var nod: TTreeNode;
Rsname, Rsid: String; // Надо чтоб имена переменных были разными при вызове этой функции
begin
ResRow:=DB.exec('SELECT * FROM mag_categories WHERE parentid = '+onequote+
parentid+onequote+' AND cattype <> '+onequote+'Deleted'+onequote+' ORDER ' +
'BY `name` ASC');
Rsname:=VarToStr(ResRow[4]); // А здесь в переменную со случайным именем
Rsid:=VarToStr(ResRow[0]); // нужно занести значение
while not ResRow.eof do
begin
nod := Tree.Items.AddChild(pnod,Rsname); // И поюзать их
nod.Data := Pointer(StrToInt(Rsid)); // И здесь
catfill(Rsid,nod); // И тут
ResRow.next;
end;
// А тут переменную со случайным именем можно освободить (если необходимо)
end;
Просто у меня проблема, у меня при этой рекурсии перезаписываются переменные :( Я подумал ожет таким способом можно сделать?
Elen (2006-10-19 10:38:00) [60]
> markers
Круто! Юзай тип Variant