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