複合キーワードを一瞬で作るスクリプト

アフィリエイターは、複合キーワードを作成する必要に迫られる場面が多々あるのではないでしょうか?
例えば、アドワーズ出稿する場合などは、何通りものキーワードの組み合わせを用意しないといけません。

ということで、
今回は簡単に複合キーワードを作成できるツール
を公開します。 自動化できる作業はすべて自動化しましょう。

どんなスクリプトにする?

あるキーワード群Aとキーワード群Bをすべて組み合わせ、PRINTで表示する関数を作ります。

必要なモノ

この辺を組合わせて作成します。

スクリプト

DIM str1[] = "日本","ロシア","中国","イギリス","フランス"
DIM str2[] = "酒","ウォッカ","老酒","ビール","ワイン"

FOR num = 0 TO length(str1)-1	

	FOR cnt = 0 TO length(str2)-1	
		STR = str1[num] + " " + str2[cnt]
		print STR
	NEXT

NEXT

実行すると、すべての複合ワードパターンが一瞬で出来ます。

※組み合わせが多くなると、プリントで表示しきれなくなることがあるので、
その場合は、ファイルに書きだすようにすると良いでしょう。

タグ

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

カテゴリー:アフィリエイター

配列の要素をシャッフルしたい

配列の中身をランダムに変更する関数を作りたいのですが、分からないので教えてください
配列を1周する中で、ランダムに選ばれた配列の要素と該当する配列の要素を1対1で入れ替えることで、ランダムに配列の要素をシャッフル出来ます

処理イメージ ※クリックで拡大します

umiumiさんの掲示板で、直撃の関数をしろまささんが回答していたので、参考とさせて頂き、ご紹介します。

コード例

DIM list[] = 1,2,3,4,5,6,7,8,9,10

shuffle(list)

For num = 0 TO length(list)-1
	PRINT list[num]
NEXT

//---シャッフル関数
Procedure shuffle(var list[])
 Dim n = length(list)	//配列の要素数
 Dim i, r, tmp
 for i = 0 to n -1
  r = random(n)	
  tmp = list[r]		//ランダムに選ばれたr番目の配列の値を取得
  list[r] = list[i]	//配列i番目の値をr番目に入れる
  list[i] = tmp		//入替え完了
 next
Fend
ただし、UWSCのバージョンが4.0以上でないとエラーが出るようなので、注意です

タグ

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

カテゴリー:Q&A

HASHTBL

HASHTBL

連想配列を宣言する
・HASHTBL 変数 = HASH_CASECARE
・HASHTBL 変数 = HASH_SORT
・変数[キー, HASH_EXISTS]
・変数[キー, HASH_REMOVE]
・変数[順列番号, HASH_KEY]
・変数[順列番号, HASH_VAL]
・変数 = HASH_REMOVEALL

・HASH_CASECARE・・・大文字小文字を区別する(デフォルト区別無し)
・HASH_SORT・・・順列で呼び出す際にキーがソートされている
・HASH_EXISTS・・・キーが存在する場合Trueを返す
・HASH_REMOVE・・・キー、値を削除する。成功時にはTrueを返す
・HASH_KEY・・・キーを返す
・HASH_VAL・・・値を返す
・HASH_REMOVEALL・・・中身をクリアする

連想配列とは何か

配列は通常、キーに数字を指定します。
連想配列とは、そのキーが数字ではなく、任意の文字列が利用できるものです。
たとえばARRAY[0]、ARRAY[1]としていたものが
ARRAY["NAME"]、ARRAY["TEL"]として値を取り扱えるようになるのです。

//連想配列MYARRAYを宣言、大文字小文字は区別し、ソートする
HASHTBL MYARRAY = HASH_CASECARE or HASH_SORT

//値の代入
MYARRAY["NAME"] = "山本山太郎"
MYARRAY["TEL"] = "090-9999-77777"

//値の呼び出し
PRINT MYARRAY["NAME"]
PRINT MYARRAY["TEL"]

//キーが存在するか
PRINT MYARRAY["ONAMAE", HASH_EXISTS]
PRINT MYARRAY["NAME", HASH_EXISTS]

//キーNAMEを削除
PRINT MYARRAY["NAME", HASH_REMOVE]
PRINT MYARRAY["NAME"]

値とキーをセットで考える際に便利

配列はキーが数字なので、意味はそれ以上もそれ以下もありません。
しかし、連想配列は文字列をキーに取れるので、ある値が格納されているキーに
意味を持たせることができます。
例えば人の名前を変数に格納する際に、その人たちの役職をキーにすると、
人名と役割のセットが出来上がります。
以下のスクリプトで見てみましょう。

この投稿の続きを読む »

タグ

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

カテゴリー:構文・制御文

起動時パラメーター

起動時パラメーター

PARAM_STR[]

スクリプトにパラメーターをつけて起動した場合に上記配列に値が格納される

コマンドプロンプトから起動した場合、CALLで呼び出した場合に活用

スクリプトを起動する際に、パラメーターをつけることができます。
渡したパラメーターはPARAM_STR[]に格納されています。

//スクリプト A.uws 呼び出す側
CALL B.UWS ("Hello","My Friend")
//スクリプト B.uws 呼び出される側
PRINT PARAM_STR[0] + "/" + PARAM_STR[1]

コマンドプロンプトからも呼び出しできます

上記のB.UWSをコマンドプロンプトから呼び出す際も同様にパラメーターを渡せます。
以下のようになります。

この投稿の続きを読む »

タグ

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

カテゴリー:構文・制御文

PUBLIC

PUBLIC

グローバル変数を宣言します
PUBLIC 変数 = 値

・値・・・グローバル変数として設定する値

どこからでも呼び出せるグローバル変数

例えばFUNCTIONやPROCEDUREなどの自作関数の中にある変数は、
自作関数の中で範囲が閉じられています。
同じ変数名を自作関数の外と、自作関数の中で使っても、
両者は互いに影響を及ぼしません。
しかし、グローバル変数にすると、お互い同じ変数を参照することになり
値が変化します。
具体例として以下のスクリプトを見てみましょう。

//グローバル変数
PUBLIC YGLB ="YES"
//ただの変数
DIM NGLB = "NO"

 PRINT "関数実行前:" + YGLB + ":" + NGLB
 PRINT "(↑宣言時の値)"
 DO()
 PRINT "関数実行後:" + YGLB + ":" + NGLB 
 PRINT "(↑変化が影響しているのはPUBLIC宣言の変数)"

//自作関数
PROCEDURE DO()
 YGLB = "はい"
 NGLB = "いいえ"
 PRINT "自作関数の中:" + YGLB + ":" + NGLB 
 PRINT "(↑関数内の値)"
FEND

DIMのような多次元配列も使えるか

結論から言うと、使えます。
スクリプトは以下のようになります。

この投稿の続きを読む »

タグ

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

カテゴリー:構文・制御文

DIM

DIM

変数を宣言します
DIM 変数 = 値

・値・・・変数として設定する値

通常、変数の宣言にDIMは不要

DIMは変数を宣言する際に使用しますが、省略可能です。
OPTION指定でDIM宣言を強制することもできます。
また多次元配列にはDIM宣言が必要なります。
もともとDIMはDimension(次元)の略です。

//VAL=21000も同様
DIM VAL = 21000
PRINT VAL

多次元配列には必要

多次元配列の際には明示的にDIMを使う必要があります。
DIM VAL[2] = 10,20,30
のように表記できます。
最初に配列の数を省略することも可能です。
DIM VAL[] = 15,25,35
サンプルスクリプトは以下の通りです。

この投稿の続きを読む »

タグ

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

カテゴリー:構文・制御文

文字列を数える

文字列を数える関数です

LENGTH(文字列)

文字列
対象となる文字列
引数
文字列: 数える文字列 (もしくは配列変数)
戻値
文字数 (配列変数時は配列サイズを返す)
※ バイト処理の場合は LENGTHB

字列の文字数を取得できます。
COPY関数を利用する時に、
コピーする文字数を算出するために利用されることが多いです。

文字数取得するサンプル
//「22」が表示されます
mojiretu = "UWSCのサンプルを有効活用するアカサタナハ"
NUM = LENGTH(mojiretu)
PRINT NUM

また、配列サイズからFORの回数を取得するために利用することもあります。
これにより配列数分繰返しを行えます。

配列のサイズを取得する
//「6」が表示されます
HASHTBL A

A["ア"] = 1
A["カ"] = 3
A["サ"] = 5
A["タ"] = 4
A["ナ"] = 2
A["ハ"] = 9

PRINT LENGTH(A)

タグ

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

カテゴリー:逆引き関数

このページの先頭へ