ファイル書き込み

ファイル書き込み
FPUT( ファイルID, 書込み値, [行, 列] )

引数
・ ファイルID・・・FOPENで取得したファイルID
・書込み値・・・ファイルに書き込む値
・行・・・書込み行(1から指定)、0で行末に追加。
F_ALLTEXTを指定した場合は行ではなくファイルの全内容として書き込む
・列・・・書込み列(1から指定)
カンマ区切りのCSVファイルに対応
F_INSERTを指定した場合は指定行に挿入
※書き込み内容の反映はFCLOSEの実行時

ファイルに値を書き込む

ファイルを開き、値を書き込む
こういった処理はよくありますが、FOPENでのファイルオープンや、
FCLOSEによるファイルクローズと言った手続きを忘れてしまいがちです。
下記はファイルに値を書き込むシンプルなスクリプトの例です。

//C:\temp.txtに日付を記入したファイルを作成
FNAME = "C:\temp.txt"
DOSCMD("echo %DATE% %TIME% > " + FNAME)
//ファイルをオープン
ID = FOPEN(FNAME,F_READ or F_WRITE)

//ミリセカンドまで含めた時間を10回書き込む
FOR A = 1 TO 10
GETTIME()
NOW = G_TIME_YY + "/" + G_TIME_MM + "/" + G_TIME_DD + " " + G_TIME_HH + ":" + G_TIME_NN + ":" + G_TIME_SS + "." + G_TIME_ZZ
FPUT(ID,NOW)
NEXT

//最後にファイルクローズ
FCLOSE(ID)

//中身を確認した後、ファイル自体は削除
DOSCMD("notepad " + FNAME)
DOSCMD("del " + FNAME)

CSVファイルの指定位置に値を書き込む

次にFPUT関数の様々な引数を利用し
CSVファイルの指定位置に情報を書き込んで見ます。
サンプルでは3行のカンマ区切りのファイルの中で、
3行目の4つ目の値を対象にしています。 スクリプトは下記のようになります。

この投稿の続きを読む »

タグ

2012年5月24日 | コメントは受け付けていません。 |

カテゴリー:逆引き関数

まとめて特定の組合わせの文字列をつくりたい。

まとめて特定の組合わせの文字列をつくりたい。
具体的には、アフィリエイト用のキーワードを作りたいと思っています。
例) 
Aグループ
FX
株式
日経225
先物
Bグループ
登録
入会
口座開設
比較

それぞれのグループのワードを全て組合わせたキーワードを作成したいです。
FX 登録、FX 入会、FX 口座開設、FX 比較、株式 登録、株式 入会・・・
といった具合です。よろしくお願いします。

EXCELでもできないことはありませんが、
すべての組合せをいちいちやるのは大変ですね。

また、VBAを利用する方法がありますが、
UWSCと較べると少しハードルが高いようです。

UWSCならば、FOPEN関連のスクリプトを使えば簡単にできます。
前提として、
Aグループのワードを1語づつ改行したテキストファイルをA.txt
同様にBグループをB.txtとします。

PRINTで組合せを表示するサンプル
///ファイルオープン
fid	= FOPEN("A.txt", F_READ)
fid2	= FOPEN("B.txt", F_READ)

For KAISU_A = 1 to FGET(fid, -1)

	STR_A = FGET(fid, KAISU_A)	//A.txtのデータを取得
	For KAISU_B = 1 to FGET(fid2, -1)
		
		STR_B = FGET(fid2, KAISU_B)	//B.txtのデータを取得

		PRINT STR_A + " " + STR_B	//AとBを組合わせる

	NEXT
NEXT
FCLOSE(fid)
FCLOSE(fid2)

解説

使用している関数はFOPEN,FGET,FOR~NEXTになります。
これら個々の説明は関数一覧などを参照していただくとして、
サンプルの中で、覚えておきたいのは、
FGET(fid, -1)です。

通常、FGET関数は、fidの後は行番号を指定しますが、
「-1」の場合、ファイルの行数を返します。

これにより、ファイルの行数分、上からデータを取得できます。
このテクニックは非常に有効なので、覚えておくと便利です。

後は、すべての組合せを実現するためにFORの中でFORをかます
というテクニックですべての組合せを行えます。

さらに便利に使いたい場合は、
A.txtをフォームから生成させる方法などがあります。

タグ


2012年4月15日 | コメントは受け付けていません。 |

カテゴリー:Q&A

このページの先頭へ