クリップボードから文字列を取得する方法

クリップボードから文字列を取得するにはGETSTR関数を利用します。

GETSTR関数は通常エディットコントロールから文字列を取得しますが、引数でクリップボードを指定することでクリップボードから文字列を取得できます。

 

クリップボードから文字列を取得するサンプル

str = GETSTR(0)

 

GETSTR関数リファレンス

GETSTR関数のリファレンスをマニュアルから転載します。

戻値 = GETSTR( ID, [番号, 種別, マウス移動] )
引数
 ID: Windowを識別するID
    (ID = 0 であれば クリップボードから)
 番号: 左上から数えたコントロールの順番 (1から指定、マイナスを付けた場合にはDisable状態のものもカウント)
     (0:デフォルトはフォーカスを持ったコントロール)
     (ステータスバー指定時はパーツ)
 種別:
    STR_EDIT (0)    // エディトコントロール (デフォルト)
    STR_STATIC (1)   // スタティクコントロール
    STR_STATUS (2)   // ステータスバー
    STR_ACC_EDIT (3)  // アクセシビリティ用インターフェース経由でのエディト内文字
    STR_ACC_STATIC (4) // アクセシビリティ用インターフェース経由でのスタティク文字
    STR_ACC_CELL (5)  // DataGridView内のCell値を取得
 マウス移動:
    FALSE: マウス移動なし(デフォルト)
    TRUE: マウスをその場所に移動させる
戻値
 取得した文字列
 (指定物が存在しない場合には EMPTYを返す)

 

クリップボードに文字列を送る方法

クリップボードに文字列を送るにはSENDSTR関数を利用します。

SENDSTR関数はエディットコントロールに文字列を送ることもできます。

 

クリップボードに文字列を送るサンプル

SENDSTR(0,"UWSCサンプル&画像認識テクニック")

 

SENDSTR関数リファレンス

SENDSTR関数のリファレンスをマニュアルから転載します。

SENDSTR( ID, 文字列, [番号, 送信モード, ACC指定] )
引数
 ID: Windowを識別するID
    (ID = 0 であれば クリップボードへ)
 文字列: 送りたい文字列
 番号: 左上から数えたエディトコントロールの順番 (1から指定、マイナスを付けた場合にはDisable状態のものもカウント)
     (0:デフォルトはフォーカスを持ったエディトコントロール)
 送信モード: 
    FALSE: 追加 (デフォルト)
    TRUE: 置き換え
    2:   一文字ずつ送信 (PostMessage,WM_CHAR)
 ACC指定: 
    FALSE: APIによる (デフォルト)
    TRUE: アクセシビリティ用インターフェースを利用
    2:   アクセシビリティ用インターフェースを利用(ウィンドウをアクティブ化しない)
    STR_ACC_CELL (5): DataGridView内のCell値の変更

 

今日の日付を8桁の数字にする方法

今日の日付を8桁の数字にするためにはGETTIME関数を利用します。

GETTIME関数の標準機能では8桁の数字で取得することができないので、GETTIME関数で得られた結果を加工することで8桁の数字にします。

GETTIME関数を利用することで特殊変数にどのような値が格納されるかリファレンスを参照してください。

 

今日の日付を8桁の数字にするサンプル

正確には8桁の数字の文字列です。

ファイル名等に利用する場合は文字列のほうが便利です。

このサンプルは20140423のような文字列を生成します。

GETTIME()
str = "" + G_TIME_YY + G_TIME_MM2 + G_TIME_DD2
PRINT str

今日の日付を8桁の数字にする方法実行結果

 

GETTIME関数リファレンス

GETTIME関数のリファレンスをマニュアルから転載します。

戻値 = GETTIME( [±n日, 基準日] ) 
引数
 ±n日: nを指定すると当日もしくは基準日からプラスマイナス n日とする、小数点以下は時間(デフォルト=0)
 基準日: 指定された日付を基に日付を設定する (デフォルト=当日)
      ("YYYYMMDD" or "YYYY/MM/DD" or "YYYY-MM-DD" or "YYYYMMDDHHNNSS" or "YYYY/MM/DD HH:NN:SS")
戻値
 2000年1月1日からの秒数を返す

 値がセットされる特殊変数
  G_TIME_YY    // 年
  G_TIME_MM    // 月
  G_TIME_DD    // 日
  G_TIME_HH    // 時
  G_TIME_NN    // 分
  G_TIME_SS    // 秒
  G_TIME_ZZ    // ミリ秒
  G_TIME_WW    // 曜日 (0:日曜....6:土曜)
  G_TIME_YY2   // 年をxxの文字型
  G_TIME_MM2    // 月をxxの文字型
  G_TIME_DD2   // 日をxxの文字型
  G_TIME_HH2   // 時をxxの文字型
  G_TIME_NN2   // 分をxxの文字型
  G_TIME_SS2   // 秒をxxの文字型
  G_TIME_ZZ2   // ミリ秒をxxxの文字型
  G_TIME_YY4   // 年をxxxxの文字型

 

テキストファイルからランダムで1行読み込む方法

テキストファイルから1行読み出す応用で、ランダムな1行を読み出すことが可能です。

特に難しいことはしていませんのでサンプルで確認してみてください。

 

テキストファイルからランダムで1行読み込むサンプル

fileID = FOPEN("sample.txt", F_READ) // 読み込みモードでファイルを開く
maxLine = FGET(fileID, F_LINECOUNT)	 // 全部で何行あるかを数値で取得
str = FGET(fileID, RANDOM(maxLine) + 1) // どの行を読み出すかランダムにする
FCLOSE(fileID)
PRINT str

 

FGET関数リファレンス

FGET関数のリファレンスをマニュアルから転載します。

戻値 = FGET( ファイルID, 行, [列, ダブルコーテイション] )
引数
 ファイルID: オープン時に返されたID
 行: 取出したい行 (1から指定)
     F_LINECOUNT  を指定した場合はファイルの行数を返す
     F_ALLTEXT   を指定した場合はファイルの全内容を返す
 列: 取出したい列 (1から指定:,カンマ区切りのCSVファイルに対応)
 ダブルコーテイション:
   FALSE: 両端のダブルコーテイションは削除する (デフォルト)
   TRUE: 削除しない
   2:   CSV処理にて2つ連続ダブルコーティションを1つに (Excel同等処理)
戻値
 取出された値

 

テキストファイルの内容が何行あるか調べる方法

テキストファイルの内容が何行あるか調べるためにはFGET関数を利用します。

FGET関数は通常指定された行の内容を取得しますが、行の変わりにF_LINECOUNTを指定することで全体の行数を取得できます。

最後の行が空の場合はカウントされないようです。

事前にFOPEN関数でファイルを開いておくことを忘れないでください。

 

テキストファイルの内容が何行あるか調べるサンプル

fileID = FOPEN("sample.txt", F_READ) // 読み込みモードでファイルを開く
n = FGET(fileID, F_LINECOUNT) // 全部で何行あるかを数値で取得
FCLOSE(fileID)
PRINT "全部で" + n + "行あります"

 

FGET関数リファレンス

FGET関数のリファレンスをマニュアルから転載します。

戻値 = FGET( ファイルID, 行, [列, ダブルコーテイション] )
引数
 ファイルID: オープン時に返されたID
 行: 取出したい行 (1から指定)
     F_LINECOUNT  を指定した場合はファイルの行数を返す
     F_ALLTEXT   を指定した場合はファイルの全内容を返す
 列: 取出したい列 (1から指定:,カンマ区切りのCSVファイルに対応)
 ダブルコーテイション:
   FALSE: 両端のダブルコーテイションは削除する (デフォルト)
   TRUE: 削除しない
   2:   CSV処理にて2つ連続ダブルコーティションを1つに (Excel同等処理)
戻値
 取出された値