读取文件.txt并将其转换为元组实例时出现问题

时间:2019-03-30 12:13:04

标签: opl

我有一个.txt文件,我想读取它并将其转换为实例,以便元组可以读取它

我的文本文件包含:

day 7h 20h

care amy baba

care baba bintou

我想读取文本文件并获取以下数据:

day = <7.20>

care = [<"amy", "baba">

          <"bintou", "baba">
                ]

脚本如下:

// Reads the content of a file and returns its content as a string

function file_to_string(files) {

    var f = new IloOplInputFile(files);

    if (f.exists) {

        //     writeln("Reading file : ", fichier );

        var s = "";

        var indent = "";

        var tab = new Array();

        while (!f.eof) {

            s = s + f.readline() + "\n";

            s = s.split(" ");

        }
        write(s);

        f.close();  // Fermeture fichier instance
    }
    else
        writeln("\nWARNING : the file ", files, " doesn't exist");
    return s;
}

1 个答案:

答案 0 :(得分:0)

您必须定义适当的元组并创建(空)集合。然后,您可以使用元组集合的add函数将新的元组添加到集合中。 此.mod文件

tuple day {
  int field1;
  int field2;
}
{day} days = {};
tuple care {
  string field1;
  string field2;
}
{care} cares = {};

execute {
  var f = new IloOplInputFile("readtuple.data");
  while (!f.eof) {
    var s = f.readline();
    var fields = s.split(" ");
    if ( fields.length < 2 )
      // empty or invalid line
      continue;
    if ( fields[0] == "day" )
      days.add(Opl.atoi(fields[1]), Opl.atoi(fields[2]));
    else if ( fields[0] == "care" )
      cares.add(fields[1], fields[2]);
    else {
      // invalid line
    }
  }
  f.close();
}

execute {
  writeln(days);
  writeln(cares);
}

使用您的数据生成此输出:

 {<7 20>}
 {<"amy" "baba"> <"baba" "bintou">}