Writing and reading TObString

From: lijowski@cosray2.wustl.edu
Date: Mon May 17 1999 - 21:00:41 MEST


   Hello,

   I am trying to write a text into a root file and read it. Below
   is a short macro which is based on Example of macro to add histogram files
   in ROOT page. It crashes in line 41 with a message illegal pointer to 
   class object obj 0x0 .... .

   Am I doing something wrong or is it any other solution?

   Thank you and regards,

   Michal Lijowski

-------------------------------------------------------------------------

void test_TObjString()
{
//   gROOT -> Reset();

   Char_t  Macro_name[80] = "test_TObjString";
   Char_t  infile[200], outfile[200];

// Create a new ROOT file to contain TObjString
 
    sprintf(outfile, "%s.root", Macro_name);
    printf("%s\n", outfile);

    TFile *tfile = new TFile(outfile, "recreate");
    Char_t  large_str[10000];

    TObjString  Comment;
    large_str[0] = '\0';
    sprintf(large_str, "testing TObjString");
    Comment -> SetString(large_str);
    Comment -> Print();
    Comment -> Write();
    Comment -> Delete();
    tfile -> Write("Comment");

    tfile -> Close();

    TObject *obj;
    TKey *key;

    sprintf(infile, "%s.root", Macro_name);
    printf("%s\n", infile);
    TFile *f = new TFile(infile, "read");
    f -> ls();

 // create an iterator to loop through all objects(keys) in the  file
   TIter nextkey(f -> GetListOfKeys());
   while (key = (TKey*)nextkey()) {
       obj = key -> Read();
       if (obj -> IsA() -> InheritsFrom("TObjString") ) {
          TObjString *Comm = (TObjString *) obj;
          Comm -> Print();
       }
   }

   f -> Close();
}



This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:43:33 MET