Problem of TKey looping

Hi,

I have a problem for looping on all keys of a root file.
However the TFile::GetListOfKeys()->Print() gives me right ouptut.

I can’t find my error, can anybody help me ?

Thank you in advance,

Arnaud.

void sigma_mean(const char *path) { TFile *f = new TFile((const char *) path, "READ"); f->GetListOfKeys()->Print(); TIter next(f->GetListOfKeys()); TKey *key; while((key=(TKey*)next())) { printf("."); } f->Close(); }

[quote=“output”]lxpub2> bin/analyse /msa3/adeprell/200512121331.root sigma_mean
TKey Name = r1, Title = Config nr: 1, Cycle = 1
TKey Name = r2, Title = Config nr: 2, Cycle = 1
TKey Name = r3, Title = Config nr: 3, Cycle = 1
TKey Name = r4, Title = Config nr: 4, Cycle = 1
TKey Name = r5, Title = Config nr: 5, Cycle = 1
TKey Name = r6, Title = Config nr: 6, Cycle = 1
TKey Name = r7, Title = Config nr: 7, Cycle = 1
TKey Name = r8, Title = Config nr: 8, Cycle = 1
TKey Name = r9, Title = Config nr: 9, Cycle = 1
TKey Name = r10, Title = Config nr: 10, Cycle = 1
TKey Name = r11, Title = Config nr: 11, Cycle = 1
TKey Name = r12, Title = Config nr: 12, Cycle = 1
TKey Name = r13, Title = Config nr: 13, Cycle = 1
TKey Name = r14, Title = Config nr: 14, Cycle = 1
TKey Name = r15, Title = Config nr: 15, Cycle = 1
TKey Name = r16, Title = Config nr: 16, Cycle = 1
=> the same ouptut up to r172[/quote]

So no “.” appears, this means the program never enters the loop :frowning:

Moreover, when I want to call TKey::GetName() I receveive this:

[quote=“output”]src/standalone/sigma_mean.cc:17: invalid use of undefined type struct TKey' ../root/include/TDirectory.h:38: forward declaration ofstruct TKey’[/quote]

Hi,

use while(...) {printf("."); fflush(stdout);}
and #include "TKey.h"

Axel.