添付ファイルの情報



[添付ファイル一覧] [全ページの添付ファイル一覧]

fileDUPLINC.PPA
格納ファイル名:attach/4D6163726F2FC5EAB9C62F313332_4455504C494E432E505041
ページ:Macro/投稿/132
格納ファイル名:attach/4D6163726F2FC5EAB9C62F313332_4455504C494E432E505041
MD5ハッシュ値:c4b4bcf90e367c1fc6ab8f2eccbaa300
サイズ:3.6KB (3657 bytes)
Content-type:application/octet-stream
登録日時:2006/07/30 04:30:25
アクセス数:489
MD5ハッシュ値:c4b4bcf90e367c1fc6ab8f2eccbaa300
fileDUPLINC.PPA
  0
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
// TAB=4
// 実行には PPA.DLL が必須です。sakura.exe と同じフォルダに PPA.DLL を入れておいてください。
// マクロファイルの拡張子は .PPA でなくてはなりません。
 
// DupLINC.PPA - DuplicateLine_INC
// 10進数 連番生成マクロ
 
// ★動作仕様
// ↓次のようなテキストがある場合( | がカーソル位置とします)
// --------------------------------------------------
// copy  original.txt  test|08.txt
// --------------------------------------------------
//      ↓このマクロを実行すると、↓
// --------------------------------------------------
// copy  original.txt  test08.txt
// copy  original.txt  test|09.txt
// --------------------------------------------------
// という1行が増えます。そのまま何度もマクロの実行を続けると、
// --------------------------------------------------
// copy  original.txt  test08.txt
// copy  original.txt  test09.txt
// copy  original.txt  test10.txt
// copy  original.txt  test|11.txt
// --------------------------------------------------
// という具合に。。。
 
// なお、「カーソル位置より右の数値」が + 1 した値の行が増えていきます。
// 「カーソル位置より左の文字」は、たとえ数値であろうと無視して、そのままとなります。
// 
// つまり、↓にて | の位置にカーソルがある場合は
// --------------------------------------------------
// copy  original.txt  test0|9.txt
// --------------------------------------------------
//      ↓マクロを2回実行↓
// --------------------------------------------------
// copy  original.txt  test09.txt
// copy  original.txt  test010.txt
// copy  original.txt  test0|11.txt
// --------------------------------------------------
// となります。
 
var
    n:Integer;    // 作業用の整数数値変数 確保
    nums:String;    // カーソル位置の数値文字列を取り込む文字列変数 確保
    numi:Integer;    // 「↑nums を整数数値に変換した物」を格納する整数数値変数 確保
    word,chr:String;    // 作業用の文字列変数 確保
begin
    S_DuplicateLine(0);    // 行の二重化(折り返し単位)
 
    S_MoveHistSet(0);    // 現在位置を移動履歴に登録
    // {
		// カーソルの右側の単語を word に取得する。
		S_WordRight_Sel(0);				// (選択)単語の右端に移動
		word := S_GetSelectedString(0);	// 選択文字列を取得する
		S_CancelMode(0);				// 各種モードの取り消し - [Esc]キー - 選択を解除する
	// }
    S_MoveHistPrev(0);    // 移動履歴: 前へ
 
    // word 先頭の数値部分のみを nums に取り出す。<- 数値以外の部分まで StrToInt に投げると返値は強制的に 0 になっちゃうから、余計なゴミを消すわけさぁ。
    nums := '';
    for n := 1 to Length(word) do
    begin
        chr := Copy(word,n,1);
        if( ( chr = '0' )or( StrToInt(chr) <> 0 ) ) then    // word が数値文字('0''9')である
            nums := nums + chr    // nums 末尾に chr を追加する。
        else    // 数値以外の文字だった場合
            break                // ループを脱出する。
        ;
    end;
    if ( nums = '' ) then    exit;    // 数値文字が無ければマクロ終了。
 
    numi := StrToInt(nums);    // nums を 10進数数値文字列とみなし、整数数値へ変換する。
//    MessageBox( nums + '->' + IntToStr(numi) , '' , 0 );    // for Debug
    numi := numi + 1;            // increment ここで値を +1 している。ここを numi - 1 にすれば decrement版になるし、色々版できますな。ふぉっふぉっふぉっ。
    word := IntToStr(numi);        // numi を文字列に変換する。
 
    // ↓書き込む数値文字列の前に、桁の不足分 '0' を追加する。
    for n := Length(word) to (Length(nums) - 1) do    word := '0' + word;
 
    S_MoveHistSet(0);    // 現在位置を移動履歴に登録
    // {
		for n := 1 to Length(nums) do	S_Right_Sel(0);	// (選択)カーソル右移動 - nums の文字数(数値文字数)分、選択 - 数値部分を選択する。
		S_InsText(word);	// 出来た数値文字列をエディタ画面へ挿入する。(↑の選択範囲が文字変数 word の内容に置き換わる)
	// }
    S_MoveHistPrev(0);    // 移動履歴: 前へ
end;
 




    


    ホーム 一覧 単語検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS