On Wed, 2014-12-03 at 15:38 +0200, Adrian Sevcenco wrote:

> Salut! Datele problemei : dindu-se un fisier de start sa se gaseasca
> recursiv in continut toate fisierele X din toate fisierele X mentionate
> (si tot asha) pina cind lista nu mai e updatada.
> 
> Ce m-am priceput pina acum sa fac e o functie ce cauta in fisierul
> argument toate celelalte fisiere:
> search_macro()
> {
>     local  __resultarg=$2
>     local  __macro_list=`grep -e '\.C' $1 | grep LoadMacro | tr -d "
> \t\r" | awk -F"\"" '{print $2;}'`
> 
>     local  __list=""
>     for m in $__macro_list
>     do
>         __list=$__list" "`eval echo -e "$m"`
>     done
> 
>     if [[ "$__resultarg" ]]; then
>         eval $__resultarg="'$__list'"
>     else
>         echo "$__list"
>     fi
> }
> 
> ce imi returneaza lista de fisiere .C din fisierul argument.
> 
> 1. In afara de c++ exista modalitati mai simple si elegante de a face asta?
> 
> 2. Aveti idee cum se poate face conditia "list (not) updated" ?
> ( poate ceva de genul old_list=$list; list=$new_list;
> if [ "x$list" -ne "x$old_list" ] exit 0 ) ?
> 
> 3. cum pot sa fac functia recursiva?
> sa fac in functia search macro o bucla peste __macro_list in care chem
> search_macro si un break cind nu mai e lista updatata?
> 
> Multumesc frumos de idei!


nu prea am inteles problema de fapt, dar daca ai multe nivele poate
recursivitatea n-ar fi indicata.


in general poti evita recursivitatea cu MAP-uri , consuma mai mult ram
dar reduce complexitatea .







> Adrian
> 
> 
> --------------ms030409090906070607040901--
> _______________________________________________
> RLUG mailing list
> RLUG@lists.lug.ro
> http://lists.lug.ro/mailman/listinfo/rlug


_______________________________________________
RLUG mailing list
RLUG@lists.lug.ro
http://lists.lug.ro/mailman/listinfo/rlug

Raspunde prin e-mail lui