当前位置: 首页>>代码示例>>C++>>正文


C++ StringTokenizer::setLine方法代码示例

本文整理汇总了C++中StringTokenizer::setLine方法的典型用法代码示例。如果您正苦于以下问题:C++ StringTokenizer::setLine方法的具体用法?C++ StringTokenizer::setLine怎么用?C++ StringTokenizer::setLine使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在StringTokenizer的用法示例。


在下文中一共展示了StringTokenizer::setLine方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: readRHS

void MPSReader::readRHS(){

  StringTokenizer *lineTokens = new StringTokenizer(line);
  string nomeVetorRHS;
  string nomeFuncao;
  string valorTermoLivre;

  if (lineTokens->nextToken().compare("RHS") == 0){

    line = fileReader->readLine();

    while (line.compare("BOUNDS") != 0 && line.compare("") != 0 && line.compare("ENDATA") != 0){

      lineTokens->setLine(line);

      //Ler no minimo 3 tokens
      //Nome variavel / Nome Funcao|Restricao / Valor variavel

      if (this->VetorRHSPossuiNome){
        nomeVetorRHS = lineTokens->nextToken();
        nomeFuncao = lineTokens->nextToken();
        valorTermoLivre = lineTokens->nextToken();
      }
      else{
        nomeFuncao = lineTokens->nextToken();
        valorTermoLivre = lineTokens->nextToken();
      }

      //Se nomeFuncao for o nome da funcao objetivo, atribuir variaveis nela
      if (nomeFuncao.compare(funcao->Nome) == 0){
        funcao->TermoLivre = stof(valorTermoLivre.c_str());
      }
      //Se nao, atribuir variaveis a restricao
      else {
        funcao->setTermoLivreRestricao(nomeFuncao, stof(valorTermoLivre.c_str()));
      }

      //Se tiver mais tokens, ler mais duas colunas
      //Nome Variavel e Valor Variavel, obedecendo as mesmas regras anteriores
      if (lineTokens->hasToken()){

        nomeFuncao = lineTokens->nextToken();
        valorTermoLivre = lineTokens->nextToken();

        if (nomeFuncao.compare(funcao->Nome) == 0){
          funcao->TermoLivre = stof(valorTermoLivre.c_str());
        }
        //Se nao, atribuir variaveis a restricao
        else {
          funcao->setTermoLivreRestricao(nomeFuncao, stof(valorTermoLivre.c_str()));
        }
      }

      line = fileReader->readLine(); //ler nova linha ao final
    }

  }
}
开发者ID:vinishiru,项目名称:cuda-simplex,代码行数:58,代码来源:MPSReader.cpp

示例2: readCOLUMNS

void MPSReader::readCOLUMNS(){

  StringTokenizer *lineTokens = new StringTokenizer(line);
  string nomeFuncao;
  string nomeVariavel;
  string valorVariavel;

  if (lineTokens->nextToken().compare("COLUMNS") == 0){

    line = fileReader->readLine();

    while (line.compare("RHS") != 0){

      lineTokens->setLine(line);

      //Ler no minimo 3 tokens
      //Nome variavel / Nome Funcao|Restricao / Valor variavel

      nomeVariavel = lineTokens->nextToken();
      nomeFuncao = lineTokens->nextToken();
      valorVariavel = lineTokens->nextToken();

      //Se nomeFuncao for o nome da funcao objetivo, atribuir variaveis nela
      if (nomeFuncao.compare(funcao->Nome) == 0){
        funcao->addVariavel(nomeVariavel, stof(valorVariavel.c_str()));
      }
      //Se nao, atribuir variaveis a restricao
      else {
        funcao->addVariavelRestricao(nomeFuncao, nomeVariavel, stof(valorVariavel.c_str()));
      }

      //Se tiver mais tokens, ler mais duas colunas
      //Nome Variavel e Valor Variavel, obedecendo as mesmas regras anteriores
      if (lineTokens->hasToken()){
        nomeFuncao = lineTokens->nextToken();
        valorVariavel = lineTokens->nextToken();

        //Se nomeFuncao for o nome da funcao objetivo, atribuir variaveis nela
        if (nomeFuncao.compare(funcao->Nome) == 0){
          funcao->addVariavel(nomeVariavel, stof(valorVariavel.c_str()));
        }
        //Se nao, atribuir variaveis a restricao
        else {
          funcao->addVariavelRestricao(nomeFuncao, nomeVariavel, stof(valorVariavel.c_str()));
        }
      }


      line = fileReader->readLine(); //ler nova linha ao final
    }
  }

}
开发者ID:vinishiru,项目名称:cuda-simplex,代码行数:53,代码来源:MPSReader.cpp

示例3: readROWS

void MPSReader::readROWS(){

  line = fileReader->readLine();
  StringTokenizer *lineTokens = new StringTokenizer(line);
  string desigualdade;
  string nomeFuncao;

  if (lineTokens->nextToken().compare("ROWS") == 0){

    line = fileReader->readLine();

    while (line.compare("COLUMNS") != 0){

      lineTokens->setLine(line);

      desigualdade = lineTokens->nextToken();
      nomeFuncao = lineTokens->nextToken();

      //Objetivo
      if (desigualdade.compare("N") == 0){
        funcao->Nome = nomeFuncao;
      }
      //Igualdade
      else if (desigualdade.compare("E") == 0){
        funcao->addRestricao(nomeFuncao);
        funcao->setDesigualdadeRestricao(nomeFuncao, Igual);
      }
      //Menor ou igual
      else if (desigualdade.compare("L") == 0){
        funcao->addRestricao(nomeFuncao);
        funcao->setDesigualdadeRestricao(nomeFuncao, MenorOuIgual);
      }
      //Maior ou igual
      else if (desigualdade.compare("G") == 0){
        funcao->addRestricao(nomeFuncao);
        funcao->setDesigualdadeRestricao(nomeFuncao, MaiorOuIgual);
      }
      else
        throw 10; //Erro de sintaxe

      line = fileReader->readLine();
    }
  }


}
开发者ID:vinishiru,项目名称:cuda-simplex,代码行数:46,代码来源:MPSReader.cpp

示例4: readBOUNDS

void MPSReader::readBOUNDS(){

  /*				type            meaning
                  ---------------------------------------------------
                  LO    lower bound        b <= x (< +inf)
                  UP    upper bound        (0 <=) x <= b
                  FX    fixed variable     x = b
                  FR    free variable      -inf < x < +inf
                  MI    lower bound -inf   -inf < x (<= 0)
                  PL    upper bound +inf   (0 <=) x < +inf
                  BV    binary variable    x = 0 or 1
                  LI    integer variable   b <= x (< +inf)
                  UI    integer variable   (0 <=) x <= b
                  SC    semi-cont variable x = 0 or l <= x <= b
                  l is the lower bound on the variable
                  If none set then defaults to 1*/

  //Como se trata de um bloco opcional dos problemas,
  //Apenas tratarei os tipos LO e UP.

  StringTokenizer *lineTokens = new StringTokenizer(line);
  string boundType;
  string boundName;
  string nomeVariavel;
  string boundValue;
  string auxRestName; //sera criada uma nova restricao se a fronteira for valida
  Desigualdade tipoDesigualdade;

  if (lineTokens->nextToken().compare("BOUNDS") == 0){

    line = fileReader->readLine();

    while (line.compare("ENDATA") != 0){

      lineTokens->setLine(line);

      //Ler no minimo 3 tokens
      //Nome variavel / Nome Funcao|Restricao / Valor variavel

      boundType = lineTokens->nextToken();
      boundName = lineTokens->nextToken();
      nomeVariavel = lineTokens->nextToken();
      boundValue = lineTokens->nextToken();

      if (boundType.compare("LO") == 0){
        tipoDesigualdade = MaiorOuIgual;
      }
      else if (boundType.compare("UP") == 0){
        tipoDesigualdade = MenorOuIgual;
      }
      auxRestName = funcao->addRestricao();
      //Configurar nova restricao
      funcao->addVariavelRestricao(auxRestName, nomeVariavel, 1.0);
      funcao->setDesigualdadeRestricao(auxRestName, tipoDesigualdade);
      funcao->setTermoLivreRestricao(auxRestName, stof(boundValue.c_str()));

      line = fileReader->readLine(); //ler nova linha ao final
    }

  }

}
开发者ID:vinishiru,项目名称:cuda-simplex,代码行数:62,代码来源:MPSReader.cpp

示例5: tokenize

//...................................................... tokenize ...
bool FileTokenizer::tokenize() {
    ifstream currentFile;             //file to be tokenized
    string inputLine;                 //line that will be read from the file
    StringTokenizer * tkn;         //String tokenizer
    int i;                            //index variable
    string token;                     //token currently extracted
    bool res = true;
    
    tkn = new StringTokenizer();
    tkn->setSeparators(currentSeparators);
    
	// [1] Initialize position and open the file to be tokenized
	tokenPos = 0;
	tokens.clear();
	currentFile.open(currentFileName.c_str(), std::ifstream::in);

	if (currentFile.fail()) {
		std::cerr << "Can't open file [" << currentFileName << "]" << std::endl;

		res = false;

	} else {
        // [2] Read input while the file has not been finished, and tokenize
        while (currentFile.good()) {
            //Get next line
            std::getline(currentFile, inputLine);

			#ifndef _WIN32
            inputLine = StringUtilities::removeAtEnd(inputLine, __CRLF);
			#endif

            //Tokenize
            tkn->setLine(inputLine);
            tkn->tokenize(true);

            /*
             * Add tokens to the token buffer.
             *
             * Tokens are added while they are "correct" tokens. A correct token is a
             * token that is not empty, does not contain "#", and does not appear
             * after a "#" character in the line.
             */
            i = 0;
            while (i < tkn->getNumTokens()) {
                token = tkn->getToken(i);

                if (token == "") {
                    //The token is blank. Do not add but check next token
                    i = i + 1;
                } else {
                    //The token is not blank, and has no comments inside it
                    tokens.push_back(token);
                    i = i + 1;
                }
            }
        }
    }

    currentFile.close();
    
    //Free memory of the ATMStringTokenizer object
    delete tkn;

    return res;
}
开发者ID:gg-uah,项目名称:GARouter,代码行数:66,代码来源:FileTokenizer.cpp


注:本文中的StringTokenizer::setLine方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。