33static const char strESC=
'\033';
50 if(jc ==
G4int(G4String::npos))
break;
52 for(; jc<
G4int(astream.length()); ) {
53 if(astream[(
size_t)(jc)]==
' ') jc++;
64 for(
G4int i=0; i<nElement; i++){
66 if(jc !=
G4int(G4String::npos))
67 stringArray[i]= astream(indx, jc-indx);
69 jc= astream.length()+1;
70 stringArray[i]= astream(indx, jc-indx);
72 for(
G4int j=1; jc+j<
G4int(astream.length()); j++ ) {
73 if(astream(jc+j)==
' ') jc++;
84 delete [] stringArray;
91 if( !(icol>=1 && irow>=1))
93 if(icol>nColumn)
G4cerr <<
"G4UIArrayString: overrange" <<
G4endl;
95 G4int jq= (irow-1)*nColumn + icol;
96 if(jq> nElement)
G4cerr <<
"G4UIArrayString: overrange" <<
G4endl;
99 return &stringArray[jq];
103G4int G4UIArrayString::GetNRow(
int icol)
const
107 if(nElement%nColumn ==0) ni= nElement/nColumn;
108 else ni= nElement/nColumn + 1;
111 if(nn==0)
nn= nColumn;
113 if(icol<= nn)
return ni;
118G4int G4UIArrayString::GetNField(
int icol)
const
122 for (
G4int iy=1; iy<= GetNRow(icol); iy++) {
123 G4int ilen= GetElement(icol,iy)-> length();
127 const char tgt = (*GetElement(icol,iy))[(
size_t)0];
132 if(ilen> maxWidth) maxWidth= ilen;
139int G4UIArrayString::CalculateColumnWidth()
const
144 for(
G4int ix=1; ix<= nColumn; ix++) {
145 totalWidth+= GetNField(ix);
148 const G4int nwSpace= 2;
149 totalWidth+= (nColumn-1)*nwSpace;
159 while( CalculateColumnWidth()< ncol ) {
162 while( CalculateColumnWidth()> ncol && nColumn>1 ) {
166 for(
G4int iy=1; iy<= GetNRow(1); iy++) {
168 if(iy == GetNRow(1)) {
169 nc= nElement%nColumn;
170 if(nc==0) nc= nColumn;
172 for(
G4int ix=1; ix<=nc; ix++) {
173 G4String word= GetElement(ix,iy)-> data();
179 const char tgt = word[(size_t)0];
181 colorWord= word(0,5);
184 if(!colorWord.empty())
G4cout << colorWord << std::flush;
186 G4cout << std::setiosflags(std::ios::left) << std::setw(GetNField(ix))
187 << word.c_str() << std::flush;
189 if(ix != nc)
G4cout <<
" " << std::flush;
G4DLLIMPORT std::ostream G4cerr
G4DLLIMPORT std::ostream G4cout
str_size index(const char *, G4int pos=0) const
G4String strip(G4int strip_Type=trailing, char c=' ')
G4UIArrayString(const G4String &stream)