前提・実現したいこと
GoogleドライブにあるCSVデータをスプレットシート内に取り込むプログラムを作成しています。
GoogleドライブにあるCSVデータをarray化はできたのですが、そのデータが固定長で、delimiter設定がうまくできません。
また、そのデータ内には「¥」やら「,」が存在し、文字列として差別化しなければならない状態です。
上記の状態の固定長データを取り出すことは実現できたのですが、
私自身がプログラム経験なしの独学のため、賢い書き方がわかりません。
下記コードを、プログラマの視点から見て自分ならこうするなどのご意見を頂けると幸いです。
該当のソースコード
GoogleAppsScript
1function test(){ 2 var arr,arr2,rec,num,ssOut 3 4 arr = MyLibrary.importCSVData(folderID,fileName) 5 //Googleドライブ内のフォルダIDとファイルNameからarray化しています。 6 rec = []; 7 arr2 = []; 8 9for (var a = 0; a < arr.length-1; a++){ 10 num = arr[a].toString()//「,」が含まれたデータのため、差別化してます。 11 rec.push(num.slice(0,6))//ここから固定長データをゴリ押しで分離します。 12 rec.push(num.slice(6,16)) 13 rec.push(num.slice(16,24)) 14 rec.push(num.slice(24,27)) 15 rec.push(num.slice(27,39)) 16 rec.push(num.slice(39,60)) 17 rec.push(num.slice(60,70)) 18 rec.push(num.slice(70,81)) 19 rec.push(num.slice(81,90)) 20 rec.push(num.slice(90,91)) 21 rec.push(num.slice(91,92)) 22 rec.push(num.slice(92,99)) 23 rec.push(num.slice(99,105))//ここまで固定長データを分離してます。 24 arr2.push(rec)//分離した「,」区切りのarr[a]を格納していきます。 25 rec = [] 26 } 27 28 arr2 = MyLibrary.replaceFt(arr2,"\","¥") 29 //array内の「¥」文字を張り付けたときに[]にならない様に置換しています。 30 //以降arrayの貼り付けプログラム 31 32}
試したこと
私個人としては
rec.push(num.slice(6,16))
rec.push(num.slice(16,24))
rec.push(num.slice(24,27))
rec.push(num.slice(27,39))
の書き方が改善の余地がありそうな気がしてはいても、その方法が解らない状態になります。
固定長データを取り扱うメソッドを検索してもGoogleAppScriptでは
情報がみつかりませんでした。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。