Dear rooters. Please let me repost my problem, because it is not due to using or not using CINT extensions, and I hav'nt get an answer yet. Once I've closed a root file, i'm not able to write again into an already created directory. The newly written object appears in memory but not on disk. After closing and reopening the file, it is lost. ALso I cant delete an object after reopening the file. This also happens with compiled code. This macro is only an example, because it behaves in the same manner! { gROOT.Reset(); TFile file("test.root","recreate"); gDirectory->mkdir("dir1"); gDirectory->cd("dir1"); named = new TNamed("amo","amo"); named->Write("amo"); gDirectory->ls(); file->Write(); file->Close(); printf("------file closed-------\n"); TFile file("test.root","update"); gDirectory->cd("dir1"); named = new TNamed("eva","eva"); named->Write("eva"); gDirectory->ls(); file->Write(); file->Close(); printf("------file closed-------\n"); TFile file("test.root","update"); gDirectory->cd("dir1"); gDirectory->ls(); } and this is the output: root [0] .x new.C TDirectory* dir1 dir1 KEY: TNamed amo;1 amo TFile Writing Name=test.root Title= ------file closed------- TDirectory* dir1 dir1 KEY: TNamed amo;1 amo KEY: TNamed eva;1 eva TFile Writing Name=test.root Title= ------file closed------- TDirectory* dir1 dir1 KEY: TNamed amo;1 amo root [1] -------------------------------------------------- and eva is lost! Thanks in advance Hajo
This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:34:35 MET