1

一部のデータをファイルに出力しようとしていますが、データをファイルに簡単に出力できます。しかし、ファイルに 2 回目にデータを出力すると、前のデータが追加されます。私がやりたいことは、以前のデータをクリアし、新しいデータに古いデータを追加せずに新しいデータのみを挿入することです。以下は私のコードです:

     file-open "savedgame.txt"

       foreach sort turtles [
    ask ? [
      file-print (turtlenumbers) // ; This appends the "turtlenumbers" with old data in
                                 //  ;  file (if any). I want to clear file before 
                                 //  ;writing "turtlenumbers" in the file


       file-print ""

    ]
  ] 
   file-close
4

1 に答える 1

2

file-openNetLogo 辞書のドキュメントによると:

書き込みモードでファイルを開くと、新しいデータはすべて元のファイルの末尾に追加されます。元のファイルがない場合は、代わりに新しい空のファイルが作成されます。(ファイルのディレクトリに書き込み権限が必要です。) (ファイルの既存の内容を追加するのではなく、置き換えたい場合は、最初に削除するために使用します。既に存在するかどうかわからない場合はfile-delete、おそらく a 内で削除します。 carefully.)

つまり、これを最初の行として追加します。

carefully [ file-delete "savedgame.txt" ] [ ]
于 2013-04-13T14:10:16.633 に答える