teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

回答編集時にコード以外の部分を消してしまってたので復活

2020/04/27 16:03

投稿

draq
draq

スコア2577

answer CHANGED
@@ -1,3 +1,7 @@
1
+ こんなイメージでしょうか。
2
+ 月次CSVが大きくなりすぎると処理時間やメモリが問題になるかもしれません。
3
+ あと処理するファイルの順番は気にしていないので必要なら事前にソートしてください。
4
+
1
5
  ```JavaScript
2
6
  function myFunction() {
3
7
  const parentFolder = DriveApp.getFolderById("....");

2

マークダウンの構文ミスを修正

2020/04/27 16:03

投稿

draq
draq

スコア2577

answer CHANGED
@@ -1,3 +1,4 @@
1
+ ```JavaScript
1
2
  function myFunction() {
2
3
  const parentFolder = DriveApp.getFolderById("....");
3
4
 
@@ -35,4 +36,5 @@
35
36
  parentFolder.removeFile(dailyFile);
36
37
  }
37
38
  }
38
- }
39
+ }
40
+ ```

1

質問の修正内容に合わせて回答を変更しました。

2020/04/27 08:53

投稿

draq
draq

スコア2577

answer CHANGED
@@ -1,10 +1,5 @@
1
- こんなイメージでしょうか。
2
- 月次CSVが大きくなりすぎると処理時間やメモリが問題になるかもしれません。
3
- あと処理するファイルの順番は気にしていないので必要なら事前にソートしてください。
4
-
5
- ```JavaScript
6
1
  function myFunction() {
7
- const parentFolder = DriveApp.getFolderById("1QHQjYE7_Yx75w2yaVTbs8QwkAqvSGpK4");
2
+ const parentFolder = DriveApp.getFolderById("....");
8
3
 
9
4
  //指定したフォルダ以下のCSVファイルを列挙するイテレータを取得する
10
5
  //※全フォルダを対象にしたい場合は parentFolder のかわりに DriveApp を指定する
@@ -14,7 +9,7 @@
14
9
  const dailyFile = dailyFiles.next();
15
10
 
16
11
  //ファイル名がマッチするか正規表現でテストする
17
- const result = /^([0-9]{4})([0-9]{2})[0-9]{2}_テスト1Record.csv/i.exec(dailyFile.getName());
12
+ const result = /^([0-9]{4})([0-9]{2})[0-9]{2}_テスト1Record(~[0-9]+)?.csv/i.exec(dailyFile.getName());
18
13
  if(result && 0 < result.length) {
19
14
  //ファイル名から年月を取り出し
20
15
  const year = Number.parseInt(result[1]);
@@ -35,10 +30,9 @@
35
30
  else {
36
31
  parentFolder.createFile(monthlyFilename, dailyData);
37
32
  }
38
-
33
+
39
34
  //ファイルを削除
40
35
  parentFolder.removeFile(dailyFile);
41
36
  }
42
37
  }
43
- }
38
+ }
44
- ```