Re: macro problem

From: Rene Brun (Rene.Brun@cern.ch)
Date: Thu Dec 03 1998 - 15:42:25 MET


Hi Roberto,
In addition to the comments already posted on this list, you
can find in $ROOTSYS/tutorials/staff.C an example of macro
where we read many variables from one line. I am sure you will get
some inspiration.

Rene Brun


Dr. Roberto Barbera wrote:
> 
> Hi experts,
> 
> I've modified the tutorial macro basic.C to read an ASCII file
> containing several lines of 12 elements each (3 integers and 9 reals).
> Here is the macro i'm using:
> 
> {
> //
> // A short macro to read the Detector Map file and store the data on
> some
> // useful vectors
> //
> //
> 
>         gROOT->Reset();
>         gBenchmark->Start("readet");
> 
>         Int_t ilayer,iladder,idet;
>         Int_t ncols;
>         Int_t nlines = 0;
> 
>         Float_t f1,f2,f3,f4,f5,f6,f7,f8,f9;
> 
>         FILE *detfile = fopen("file.dat","r");
> 
>         if (detfile <= 0) printf("Error: file could not be open\n");
> 
>         printf("Reading Detector Map from file...\n");
> 
>         while (1) {
>             ncols = fscanf(detfile,"%i %i %i %f %f %f %f %f %f %f %f
> %f",
>             &ilayer,&iladder,&idet,&f1,&f2,&f3,&f4,&f5,&f6,&f7,&f8,&f9);
>             if (ncols < 0) break;
>             if (nlines < 5) {
>                 printf("%i %i %i %f %f %f %f %f %f %f %f %f \n",
>                 ilayer,iladder,idet,f1,f2,f3,f4,f5,f6,f7,f8,f9);
>             }
>             nlines++;
>         }
>         printf(" %i lines found \n",nlines);
>         fclose(detfile);
>         gBenchmark->Show("readet");
>         gROOT->Reset();
> }
> 
> and this is what i get when i run the macro inside ROOT:
> 
> root [0] .x readet.C
> Reading Detector Map from file...
> Limitation: fscanf only takes upto 12 arguments
> FILE:/pcct54_hdb1/barbera/galice
> /v2.06pre/./readet.C LINE:34
>  0 lines found
> readet    : Real Time =   0.02 seconds Cpu Time =   0.02 seconds
> root [1]
> 
> It seems that no lines are read but they indeed ARE in the file. Any
> help will be greatly appreciated.
> 
>                                                 ciao
> 
>                                                 Roberto
> 
> --
> Dr. Roberto Barbera (mailto:roberto.barbera@ct.infn.it)
> Phone: ++.39.095.71.95.232
> Fax: ++.39.095.38.30.23
> WWW: http://www.ct.infn.it/~barbera



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