0

.dimacs次のような形式のファイルが 2 つあります。

 c example_01.cnf
 p cnf 6 9
  1 0
 -2 1 0
 -1 2 0
 -5 1 0
 -6 1 0
 -3 2 0
 -4 2 0
 -3 -4 0
  3 4 -2 0

と、

c example_02.cnf
p cnf 9 6
-7 2 0
7 -2 0
-8 3 0
8 -3 0
-9 4 0
9 -4 0

example_01.cnffileと比較して、 file から(行のいずれかで)同様の値を持つ行のみexample_02.cnfを fileから抽出し、結果を新しいファイルに保存します。example_01.cnfexample_02.cnfexample_result.cnf

この場合、 は次のexample_result.cnfようになります。

c example_result.cnf
p cnf 4 6
-2 1 0
-1 2 0 
-3 2 0
-4 2 0
-3 -4 0
3 4 -2 0 

たとえば、 、1 0-5 1 0およびの行は、 、、および-6 1 0のいずれの番号も.156example_02.cnf

私の現在のコードは次のとおりです。

import scala.io.Source

    object Example_01 {

      val source = Source.fromFile("example_01.cnf")
      val source2 = Source.fromFile("example_02.cnf")
      val destination = new PrintWriter(new File("example_result.cnf"))

      def main(args: Array[String]): Unit = {

        var nrVariables: Int = 0
        var nrLines: Int = 0

        destination.write("c example_result.cnf \n")
        destination.write("p cnf " + nrVariables + " " + nrLines + "\n") //not finished!

        /* How I can compare the all the numbers from the second file 'source2' like in the 'if' statement below? */            
         for(line <- source.getLines()) ; if line.contains("2") & line.contains("0") ) {
            destination.write(line)
            destination.write("\n")
            nrLines += 1        
        }
        source.close()
        destination.close()
      }

このコードでは、2 番目のファイルexample_02.cnfはまだ使用していません。これら 2 つのファイルを比較するにはどうすればよいですか?

4

2 に答える 2