見出し画像

【Console Application】ファイルとデータベース 302【学習記】

今回の概略

自分で追加したくせに引数の構想を誤っていた事が発覚😞
配列処理を1階層減らして解決🤪

#学習記 #Objective_C

【Console Application】ファイルとデータベース【学習記】
仕様
https://note.com/sayka/n/nb8a67fa90a64?magazine_key=m7bb64c6a359f#br1mB

仕様
レコード
・レベル
 1-12
・難易度
 b,n,h,a,l
・曲名
・ランプ
 -,x,a,e,c,h,e,f

オプションスイッチ
-u file.csv # 更新(略値)
 ファイル名だけ指定した場合更新処理と見做す
-d file.csv # 削除
-p # csv 出力(略値)
 何も指定せずに起動した場合出力処理と見做す
-v # バージョン
-h # ヘルプ

----備忘録
(現在無し)


前回の粗筋

どこかで違うクラスの同名関数を間違えて呼んでいる…?



デバグ

まずはエラーになって、想定と違う型を投げている、ブレイクが貼られた箇所の原本との比較を確認するぽ😑

前回最後にブレイクを貼った箇所
原本の該当処理付近

………🤔
原本、 SLIB.tableStringToString 呼んでないお😭
ただ、書出しの処理も違うので知らない物呼んでる即ち悪ではないのだけど…😑
原本見る限りでは1行ずつ処理しているけれど OCObjective-C では一発で書き出すから、行で配列になってる文字列の束を更に1つの文字列に連結する tableStringToString を作ったんだったと記憶してるお🤔

実際に原本で検索しても掛からない

と言う事はどこかで余剰に配列を結合して文字列にしすぎているか呼び元で型がおかしいか、なんだけど…😑

saveCsv 自体の引数型は NSArray
引数有りを呼ぶ saveCsv の cs も NSArray
原本の引数無し saveCsv
原本の tableStringToArrayString
OC の tableStringToArrayString

………😑ワカラン
結局もっかい流してどこで型が合わなくなってるか見るしかない🙄

じゃぁまぁ、またここmain の saveCsvから開始って事で😑

この段階ではまだ引数の cells は1要素に1行の情報を持つ NSMutableArray で、中身は1行内のセルの値の配列なので想定通り🤔

配列だけ版から区切り文字有りが呼ばれる、まだ想定内😑

更に囲み文字指定版が呼ばれる…まだ、まだよ?すていおあずけ、すていよ?😳

1行1文字列…想定内…🙄

ここまでは大丈夫…無引数 saveCsv 、無罪😑

て事は、やっぱり「新たに用意した tableStringToString が犯人」なワケよね…😞
もしかして、 NSArray<NSString> で処理しないとならないのに NSArray<NSArray<NSString>> の大元の cells 状態から加工しようとしてるんじゃ…なんかそんな気がしてきた…🙄自分だし凄いやりそう

………🤔
下手人発見99行🤤
予想通り cells 前提で組まれてるお😞
そらまぁ配列が1次元足りないんだから count 掛けようとしてももう文字列だから怒られるわいな🙄
しかも区切りが改行じゃなくてカンマってところが更にダメ😞

もしこれを原本に近い構造のまま移植したいなら一発全部書出しじゃなくて「追記+w」みたいな方でやると似た構造のまま行けるかな🤤
今回のは tableStringToString を直す方向で処理するぽ😑

ヨシ!👈🤪


次回は

-u かな🤤
移植部分はだいたい大丈夫だけど、言語の違いで書き換えたり新実装するとそこで不具合が多発してるからまだ油断できない😞

この記事が気に入ったらサポートをしてみませんか?