本文整理汇总了C++中KVString::ReadLine方法的典型用法代码示例。如果您正苦于以下问题:C++ KVString::ReadLine方法的具体用法?C++ KVString::ReadLine怎么用?C++ KVString::ReadLine使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类KVString
的用法示例。
在下文中一共展示了KVString::ReadLine方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Error
void KVDP2toCsIGridConvertor::ReadGammaFile(const Char_t* gammafile)
{
ifstream gamfile;
gamfile.open(gammafile);
if (!gamfile.good()) {
Error(KV__ERROR(ReadGammaFile),
"Problem reading file %s", gammafile);
return;
}
KVString s;
s.ReadLine(gamfile);
while (gamfile.good()) {
if (s == "") {
s.ReadLine(gamfile);
continue;
}
if (!s.BeginsWith('#')) { //'#' sign signals comments
int ring, modu, frun, lrun;
if (sscanf(s.Data(), "%d %d %d %d", &ring, &modu, &frun, &lrun) !=
4) {
Error(KV__ERROR(ReadGammaFile), "Problem reading file %s\nLast line read: %s",
gammafile, s.Data());
return;
};
//get grid for this ring,mod
TString name;
name.
Form
("CsI R-L Grid First run=%d Last run=%d Ring min=%d Ring max=%d Mod min=%d Mod max=%d",
frun, lrun, ring, ring, modu, modu);
KVIDGrid* grid = (KVIDGrid*)fGrids->FindObject(name.Data());
if (!grid) {
Error(KV__ERROR(ReadGammaFile), "Can't find grid %s", name.Data());
}
int npoints;
gamfile >> npoints;
//found gamma line
KVIDLine* line = 0;
if (grid) {
line = grid->NewLine("ok");
line->SetName("gamma_line");
line->Set(npoints);
grid->Add("ok", line);
}
//read in points
for (int i = 0; i < npoints; i++) {
Double_t x, y;
gamfile >> x >> y;
if (grid)
line->SetPoint(i, x, y);
}
}
s.ReadLine(gamfile);
}
示例2: SetPinLasersForCsI
void KVINDRA::SetPinLasersForCsI()
{
// Sets the KVCsI::fPinLaser member of each CsI detector with the number of the
// pin laser associated for the stability control of these detectors.
//
// We look for a file with the following format:
//
// CSI_0101 1
// CSI_0102 1
// CSI_0103 1
// CSI_0104 1
// etc.
//
// i.e. 'name of CsI detector' 'number of pin laser (1-8)'
// Comment lines must begin with '#'
//
// The default name of this file is defined in .kvrootrc by
//
// INDRADB.CsIPinCorr: CsI_PILA.dat
//
// Dataset-specific version can be specified:
//
// INDRA_e999.INDRADB.CsIPinCorr: CorrCsIPin_2054.dat
//
// This file should be in the directory corresponding to the current dataset,
// i.e. in $KVROOT/KVFiles/name_of_dataset
ifstream pila_file;
if (gDataSet->OpenDataSetFile(gDataSet->GetDataSetEnv("INDRADB.CsIPinCorr", ""), pila_file)) {
Info("SetPinLasersForCsI", "Setting correspondance CsI-PinLaser using file %s.",
gDataSet->GetDataSetEnv("INDRADB.CsIPinCorr", ""));
// read file, set correspondance
KVString line;
line.ReadLine(pila_file);
while (pila_file.good()) {
if (!line.BeginsWith("#")) {
line.Begin(" ");
KVString detname = line.Next(kTRUE);
KVCsI* det = (KVCsI*)GetDetector(detname.Data());
Int_t pila = line.Next(kTRUE).Atoi();
if (det) {
det->SetPinLaser(pila);
}
}
line.ReadLine(pila_file);
}
pila_file.close();
}
else {
Info("SetPinLasersForCsI", "File %s not found. Correspondance Csi-PinLaser is unknown.",
gDataSet->GetDataSetEnv("CsIPinCorr", ""));
}
}
示例3: ReadFile
void KVINDRAPulserDataTree::ReadFile(ifstream& fin)
{
// Read data in one file
KVString line;
line.ReadLine(fin);
while( fin.good() ){
if( !line.BeginsWith("#") ){
line.Begin(" ");
KVString br_name = line.Next(kTRUE);
Int_t index = GetIndex(br_name.Data());
fVal[index] = line.Next(kTRUE).Atof();
}
line.ReadLine(fin);
}
fin.close();
}
示例4: ReadFromAsciiFile
void KVTGIDGrid::ReadFromAsciiFile(ifstream& gridfile)
{
// Read grid and parameters of LTG fit used to generate grid in gridfile.
KVIDGraph::ReadFromAsciiFile(gridfile);
KVString line;
if (fPar->GetIntValue("HasTGID")) {
line.ReadLine(gridfile);
if (line.BeginsWith("++KVTGID")) fTGID = KVTGID::ReadFromAsciiFile(GetName(), gridfile);
}
FindAxisLimits();
}
示例5: Error
void KVDP2toIDGridConvertor::ReadFile(const Char_t* filename)
{
// Read grids in file and add to fGrids list
if (!fGridClass) {
Error(KV__ERROR(ReadFile),
"Set class of ID grids to generate first!");
return;
}
ifstream datfile;
datfile.open(filename);
if (!datfile.good()) {
Error(KV__ERROR(ReadFile),
"Problem reading file %s", filename);
return;
}
KVString s;
s.ReadLine(datfile);
while (datfile.good()) {
if (s == "") {
s.ReadLine(datfile);
continue;
}
if (!s.BeginsWith('#')) { //'#' sign signals comments
int ring, modu, frun, lrun, totpoints;
if (sscanf(s.Data(), "%d %d %d %d", &ring, &modu, &frun, &lrun) !=
4) {
Error(KV__ERROR(ReadFile), "Problem reading file %s\nLast line read: %s",
filename, s.Data());
return;
};
KVIDGrid* grid = (KVIDGrid*) fGridClass->New(); //create new grid
//add to list of grids
fGrids->Add(grid);
grid->GetParameters()->SetValue("First run", frun);
grid->GetParameters()->SetValue("Last run", lrun);
grid->GetParameters()->SetValue("Ring min", ring);
grid->GetParameters()->SetValue("Ring max", ring);
grid->GetParameters()->SetValue("Mod min", modu);
grid->GetParameters()->SetValue("Mod max", modu);
int nlines;
datfile >> nlines;
totpoints = 0;
//read Z,A and number of points in each line
for (int i = 0; i < nlines; i++) {
int z, a, npoints;
datfile >> z >> a >> npoints;
totpoints += 2 * npoints;
if (z > 0) {
//identification line
KVIDLine* line = (KVIDLine*)grid->NewLine("id");
line->SetZ(z);
line->SetA(a);
line->Set(npoints);
grid->Add("id", line);
}
else {
//"ok" line
KVIDLine* line = (KVIDLine*)grid->NewLine("ok");
line->Set(npoints);
grid->Add("ok", line);
}
}
ReadLineCoords(grid, datfile);
//calculate line widths in grid
grid->CalculateLineWidths();
}
s.ReadLine(datfile);
}
示例6: OpenAvailableDatasetsFile
Bool_t KVRemoteDataSetManager::OpenAvailableDatasetsFile()
{
//Transfers file $KVROOT/KVFiles/[repository name].available.datasets
//from remote machine containing info on available datasets and
//associated subdirectories in remote data repository.
//Copies to local working directory and opens for reading, if all goes
//well (returns kTRUE).
//Returns kFALSE in case of problems.
//
//N.B. If 'curl' is used to transfer the file, we check for HTML code in the file
//It can happen that 'curl' itself does not give an error when the web server
//is down, but transfers a file which looks like this:
// <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
// <html><head>
// <title>403 Forbidden</title>
// </head><body>
// <h1>Forbidden</h1>
// <p>You don't have permission to access /KaliVedaDoc/ccali.available.datasets
// on this server.</p>
// <p>Additionally, a 403 Forbidden
// error was encountered while trying to use an ErrorDocument to handle the request.</p>
// <hr>
// <address>Apache/2.0.53 (Unix) mod_ssl/2.0.53 OpenSSL/0.9.7a DAV/2 PHP/5.1.6 mod_python/3.2.8 Python/2.4.2 mod_jk/1.2.15 mod_perl/2.0.2 Perl/v5.8.7 Server at indra.in2p3.fr Port 80</address>
// </body></html>
TString http =
gEnv->GetValue(Form("%s.DataRepository.RemoteAvailableRuns.url",
fRepository->GetName()), "");
if (http == "") {
Warning("OpenAvailableDatasetsFile()",
"%s.DataRepository.RemoteAvailableRuns.url is not defined. See $KVROOT/KVFiles/.kvrootrc",
fRepository->GetName());
return kFALSE;
}
TString url;
url.Form("%s/%s", http.Data(), fCacheFileName.Data());
//Find executable 'curl' or programme indicated by
//value of DataRepository.RemoteAvailableRuns.protocol
fCurl = gEnv->GetValue(Form
("%s.DataRepository.RemoteAvailableRuns.protocol",
fRepository->GetName()), "curl");
if(!KVBase::FindExecutable(fCurl)){
Error("OpenAvailableDatasetsFile",
"Executable for file transfer \"%s\" not found. You cannot use remote data repository.",
fCurl.Data());
return kFALSE;
}
TString cmd;
cmd.Form("%s -oremote.available.datasets %s", fCurl.Data(), url.Data());
if (gSystem->Exec(cmd.Data()))
return kFALSE; // problem with curl
fDatasets.open("remote.available.datasets");
if( fCurl.Contains("curl") ){
//check contents of file for HTML code
KVString line; line.ReadLine( fDatasets );
if( line.Contains("<") ){
Error("OpenAvailableDatasetsFile",
"Remote available datasets file transferred by curl contains HTML code :");
//print contents of file
cout << line.Data() << endl;
line.ReadLine( fDatasets );
while( fDatasets.good() ){
cout << line.Data() << endl;
line.ReadLine( fDatasets );
}
Error("OpenAvailableDatasetsFile",
"You cannot use this remote data repository");
return kFALSE;
}
else // no HTML in file : OK
{
//reset stream to beginning of file
fDatasets.clear(); // clear any error flags (EOF etc.)
fDatasets.seekg(0, ios::beg); // set file buffer pointer to beginning of file
}
}
return kTRUE;
}
示例7: ReadFromAsciiFile
KVTGID* KVTGID::ReadFromAsciiFile(const Char_t* name, ifstream & gridfile)
{
// Read parameters of LTG fit in file (which must have been written with
// current version of KVTGID::WriteToAsciiFile)
KVTGID* LTGfit=0;
Int_t Ftyp, Flite, FZorA, Fmass;
FZorA=Fmass=Ftyp=Flite=0;
KVString line;
line.ReadLine(gridfile);
TString buff= GetValue(line,'=');
Ftyp = buff.Atoi();
line.ReadLine(gridfile);
buff = GetValue(line,'=');
Flite = buff.Atoi();
line.ReadLine(gridfile);
buff = GetValue(line,'=');
FZorA =buff.Atoi();
if (FZorA)
{
line.ReadLine(gridfile);
buff = GetValue(line,'=');
Fmass = buff.Atoi();
}
LTGfit = MakeTGID(name,Ftyp,Flite,FZorA,Fmass);
line.ReadLine(gridfile); // skip "Functional=" line : name of functional not used
line.ReadLine(gridfile);
LTGfit->SetValidRuns( KVNumberList(GetValue(line, '=').Data()) );
line.ReadLine(gridfile);
LTGfit->SetStringTelescopes( GetValue(line,'=') );
line.ReadLine(gridfile);
line.Remove(0,6);
line.Remove(KVString::kBoth,' ');
LTGfit->SetVarX(line.Data());
line.ReadLine(gridfile);
line.Remove(0,6);
line.Remove(KVString::kBoth,' ');
LTGfit->SetVarY(line.Data());
line.ReadLine(gridfile);
Int_t zmin,zmax;
sscanf(line.Data(), "ZMIN=%d ZMAX=%d", &zmin, &zmax);
LTGfit->SetIDmin(zmin);
LTGfit->SetIDmax(zmax);
Bool_t type1 = (Ftyp==1);
line.ReadLine(gridfile);
buff = GetValue(line,'=');
LTGfit->SetLambda( buff.Atof() );
if (type1){
line.ReadLine(gridfile);
buff = GetValue(line,'=');
LTGfit->SetAlpha( buff.Atof() );
line.ReadLine(gridfile);
buff = GetValue(line,'=');
LTGfit->SetBeta( buff.Atof() );
}
line.ReadLine(gridfile);
buff = GetValue(line,'=');
LTGfit->SetMu( buff.Atof() );
if (type1){
line.ReadLine(gridfile);
buff = GetValue(line,'=');
LTGfit->SetNu( buff.Atof() );
line.ReadLine(gridfile);
buff = GetValue(line,'=');
LTGfit->SetXi( buff.Atof() );
}
line.ReadLine(gridfile);
buff = GetValue(line,'=');
LTGfit->SetG( buff.Atof() );
line.ReadLine(gridfile);
buff = GetValue(line,'=');
LTGfit->SetPdx( buff.Atof() );
line.ReadLine(gridfile);
buff = GetValue(line,'=');
LTGfit->SetPdy( buff.Atof() );
if (Flite==1){
line.ReadLine(gridfile);
buff = GetValue(line,'=');
LTGfit->SetEta( buff.Atof() );
}
line.ReadLine(gridfile);
return LTGfit;
}
示例8: ReadPredefinedMaterials
void KVRangeYanez::ReadPredefinedMaterials(const Char_t* filename)
{
// Read materials from file whose name is given
TString DataFilePath = filename;
ifstream filestream;
if (!SearchAndOpenKVFile(DataFilePath, filestream, "data")) {
Error("ReadPredefinedMaterials", "Cannot open %s for reading", DataFilePath.Data());
return;
}
Info("ReadPredefinedMaterials", "Reading materials in file : %s", filename);
Bool_t compound, mixture;
compound = mixture = kFALSE;
KVString line;
while (filestream.good()) {
line.ReadLine(filestream);
if (filestream.good()) {
if (line.BeginsWith("//")) continue;
if (line.BeginsWith("COMPOUND")) {
compound = kTRUE;
mixture = kFALSE;
} else if (line.BeginsWith("MIXTURE")) {
compound = kFALSE;
mixture = kTRUE;
}
if (compound || mixture) {
// new compound or mixed material
KVString name, symbol, state;
Double_t density = -1;
KVString element[10];
Int_t natoms[10];
Int_t z[10], a[10];
Double_t proportion[10];
Int_t nelem = 0;
line.ReadLine(filestream);
while (filestream.good() && !line.IsWhitespace() && line != "\n") {
line.Begin("=");
KVString next = line.Next();
if (next == "name") name = line.Next();
else if (next == "symbol") symbol = line.Next();
else if (next == "state") state = line.Next();
else if (next == "density") density = line.Next().Atof();
else if (next == "nelem") {
nelem = line.Next().Atoi();
for (int i = 0; i < nelem; i++) {
line.ReadLine(filestream);
line.Begin(" ");
element[i] = line.Next();
a[i] = KVNucleus::IsMassGiven(element[i]);
KVNucleus n(element[i]);
z[i] = n.GetZ();
if (!a[i]) a[i] = TMath::Nint(n.GetNaturalA());
natoms[i] = line.Next().Atoi();
if (mixture) proportion[i] = line.Next().Atof();
}
}
line.ReadLine(filestream, kFALSE); //do not skip 'whitespace'
}
if (compound) AddCompoundMaterial(name, symbol, nelem, z, a, natoms, density);
else if (mixture) AddMixedMaterial(name, symbol, nelem, z, a, natoms, proportion, density);
compound = mixture = kFALSE;
}
}
}
}