7#include "ProcessImportVicar.h" 
   13#include "Preference.h" 
   14#include "IException.h" 
   15#include "LineManager.h" 
   18#include "SpecialPixel.h" 
   20#include "UserInterface.h" 
   34    ifstream vicFile(vicarFile.toLatin1().data(), ios::in);
 
   37      QString msg = 
"Cannot open vicar file [" + vicarFile + 
"]";
 
   47      lbl << vicLabels << 
" End" << endl;
 
   64      QString pixType = vLab[
"FORMAT"];
 
   66      if(pixType == 
"BYTE") pixelType = UnsignedByte;
 
   67      if(pixType == 
"WORD") pixelType = UnsignedWord;
 
   68      if(pixType == 
"HALF") pixelType = SignedWord;
 
   69      if(pixType == 
"REAL") pixelType = Real;
 
   70      if(pixelType == None) {
 
   71        QString msg = 
"Unsupported pixel type [FORMAT=" + pixType + 
"]";
 
   76      QString order = vLab[
"INTFMT"];
 
   84      QString organization = vLab[
"ORG"];
 
   85      if(organization == 
"BSQ") {
 
   88      else if(organization == 
"BIL") {
 
   91      else if(organization == 
"BIP") {
 
   95        QString msg = 
"Unsupported file organization [" + organization + 
"]";
 
  101      if(vLab.hasKeyword(
"EOL")) {
 
  102        if((
int) vLab[
"EOL"] == 1) {
 
  103          int startByte = (int) vLab[
"LBLSIZE"] +
 
  104                          (
int) vLab[
"NLB"] * (int) vLab[
"RECSIZE"] +
 
  105                          (
int) vLab[
"NL"] * (int) vLab[
"NB"] *
 
  106                          (
int) vLab[
"RECSIZE"];
 
  107          ifstream vicFile(vicarFile.toLatin1().data(), ios::in);
 
  117          for(
int k = 0; k < endLab.keywords(); k++) {
 
  118            vicarLab += endLab[k];
 
  124      QString msg = 
"Input file [" + vicarFile + 
"] does not appear to be a vicar file";
 
 
  140    vicarFile.seekg(startPos, ios::beg);
 
  143    char *lblSizeValue = 
new char [1024];
 
  144    vicarFile.seekg(QString(
"LBLSIZE=").size(), ios_base::cur);
 
  146    for(
int pos = 0; pos < 1024 - 1; pos++) {
 
  147      if(!vicarFile.good())
 
  150      if(vicarFile.peek() == 
' ')
 
  153      lblSizeValue[pos] = vicarFile.get();
 
  154      lblSizeValue[pos + 1] = 
'\0';
 
  158        QString msg = 
"Cannot find label size in VICAR file";
 
  164    delete [] lblSizeValue;
 
  167    char *buf = 
new char[lblSize+1];
 
  170    vicarFile.seekg(startPos, ios::beg);
 
  171    vicarFile.read(buf, lblSize);
 
  176    QString vicLabels = buf;
 
  178    bool inQuote = 
false;
 
  179    for(
int pos = 0; pos < vicLabels.size(); pos++) {
 
  180      if(vicLabels[pos] == 
'\'' || vicLabels[pos] == 
'"') {
 
  184      if(!inQuote && vicLabels[pos] == 
' ') {
 
  185        vicLabels[pos] = 
'\n';
 
 
@ User
A type of error that could only have occurred due to a mistake on the user's part (e....
 
@ Io
A type of error that occurred when performing an actual I/O operation.
 
Adds specific functionality to C++ strings.
 
int ToInteger() const
Returns the object string as an integer.
 
void SetPixelType(const Isis::PixelType type)
Sets the pixel type of the input file.
 
void SetFileHeaderBytes(const int bytes)
This method sets the number of bytes in the header of a file.
 
void SetOrganization(const ProcessImport::Interleave org)
Sets the organization of the input cube.
 
void SetDataPrefixBytes(const int bytes)
This method sets the number of bytes at the beginning of each data record of a file.
 
void SetInputFile(const QString &file)
Sets the name of the input file to be read in the import StartProcess method and verifies its existan...
 
void SetDataHeaderBytes(const int bytes)
This method sets the number of bytes in the header of each datablock of a file.
 
void SetByteOrder(const Isis::ByteOrder order)
Sets the byte order of the input file.
 
@ BIL
Band Interleaved By Line Format (i.e.
 
@ BIP
Band Interleaved By Pixel Format (i.e.
 
@ BSQ
Band Sequential Format (i.e.
 
void SetDataSuffixBytes(const int bytes)
This method sets the number of bytes at the end of each data record of a file.
 
void SetDimensions(const int ns, const int nl, const int nb)
Sets the physical size of the input cube.
 
QString ExtractPvlLabel(int startPos, std::ifstream &vicarFile) const
Returns a valid PVL label based on the start position in the VICAR file.
 
void SetVicarFile(const QString &vicarFile, Pvl &vicarLab)
Opens a vicar file which can then be immediately imported by invoking the inherited StartProcess meth...
 
Container for cube-like labels.
 
This is free and unencumbered software released into the public domain.
 
PixelType
Enumerations for Isis Pixel Types.
 
Namespace for the standard library.