人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

perlのスクリプトで以下のようなaa.txt
test1,3
test2,2
test3,20
というファイルが存在した際に
その.plを実行すると
sql文が作成出来るファイルを作成するには
どうしたら出来ますか?

test1は識別IDになってそのtest1の場合は
以下のSQLを3個時間を与えられた範囲内で
ランダムに作成。

結果 ※test1のだけをここに記述する。
INSERT INTO hogehoge ('ランダムなID','test1','2007-06-14')

INSERT INTO hogehoge ('ランダムなID','test1','2007-06-13')

INSERT INTO hogehoge ('ランダムなID','test1','2007-06-18')

範囲は2007-06-11から2007-06-18まで。
このようにaa.txtの中身を取得して
bb.txtにSQL文を出力するには
どうしたらいいでしょうか?

perlでなくてもよいです。

●質問者: hopefully
●カテゴリ:就職・転職 ウェブ制作
✍キーワード:2007-06-14 AA BB Perl SQL
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● Mook
●60ポイント

Perl でなくとも良いということなので、VBS でやってみました。

Windows でなかったら、使えませんのでそのときは読み捨てください(開封ポイントはお返しします)。


ファイルを aa.txt のあるフォルダへ適当な名前(拡張子は .vbs)で保存して、実行(ダブルクリック)してみてください。

Option Explicit

Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")

Dim outFile
'--- 出力ファイル ---
Set outFile = fso.CreateTextFile( "bb.txt" )

'--- 乱数の初期化 ---
Randomize

'--- 入力ファイル ---
Dim line
For Each line In Split( fso.OpenTextFile( "aa.txt" ).ReadAll, vbNewLine )
 Dim wordArray
 wordArray = Split( line, "," )
 If UBound( wordArray ) = 1 Then
 Dim i
 For i=1 To wordArray(1)
 outFile.WriteLine "INSERT INTO hogehoge('" & getRandID() & "','" & wordArray(0) & "','" & getRandDate() & "')"
 Next
 End If
Next

'---------------------------------------------
Function getRandID()
'---------------------------------------------
' とりあえず乱数で作成
'---------------------------------------------
 getRandID = Right("00000000" & CLng( Rnd() * 100000000 ), 8 )
End Function

'---------------------------------------------
Function getRandDate()
'---------------------------------------------
' とりあえず乱数で作成
'---------------------------------------------
 getRandDate = "2007-06-" & 11 + CInt( Rnd() * 100 ) Mod 8
End Function

不明な点は、コメントでも回答いたします。

◎質問者からの返答

すいません。linux環境です。。。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ