ハム活動記

Mac バージョンあげたら

OSX10.15にバージョンアップしたら、自作のハムログソフト「Logdy」の中でクリップボードを利用している箇所がいくつかある

メモ記入の際、交信日や周波数を保存しておく、登録時に登録内容を保存しておく
など

バージョンアップしたら、使えなくなってしまったので、仕方ないのでシェルコマンドで対応するようにした

echo '保存する文字列' |  pbcopy   ←クリップにコピー
$pstr = pbpaste  ←ペースト

こんな感じだ、しかも今まで文字コードがMacJapaniseだったのがUTF8に

そこで、エンコードとデコードも書き直した

まぁ、バージョンが上がれば、不具合も出る、チマチマと手直ししながら使うほかありまあせん

以下にperlソースコード (クリップボードの読み書き)MacOSX10.15

#
# クリップボードのテストプログラム
# 2019/10/30  by jr1gdy
#
use utf8;
use Encode qw/ from_to encode decode encode_utf8 decode_utf8 /;

#以下テストプログラム
my $str1="テスト 123abc次の行\n";
my $str2="追加の 文字列追加の行\n";

&pb_clear();

my $pbstr = &pb_sum_copy($str1);
print encode_utf8("一回目 = $pbstr\n");

$pbstr = &pb_sum_copy($str2);
print encode_utf8("二回目 = $pbstr\n");

my $paste_str = &pb_paste();
print encode_utf8("クリップのペースト: $paste_str\n");


#&pb_clear();
print("Tyin >");
while(my $stdin = <STDIN>){   #キーボードからのテスト
    if($stdin eq "q"){exit;}
    $stdin = decode_utf8($stdin);
    &pb_sum_copy($stdin);
}
print encode_utf8(&pb_paste);

#---サブルーチン-----------------------------------------------------------
sub pb_clear{#クリップボードのクリア
    `echo '' | pbcopy`;
}
#ペースト
sub pb_paste{
    my $str = `pbpaste`;
    $str =~ s/^\n//;#最初と最後に改行が入って来るので削除する
    chomp($str);
    $str = decode('utf8', $str);
    return $str;
}
#クリップへコピー
sub pb_copy{
    my ($str)=@_;
    $str = encode('MacJapanese',$str);
    `echo '$str' | pbcopy`;
    return;
}
#クリップへ追加コピー
sub pb_sum_copy{
    my ($str) = @_;
    my $sum_str = &pb_paste($str);
    $sum_str .= $str;
    &pb_copy($sum_str);
    return $sum_str;
}

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2023-10-31 (火) 09:16:29