|
takako3さん,こんにちは。
》このファイル1.txt内の文章にファイル2.txtの
》文章(一行)を等間隔で挿入したいです。
次のマクロで試してください。最初から一挙に大きなファイルを扱うのは少し
危険かも知らないので,まず小さめのファイルで試行してみてください。
挿入されるファイル(ファイル1.txt)を開いた状態で実行してください。
//---------------------------------------------------//
#num = val(input("間隔行数は?"));
#handle1 = hidemaruhandle(0);
disabledraw;
gofiletop;
message "挿入用ファイルを開きます。";
OPEN;
showwindow 0;
#handle2 = hidemaruhandle(0);
gofileend;
if( x > 0 ) insertreturn;
#cnt = linecount2;
gofiletop;
while( lineno < #cnt ) {
#i = 0;
while( #i < 500 ) {
#by = y;
golineend2;
$line[#i] = gettext( 0, #by, x, y );
movetolineno 1, lineno + 1;
#i = #i + 1;
if( lineno >= #cnt ) break;
}
call InsertLine;
if( #end )break;
}
setactivehidemaru #handle1;
closehidemaruforced #handle2;
message "終わりました!";
endmacro;
InsertLine:
setactivehidemaru #handle1;
while( ##j < #i ) {
if( lineno + #num > linecount2 ) {
#end = 1;
break;
}
movetolineno 1, lineno + #num;
insert $line[##j] + "\n";
##j = ##j + 1;
}
setactivehidemaru #handle2;
return;
//---------------------------------------------------//
》連番ではなくて数字と小文字の英字ランダムなものを
》作成するマクロが欲しいです。
完全にランダムな文字を作るのは難しいですが,文字数があまり多くなければ
次のマクロでもいけるかもしれません。他にもいろいろ工夫の余地はあると思い
ます。
//---------------------------------------------------//
// ランダム文字生成マクロ
#num = val(input("文字数は?"));
if( #num == 0 ) endmacro;
#ms = val( minute + second );
#tk = tickcount;
while( #i < #num ) {
#tk = #tk + #ms + #i;
if( #i > 50 ) #tk = #tk + val(hour);
#rdm = #tk % 36;
if( #rdm < 10 ) #rdm = #rdm + 48;
else #rdm = #rdm + 87;
$s = $s + char( #rdm );
#i = #i + 1;
}
message $s;
//insert $s;//必要によってはこちら(カーソル位置に挿入)
endmacro;
//---------------------------------------//
では, (^^)/~
山紫水明(ユーザー)
|
|