日常の進捗

主に自分のための,行為とその習慣化の記録

ProcessingでCSVファイルを生成する

退屈なことはProcessingにやらせようの観点で、必要にせまられ今日は事務的なプログラミングとして、テスト用のCSV(Comma-Separated Values)を出力した。テキストファイルの出力はPrintWriterというクラスを使う。日付と時間からファイル名を生成する関数を以前作っていたのでそれを流用した。便利。

今回はスプレッドシートで使うから良いけどExcelで開く場合は文字コードの変換(UTF-8→Shift-JIS)が必要。

f:id:takawo:20170820083058p:plain

int col = 15;
int row = 24;
float offset = 10;

void setup() {
  createCSV(col, row);
}

void createCSV(int col, int row) {
  noFill();
  String fileName = createFileName();
  PrintWriter output = createWriter(fileName);
  for (int j = 0; j < row; j++) {
    String rowStr = "";
    int sum = 0;
    for (int i = 0; i < col; i++) {
      if (random(1) < 0.5) {
        rowStr += "○";
      } else {
        rowStr += "x";
        sum++;
      }
      rowStr += ",";
    }
    output.println(rowStr + sum);
  }
  output.flush();
  output.close();
  noLoop();
  exit();
}

String createFileName() {
  String fileName= nf(year(), 2) + nf(month(), 2) + nf(day(), 2) +"-"+ nf(hour(), 2) + nf(minute(), 2) + nf(second(), 2);
  fileName += ".csv";
  return fileName;
}