diff --git a/include/assoc.cpp b/include/assoc.cpp index 4697226b3..6209886c8 100755 --- a/include/assoc.cpp +++ b/include/assoc.cpp @@ -218,3 +218,26 @@ THash_object* TAssoc_array::get_hashobj() return (THash_object*)arr->objptr(_col++); } + + +// mette chiavi e opzionalmente valori (come stringa) nel +// TString_array passato +int TAssoc_array::get_keys(TString_array& kl, bool add_values) +{ + kl.destroy(); restart(); + THash_object* o = NULL; + TString tmp(80); + while (o = get_hashobj()) + { + TToken_string* tt = new TToken_string(o->key()); + if (add_values) + { + tmp = ""; + tmp << o->obj(); + tt->add(tmp); + } + kl.add(tt); + } + restart(); + return kl.items(); +} diff --git a/include/assoc.h b/include/assoc.h index 19d2f24e6..6a56f1119 100755 --- a/include/assoc.h +++ b/include/assoc.h @@ -109,6 +109,10 @@ public: // @cmember Azzera il numero di righe e colonne della tabella hash void restart() { _row = 0; _col = 0; } + + // mette chiavi e opzionalmente valori (come stringa) nel + // TString_array passato + int get_keys(TString_array& kl, bool add_values = FALSE); // @cmember Costruttore TAssoc_array() : _cnt(0), _row(0), _col(0)