Hatena::Groupraru

教えてなでしこ

2011-12-02

[]なでしこで簡単な再帰呼び出し 14:48 はてなブックマーク - なでしこで簡単な再帰呼び出し - 教えてなでしこ

0のテスト
●テスト(Aの)
	もし、Aが100ならば
		抜ける
	違えば
		Aを表示
		0.01秒待つ
		A+1のテストで戻る
	

2011-10-09

[]デスクトップファイル削除ツール作成機を作った 21:57 はてなブックマーク - デスクトップファイル削除ツール作成機を作った - 教えてなでしこ

同じようなプログラムを何度も書き捨てていたので、自動化した。

これでいろんな拡張子のファイルを1クリックで削除するスクリプトを手軽に作成できる。

#ファイル削除ツール作成機
※【なでしこ実行モード】cnako
CNAKOモードは「CON」
窓アクティブハンドル取得
HANはそれ
HANに「ファイル削除ツール作成機」を窓ハンドルテキスト設定
D=デスクトップ
ダイアログ初期値は「(.*zip|.*rar|.*exe)」
「マッチ条件を入力してください」と尋ねる
削除ファイルはそれ

テンプレート="D=デスクトップ
ファイル一覧=
フォルダ一覧=
マッチ条件=「{削除ファイル}」
Dをファイル列挙
ファイル一覧はそれ
Dをフォルダ列挙
フォルダ一覧はそれ

ファイル一覧を反復
	対象をマッチ条件で正規表現マッチ
	もし、それが空でなければ
		D&対象をファイル完全削除
		D&対象&「を削除しました。」と表示
"
削除ファイルを文字列ファイル名変換
テンプレートをD&それ&"削除.nako"に保存


2011-05-31

[]将棋倶楽部24の「自分の棋譜一括ダウンロード」でダウンロードした棋譜を「先手_vs_後手_日付.txt」形式に一括変換するソフト作った 23:26 はてなブックマーク - 将棋倶楽部24の「自分の棋譜一括ダウンロード」でダウンロードした棋譜を「先手_vs_後手_日付.txt」形式に一括変換するソフト作った - 教えてなでしこ

kifu_Rename_24からダウンロードしてね。

#これなに#

将棋倶楽部24棋譜一括ダウンロード」からダウンロードした棋譜を「先手_後手_日付」形式に変換するソフトです。

#つかいかた#

kifu_Rename_24.exe棋譜の入ったフォルダをドラッグ&ドロップすると、プログラムリネームを始めます。

#その他#

適当に作ったので、棋譜バックアップしてから使用してね。

あと、棋譜以外のテキストファイルを入れてるフォルダをkifu_Rename_24に渡すと「_vs__.txt」のようにリネームされるので注意。

2011-01-07

[]なでしこでリアルタイムフォルダ監視 07:59 はてなブックマーク - なでしこでリアルタイムフォルダ監視 - 教えてなでしこ

フォルダ=「」
カウンタ=0
「{フォルダ}*.txt」のファイル列挙
もし、それが空なら
	「リアルタイム監視に入ります」と言う
	(カウンタ<1)のループ
		「{win}*.txt」のファイル列挙
			もし、それが空でなければ
				それを表示
				カウンタは1

こんな感じ。

追記

なんか、ずっとループ回してるのは無駄な気がする。

2010-11-02

[][]LDRの「このフィードを購読しているユーザー」から大量のユーザーを購読する 21:16 はてなブックマーク - LDRの「このフィードを購読しているユーザー」から大量のユーザーを購読する - 教えてなでしこ

任意のフィード詳細ページを開いてjavascriptコンソールから

var x   = document.querySelectorAll('.SubscribersUserID > a');
var tx  = "http://reader.livedoor.com/user/";
var tx2 = "/rss";
var ce = document.createElement("textarea");
for(i=0;i<x.length;i++){
    var a = x[i].firstChild.nodeValue.split("の");
    var b = tx + a[0] + tx2 + "\n";
		ce.value = ce.value+b;
	}

ce.name = "myTEXT";
ce.cols = "100";
ce.rows = "20";
var objBody = document.getElementsByTagName("body").item(0); 
objBody.insertBefore(ce, objBody.childNodes[1]);

このスクリプトを実行すると

f:id:kkk6:20101102210804p:image

こんな風にフィードリストを取得できるので、あとは

結果とは変数

メモ記入
それを反復
	対象をxmlに代入
	対象からHTTPデータ取得して、操作対象に代入
	操作対象からタイトル取得
	それをタイトルに代入
	操作対象からリンク取得
	それをリンクに代入
	「<outline title="{タイトル}" htmlUrl="{リンク}" type="rss" xmlUrl="{xml}" />」&結果を結果に代入	

テンプレートは「
<?xml version="1.0" encoding="utf-8"?>
<opml version="1.0">
<head>
    <title>livedoor Reader Subscriptions</title>
    <dateCreated>Mon, 25 Oct 2010 00:29:26 UTC</dateCreated>
    <ownerName>katu6363</ownerName>
</head>
<body>
{結果}
</body></opml>
」
テンプレートを「{デスクトップ}ldr.xml」に保存。

●タイトル取得(Aから)
	タイトル1は配列
	Aから「/channel/title」の階層タグ切り出し
	それをSJIS変換して、タイトルに代入。
	タイトル[0]が「<title>(*)</title>」にワイルドカード一致
	抽出文字列をタイトル1に代入。
	タイトル1で戻る
●リンク取得(Bから)
	リンクは配列
	Bから「/channel/link」の階層タグ切り出し
	それをSJIS変換して、リンクに代入。
	リンク[0]が「<link>(*)</link>」にワイルドカード一致
	抽出文字列をリンク1に代入。
	リンク1で戻る。
終了。

ローカルでopml化してLDRインポートした。

#やっつけなので、opmlにしている時に母艦には何も表示されない。後で改善するかも。