// 秀丸 ファイル名自動作成&保存マクロ
//
// Copyright (c) 1996-2006 twinkle.cc All Rights Reserved.
// 改変、配布は自由
// →でも修正したら連絡いただけると嬉しいです:perltips@gmail.com
//
// ○このマクロについて
//
// このマクロは、秀丸で書いた文章にファイル名を日付で付けて保存し、終了します。
// 以下の 2点で自動化します。
//
// 1) 書いた文を、指定されたディレクトリに日付をファイル名として保存。
// ファイル名は yyyyddmmx.txt というフォーマット。
// yyyymmdd は 2006/12/24 などのフォーマット。
// x は、その日で保存した順に、a、b、c、…とついていきます。
// つまりファイル名は 20061224a.txt、20061224b.txt... などの名前に
// なります(ファイル名を考えなくてすむので便利)。
// 2) タブを空白に変換します (97行目)。
//
//
// ○ 設定方法
//
// 1) 秀丸エディタの設定メニューから、
// その他|動作環境|環境|マクロファイル用のフォルダ
// で、マクロを保存するディレクトリを指定。
// 2) 下の、[保存するディレクトリの指定] のところで、
// 書いたメールを保存するディレクトリを指定。
// ディレクトリの区切り記号 \ は \\ と2つ重ねる。
// 3) このマクロを save_txt.mac などの名前で、
// 1) で設定したディレクトリに保存。
// 4) 秀丸のメニューから、マクロ|マクロ登録|ファイル名で
// 3) で指定したファイル名を選択。タイトルを設定。
// 5) 必要なら、秀丸でキーカスタマイズとツールバーを
// カスタマイズすればボタンひとつでマクロを走らせることが可能。
// [保存するディレクトリの指定]
// ネットワークにある PC に保存するとき
// \\your_computer_name\data\mail\2006 に保存する場合
// (2006 などの年ごとのディレクトリは毎年作ってください)
$savedir = "\\\\your_computer_name\\data\\mail\\" + year + "\\";
// ローカルに保存するとき
// $savedir = "c:\\data\\mail\\logs\\" + year + "\\";
// ここから先はプログラム
#index = 0; // 行を表す
// 最初の空白行は無視
gofiletop; // ファイルの先頭に移動
while(!linelen2) {
delete; // 改行を削除
}
// 日付をファイル名として保存
gofileend; // ファイルの終わりで作業
insert "\n";
insert year;
insert month;
insert day;
insert "a.txt"; // yyyymmdd.txt という名前を付ける
copyline; // 行をコピー
beginclipboardread; // クリップボードの選択を開始
$filename = getclipboard; // ファイル名をクリップボードから取得
// ファイルが存在するかどうか
if (filename != "" ) {
// filename の初期化
if (leftstr(filename, 3) == "\\\\\\")
$filename = rightstr(filename, strlen(filename) - 1);
else
$filename = filename; // 既存のファイル名をつける。
} else {
while (existfile($savedir + $filename)) {
$index = midstr($filename,8,1); // 現在の index を取得 (初期値 a)
$index = char(ascii($index)+1); // index を更新(a,b,c, ...)
golinetop; // 行の先頭に移動
right 8; // index 位置に移動
insert $index; // index を付加
delete; // 更新前の index を消す
copyline; // できたファイル名をコピー
beginclipboardread; // クリップボードの選択を開始
$filename = getclipboard; // ファイル名をクリップボードから取得
}
}
$filename = $savedir + $filename; // ファイル名をフルパスで生成
// ファイル名の後処理
selectline; // 1行選択
cut; // カット
backspace; // 最初に付けた \n を削除
// 作成した内容をクリップボードにコピー
selectall; // 全ての範囲を選択
tospace; // タブ→空白変換
copy; // クリップボードへコピー
escape; // 選択を解除
// ファイル名を付けて保存
saveas $filename;
// 秀丸を終了
exit;
// 秀丸 ファイル名自動作成&保存マクロ
//
// Copyright (c) 1996-2006 twinkle.cc All Rights Reserved.
// 改変、配布は自由
// →でも修正したら連絡いただけると嬉しいです:perltips@gmail.com
//
// ○このマクロについて
//
// このマクロは、秀丸で書いた文章にファイル名を日付で付けて保存し、終了します。
// 以下の 2点で自動化します。
//
// 1) 書いた文を、指定されたディレクトリに日付をファイル名として保存。
// ファイル名は yyyyddmmx.txt というフォーマット。
// yyyymmdd は 2006/12/24 などのフォーマット。
// x は、その日で保存した順に、a、b、c、…とついていきます。
// つまりファイル名は 20061224a.txt、20061224b.txt... などの名前に
// なります(ファイル名を考えなくてすむので便利)。
// 2) タブを空白に変換します (97行目)。
//
//
// ○ 設定方法
//
// 1) 秀丸エディタの設定メニューから、
// その他|動作環境|環境|マクロファイル用のフォルダ
// で、マクロを保存するディレクトリを指定。
// 2) 下の、[保存するディレクトリの指定] のところで、
// 書いたメールを保存するディレクトリを指定。
// ディレクトリの区切り記号 \ は \\ と2つ重ねる。
// 3) このマクロを save_txt.mac などの名前で、
// 1) で設定したディレクトリに保存。
// 4) 秀丸のメニューから、マクロ|マクロ登録|ファイル名で
// 3) で指定したファイル名を選択。タイトルを設定。
// 5) 必要なら、秀丸でキーカスタマイズとツールバーを
// カスタマイズすればボタンひとつでマクロを走らせることが可能。
// [保存するディレクトリの指定]
// ネットワークにある PC に保存するとき
// \\your_computer_name\data\mail\2006 に保存する場合
// (2006 などの年ごとのディレクトリは毎年作ってください)
$savedir = "\\\\your_computer_name\\data\\mail\\" + year + "\\";
// ローカルに保存するとき
// $savedir = "c:\\data\\mail\\logs\\" + year + "\\";
// ここから先はプログラム
#index = 0; // 行を表す
// 最初の空白行は無視
gofiletop; // ファイルの先頭に移動
while(!linelen2) {
delete; // 改行を削除
}
// 日付をファイル名として保存
gofileend; // ファイルの終わりで作業
insert "\n";
insert year;
insert month;
insert day;
insert "a.txt"; // yyyymmdd.txt という名前を付ける
copyline; // 行をコピー
beginclipboardread; // クリップボードの選択を開始
$filename = getclipboard; // ファイル名をクリップボードから取得
// ファイルが存在するかどうか
if (filename != "" ) {
// filename の初期化
if (leftstr(filename, 3) == "\\\\\\")
$filename = rightstr(filename, strlen(filename) - 1);
else
$filename = filename; // 既存のファイル名をつける。
} else {
while (existfile($savedir + $filename)) {
$index = midstr($filename,8,1); // 現在の index を取得 (初期値 a)
$index = char(ascii($index)+1); // index を更新(a,b,c, ...)
golinetop; // 行の先頭に移動
right 8; // index 位置に移動
insert $index; // index を付加
delete; // 更新前の index を消す
copyline; // できたファイル名をコピー
beginclipboardread; // クリップボードの選択を開始
$filename = getclipboard; // ファイル名をクリップボードから取得
}
}
$filename = $savedir + $filename; // ファイル名をフルパスで生成
// ファイル名の後処理
selectline; // 1行選択
cut; // カット
backspace; // 最初に付けた \n を削除
// 作成した内容をクリップボードにコピー
selectall; // 全ての範囲を選択
tospace; // タブ→空白変換
copy; // クリップボードへコピー
escape; // 選択を解除
// ファイル名を付けて保存
saveas $filename;
// 秀丸を終了
exit;
0: 0000
1: 0001
2: 0010
3: 0011
4: 0100
5: 0101
6: 0110
7: 0111
8: 1000
9: 1001
a: 1010
b: 1011
c: 1100
d: 1101
e: 1110
f: 1111
#!/usr/bin/perl
our $data = 'a';
our $BIT_LENGTH = 4; # ビットの長さ
$data = hex($data);
$data = pack("C", $data);
my @data = unpack("C", $data);
my $mask = 0x00000001; # マスク
for(my $i = 1; $i <= $BIT_LENGTH; $i++) {
# if(~$data[0] & $mask) { # (注: on: 0 / off: 1 のとき、~$data[0] とする)
if( $data[0] & $mask) {
# ここに(マスクにヒット)ビットが立っているときの処理を書く
print "bit $i: 1\n";
} else {
# ここにビットが立っていないときの処理を書く
print "bit $i: 0\n";
}
$mask = $mask << 1;
}
0: 0000
1: 0001
2: 0010
3: 0011
4: 0100
5: 0101
6: 0110
7: 0111
8: 1000
9: 1001
a: 1010
b: 1011
c: 1100
d: 1101
e: 1110
f: 1111
#!/usr/bin/perl
our $data = 'a';
our $BIT_LENGTH = 4; # ビットの長さ
$data = hex($data);
$data = pack("C", $data);
my @data = unpack("C", $data);
my $mask = 0x00000001; # マスク
for(my $i = 1; $i <= $BIT_LENGTH; $i++) {
# if(~$data[0] & $mask) { # (注: on: 0 / off: 1 のとき、~$data[0] とする)
if( $data[0] & $mask) {
# ここに(マスクにヒット)ビットが立っているときの処理を書く
print "bit $i: 1\n";
} else {
# ここにビットが立っていないときの処理を書く
print "bit $i: 0\n";
}
$mask = $mask << 1;
}
#blockquote {
-moz-border-radius: 10px;
border: 1px dotted #a3b8cc;
}
#blockquote {
-moz-border-radius: 10px;
border: 1px dotted #a3b8cc;
}
使用するモジュール
use Authen::Radius;
#!/usr/bin/perl
use Authen::Radius;
our $HOST = '1.1.1.1';
our $USERNAME = 'perltips';
our $PASSWORD = 'password';
our $SECRET = 'testing123';
# First Trial
$r = new Authen::Radius(Host => $HOST,
Secret => $SECRET,
Debug => 1,
TimeOut=> 10);
# 前座。ユーザー名とパスワードのチェックをしてみる。
print "auth result=", $r->check_pwd($USERNAME,
$PASSWORD,
$HOST), "\n";
# Authen::Radius->load_dictionary();
# 本番。ユーザー名とパスワードのチェックを設定する。
$r->add_attributes (
{ Name => 'UserName', Value => $USERNAME },
{ Name => 'Password', Value => $PASSWORD },
# { Name => 'NAS-IP-Address', Value => '1.1.1.2' }
#
# RFC 2865 https://www.ietf.org/rfc/rfc2865.txt calls this attribute
# User-Password. Check your local RADIUS dictionary to find
);
# ユーザー名とパスワードの組み合わせ (アトリビュート:属性) を、ACCESS_REQUEST で送る。
# そうすると返事が返って来るので recv_packet で受け取る。
$r->send_packet(ACCESS_REQUEST) and $type = $r->recv_packet();
print "server response type = $type\n";
# サーバから送られてきたアトリビュートを表示してみる。
for $a ($r->get_attributes()) {
print "attr: name=$a->{'Name'} value=$a->{'Value'}\n";
}
使用するモジュール
use Authen::Radius;
#!/usr/bin/perl
use Authen::Radius;
our $HOST = '1.1.1.1';
our $USERNAME = 'perltips';
our $PASSWORD = 'password';
our $SECRET = 'testing123';
# First Trial
$r = new Authen::Radius(Host => $HOST,
Secret => $SECRET,
Debug => 1,
TimeOut=> 10);
# 前座。ユーザー名とパスワードのチェックをしてみる。
print "auth result=", $r->check_pwd($USERNAME,
$PASSWORD,
$HOST), "\n";
# Authen::Radius->load_dictionary();
# 本番。ユーザー名とパスワードのチェックを設定する。
$r->add_attributes (
{ Name => 'UserName', Value => $USERNAME },
{ Name => 'Password', Value => $PASSWORD },
# { Name => 'NAS-IP-Address', Value => '1.1.1.2' }
#
# RFC 2865 https://www.ietf.org/rfc/rfc2865.txt calls this attribute
# User-Password. Check your local RADIUS dictionary to find
);
# ユーザー名とパスワードの組み合わせ (アトリビュート:属性) を、ACCESS_REQUEST で送る。
# そうすると返事が返って来るので recv_packet で受け取る。
$r->send_packet(ACCESS_REQUEST) and $type = $r->recv_packet();
print "server response type = $type\n";
# サーバから送られてきたアトリビュートを表示してみる。
for $a ($r->get_attributes()) {
print "attr: name=$a->{'Name'} value=$a->{'Value'}\n";
}