□投稿者/ senkun -(2002/01/10(Thu) 17:56:22)
□U R L/ |
業務っぽい作品が無かったので、とりあえずUP。 やっていることは単純に、CSVを(SQL)Insert文に変えるだけです。
使用方法は、 @読込ボタンにて、CSVの読込。 A二段目のエディタに以下の呪文を記入する。 N:数値 C:文字列 EX・・・列A(数字),列B(文字),列C(数字)のとき N,C,N B変換ボタンを押すと、グリッドに内容が格納。 C生成ボタンで、Insert用のファイルを作成します。
なぜ、このようなお恥ずかしいソースを載せたのかと言うと、 実は、これ100行程度でしか、動作しません。 それ以上だと、超遅いのか固まります。
昔(ひまわりV0.90ぐらいのとき)につくって、そのまま解決してなく、 現在は、汎用性のない何本かのCSV関連処理があるのですが、 結局は、このソースが動かないのが気になります。 質問のコーナーではないのですが、もし、問題がわかる方は、 ご指摘いただけると幸いです。
'----------------------------------- (以下ソース 現在のVersion="0.10" 母艦の、可視は、オフ。
' [フォーマット内容] ' N(デフォルト) :数字 ・・・そのまま出力 ' C :文字(時間) ・・・「''」で括る
母艦の、テキストは、「CSV Tool@ 〜Insert文作成編〜」。 この背景色は、RGB(255,231,181)。
*初期化処理 '-- 画面初期化 この背景色で、画面クリア。
文字サイズは、11 (10,10)へ、移動。 TXT表示欄を、メモとして、作成。 その、幅は、530 その、高さは、180
基礎INSERT文を、エディタとして、作成。 その、幅は、530。 その、高さは、10。
CSV表示欄を、グリッドとして、作成。 その、幅は、530。 その、高さは、180。
(550,10) へ、移動。 読込ボタンを、ボタンとして、作成。 その、テキストを、読込に、設定。 その、イベントを、読込押下時に、設定
変換ボタンを、ボタンとして、作成。 その、テキストを、変換に、設定。 その、イベントを、変換押下時に、設定
生成ボタンを、ボタンとして、作成。 その、テキストを、生成に、設定。 その、イベントを、生成押下時に、設定
閉じるボタンを、ボタンとして、作成。 その、テキストを、閉じるに、設定。 その、イベントを、閉じる押下時に、設定。
母艦の、可視は、オン。 待機。
'****************************** イベント処理群 *************************** *読込押下時 「CSVファイル|*.csv|テキストファイル|*.txt」 の、 読込ファイル選択 選択ファイルは、それ。 選択ファイルの、要素数。{行数でも、同じ結果です!} もし(それ=0)ならば、 待機。 もし(それ=1)ならば、 読み込みファイルは、選択ファイル#0 もし(それ>1)ならば、 ( それは、選択ファイル 「\n」を、「|」に、置換。 「選択項目を1つに絞ってください。」が,それの, どれか尋ねる。 読み込みファイルは、それ。 )
もし、読み込みファイル=""ならば、 待機。
読み込みファイルを、読む。 TXTデータは、それ。 TXT表示欄の、テキストを、TXTデータ{表示用}に、設定。 待機。
*変換押下時
編集済みデータは、基礎INSERT文の、テキスト&「\n」&TXT表示欄の、テキスト。 TXT表示欄の、テキストは、""
編集済みデータを、母艦のパス&「tmp_insert」に、書く。 母艦のパス&「tmp_insert」を、読む。
基礎INSERT文の、テキストを、「INSERT INTO table名 ({編集済みデータ#0})」に、設定。
CSV表示欄の、テキストを、編集済みデータに、設定。 待機。
*生成押下時
「.csv」の、書込ファイル選択。 出力ファイルは、それ。
もし (出力ファイル="")ならば、 待機。 CSVデータは、編集済みデータ CSVデータの、要素数。 CSV行数は、それ。
CSVデータ#0を、","で、区切る。 それの、要素数。 CSV列数は、それ。 列カウンタは、0 行カウンタは、0
CSV列数回{だけ、繰り返す}( もし、(CSVデータ#列カウンタ#0="C")ならば、( '// 列単位に、洗いなおす (CSV行数-1)回{だけ、繰り返す}( CSVデータ#列カウンタ#回数 =『'』& CSVデータ#列カウンタ#回数 &『'』 ) ) 列カウンタは、列カウンタ+1 )
出力データは、「」。 CSVデータを、反復( 行データは、それ。 もし、(回数<>1)ならば、( 出力データは、出力データ & 「{基礎INSERT文} VALUES({行データ})\n」 ) )
それは、出力データ。{なので、}出力ファイルへ、書く。 待機。
*閉じる押下時 おわり。
|
|