11.01.2012

フォルダを作ってそこに移動

Option Explicit

Dim FSYS 'FileSystem
Dim SHAP 'ShellApplication
Dim CurFolder '移動元のディレクトリ
Dim TargetFolderName '移動先のディレクトリ名
Dim TargetFolder '移動先のディレクトリ
Dim file '
Dim MoveFileName '移動対象のファイル
Const FOF_CREATEPROGRESSDLG = &H0&

Set FSYS = WScript.CreateObject("Scripting.FileSystemObject")
Set CurFolder = FSYS.GetFolder(".")
Set SHAP = WScript.CreateObject("Shell.Application")
’ファイル名からフォルダを作ってそこに移動(jpgのみ)
For Each file In CurFolder.Files
TargetFolderName = FolderName(file.Name)
If TargetFolderName <> vbNull Then
If FSYS.FolderExists(TargetFolderName) = False Then
FSYS.CreateFolder(TargetFolderName)
End If
Set TargetFolder = SHAP.Namespace(CurFolder.Path & "\" & TargetFolderName)
'ワイルドカードを使ってまとめてMove
MoveFileName = CurFolder.Path & "\" & TargetFolderName & "*.jpg"
TargetFolder.MoveHere MoveFileName, FOF_CREATEPROGRESSDLG
End If

Next
Set TargetFolder = Nothing
Set CurFolder = Nothing
Set SHAP = Nothing
Set FSYS = Nothing

Function FolderName(FileName)
Dim objRegExp ' 正規表現オブジェクト
Dim Matches ' 検索結果Collection

Set ObjRegExp = New RegExp
ObjRegExp.Pattern = "_.*\d{3}\.jpg" 'jpg のみ対象 xxxx_999.jpg のパターン
ObjRegExp.IgnoreCase = True
ObjRegExp.Global = False
Set Matches = objRegExp.Execute(FileName)

If Matches.Count > 0 Then
FolderName = objRegExp.Replace(FileName,"")
Else
FolderName = vbNull
End If

Set ObjRegExp = Nothing
Set Matches = Nothing

End Function

フォルダの中身をZIP

Option Explicit

Dim FLSYS 'FileSystem
Dim SHLAP 'ShellApplication
Dim WSSHL 'WScriptShell
Dim CurFolder
Dim SubFolder
Dim AddFolder
Const ZipFilePath = "c:\zipped\"
Dim ZipFileName
Dim ZipFile

Dim AddCount
Dim ZipCount

Dim LogFile
Dim LogFileName

Set FLSYS = WScript.CreateObject("Scripting.FileSystemObject")
Set CurFolder = FLSYS.GetFolder(".")

LogFileName = CurFolder.Path
LogFileName = LogFileName & "\"
LogFileName = LogFileName & Mid(Date,1,4) & Mid(Date,6,2) & Mid(Date,9,2)
LogFileName = LogFileName & ".log"
Set LogFile = FLSYS.OpenTextFile(LogFileName,8,True)
LogFile.WriteLine Date & " " & Time & " ##### STRAT CopyToZIP ######"

Set SHLAP = WScript.CreateObject("Shell.Application")
Set WSSHL = WScript.CreateObject("WScript.Shell")

'カレントフォルダ下のサブフォルダ毎にZIPファイルを作ります
For Each SubFolder in CurFolder.SubFolders
LogFile.WriteLine Date & " " & Time & " " & FLSYS.GetFileName(SubFolder.Path)
'カレントディレクトリに同名のZIPファイルが存在していたら削除
ZipFileName = ZipFilePath & FLSYS.GetFileName(SubFolder.Path) & ".zip"
If FLSYS.FileExists(ZipFileName) Then
FLSYS.DeleteFile ZipFileName
End If
FLSYS.CreateTextFile(ZipFileName).Write "PK" & Chr(5) & Chr(6) & String(18, 0)
Set ZipFile = SHLAP.NameSpace(ZipFileName)
ZipCount = ZipFile.Items.Count

'1. フォルダごと圧縮する場合
' ZipFile.CopyHere(SubFolder.Path)

'2. フォルダの中身だけ圧縮する場合
'追加するフォルダのオブジェクトを作成
Set AddFolder = SHLAP.NameSpace(SubFolder.Path)
AddCount = AddFolder.Items.Count
LogFile.WriteLine Date & " " & Time & " Copy Start " & ZipCount & "/" & AddCount

ZipFile.CopyHere AddFolder.Items , FOF_NOCONFIRMATION + FOF_SIMPLEPROGRESS
' ZipFile.MoveHere AddFolder.Items , FOF_NOCONFIRMATION + FOF_SIMPLEPROGRESS ' Moveでもファイル残る?

'CopyHere が非同期なので終了を判定
'ファイル数が一致するまで
Do
ZipCount = ZipFile.Items.Count
If ZipCount = AddCount Then Exit Do
WScript.Sleep(3000) '3秒待つ
LogFile.WriteLine Date & " " & Time & " Copy ..... " & ZipCount & "/" & AddCount
Loop
LogFile.WriteLine Date & " " & Time & " Copy End " & ZipCount & "/" & AddCount

Set AddFolder = Nothing
Set ZipFile = Nothing
Next

LogFile.WriteLine Date & " " & Time & " ##### END CopyToZIP ######"
MsgBox "おわり"

Set CurFolder = Nothing
Set SHLAP = Nothing
Set FLSYS = Nothing


ZIPファイルのアイテム数をZipCountに取り出して3秒ごとにログに吐き出してみましたが
ほとんどの場合、0でした。
圧縮中はZipファイルがロックされているようなので、そのせいかな。
Zipファイルの作成される側のフォルダを見ていると、テンポラリファイルが作成されていて、これが時々消えます。

テンポラリファイルが消えたタイミングでアイテム数を取り出すと、
その時点でコピーしたファイルの数が取り出せるようです。
ついでにこのタイミングで一時ロックを解除しているようで、
圧縮処理の終了判定をロックの有無でやるとしくじりがちです。

時々処理が止まってしまいます。エラーメッセージを出してくれる事もあるけど
何にも言わずに待ってるだけの場合、
手でファイルをコピーしてあげると処理を続行できました。

copyhere フォルダ.items でやると隠しファイルは無視されるのかな?
それは具合がいいのでそのまま。
movehere でやっても元のファイルはそのまま残りました。
移動先が圧縮ファイルだから?未検証。
まあ、自動的に消えてしまうのも怖いのでcopyhereで。

zipファイルのサイズが大きくなると1ファイル当たりの処理時間が長くなります。ファイルが育っていくにつれて、だんだん遅くなる感じで、ちょっと考えもの。
そもそもJPEGをさらにZip圧縮してもそんなにメリット無いしにゃーという感じです。

9.18.2012

お気に入り

(´・ω・`)・ω・`) キャー
/  つ⊂  \ 


 

7.26.2012

ExcelにCSVを。SQLで、Recordsetとして

SQLが使えるなら射影も選択も楽ちんじゃないか。

Sub test()
    Dim CON As ADODB.Connection
    Dim RS As ADODB.Recordset

    Dim SQLTEXT = "SELECT 商品名 FROM testdata.csv where 種類='CD' order by 金額"
 
    Set CON = New ADODB.Connection
    CON.Provider = "Microsoft.Jet.OLEDB.4.0"
    CON.Properties("Extended Properties") = "Text;HDR=YES"
    CON.ConnectionString = "G:\test"   ’フォルダを指定
    CON.Open
 
    Set RS = CON.Execute(SQLTEXT)
    RS.Filter = "商品名 = '旅の途中 [Maxi]'"          'フィルタも。
    Sheet1.Range("B2").CopyFromRecordset RS   'ワークシートに流し込み

    Set RS = Nothing
    Set CN = Nothing
End Sub

7.25.2012

3DS,アニメーションGif 参考になりません


3DSで撮影した3D写真をアニメーションGIFにしてみました。
雑すぎる。

7.23.2012

Sマリオ

スーパーマリオブラザーズはそんなに好きでは無いのだけれど、
これはとても好きです。
ネットのどこかで拾いもの。

7.19.2012

I Care Because You Do

今の会社でパートをはじめて半年と少し。 架電業務はやっぱりストレス高いのか、定着しない人も多い。 それでも何人かは残っていく。 職場で人間関係を築けない人は続かない。 休憩時間に寂しそうにしているけれど、こちらも自分のことで手一杯なんだもの。 昼休みに人を避けて、一人で車の中で飯食ってる人に、何をしてあげられるだろうか。 社会という自然環境の中での生存能力。

7.18.2012

哭きの竜

ひとつ晒せば自分を晒す、ふたつ晒せばすべてを晒す、みっつ晒せば地獄が見える。
見える見える、落ちるさま

Facebookは人の繋がりや絆を保証しない。

昔の友人知人との繋がりが途切れてしまうと、それを再接続するのはけっこう
怖いもんだったと思う。
その敷居を低くすることを考えのかどうか、そういう風にも機能している。
これは利用者が実名と正しい履歴を晒すことを前提にしているんだ。
wiredとrealworldとの密接な結合、融合と言い換えても良いかもしれない。
地理的距離と時間の隔たりを超えて、wiredがrealworldと呼ばれていた地域を包含する。
domainとしてのrealworld。


7.17.2012

1-2-3

もう20年以上も前のこと。
その頃はパソコン(NECのPC-98xx)でやることと言えば、Lotus1-2-3。
あとゲームもだけど。
1-2-3の関数リファレンス本(たぶんナツメ社のやつ)を買ってきて、
全部の関数を一通り試してみたのが、 今の私を支える基盤の一部になっているように思えます。
そこに差分で知識を積み重ねていったのだと。

さて、Excel2007あたりで大幅に関数増えてるみたいで、これがまた便利。
もー、べんりー。って感じ。
でもIFERROR関数があるなら IFBLANK関数があってもいいのに、と思いました。

こういう、コレがありなら、コレもいけるんじゃ無い?とか
こうなって、こうなるんなら、こうしたらこうなるんじゃないか?っていう予測は
大体当たるようにデザインされてるもんだ。

12.29.2011

レコトルネ メモ

BDZ-AT770T

PS3,BDZとも有線LANで接続。

        ┌───┐ ┌───┐
    WAN─┤router├─┤ HUB  │
         └───┘  └┬─┬┘
               ┌───┘  └───────┐
             ┌┴──┐                  ┌┴──┐
            │ PS3  │                  │ BDZ  ├─ANT(地上波,BS,CS)
             └┬─┬┘                  └┬─┬┘
               │  └┐                    │  │
               │  ┌┴──┐              │  │
               │  │torne ├───────┘  │
               │  └───┘ANT(地上波)       │
               │                              │
               └┐┌─────────────┘
             ┌─┴┴┐
             │disp  │
             └───┘

1.レコーダー側
    設定->通信設定->ホームサーバー設定
      サーバー機能:入
      クライアント機器登録方法:手動
      未登録機器一覧から PLAYSTATION 3 を登録
      登録後、登録機器一覧を確認  

2.PS3側
    メディアサーバ検索でBDZが見えてるはず。

    設定->本体設定で DTCP-IPを有効にする 

    torneを起動
      設定->ネットワーク設定-> レコトルネ設定(10日間お試し)
        で、BDZを登録
    
      torneの番組表にBS,CSの番組表が増えてます。
      ※BS,CS番組の視聴はできません。予約操作と録画した番組の視聴のみ。

      この時点ではBS番組表、CS番組表は「登録チャンネルがありません」という
      とんちんかんなメッセージを表示しています。

      番組表は、レコーダー側で0時と12時に更新され、
    その後、レコトルネが番組情報を取りに来るのだそうです。
    気長に待ちます。夕方設定して放置後、朝になったら番組表が取得されてい
      ました。

12.19.2010

とある魔術の禁書目録

一瞬前、血が下がる感覚があって塀に寄りかかろうとしたか、しゃがんで休もうとした。
目が覚めたら路上で寝ていた。
何か夢を見ていて、現実と繋がらなくて混乱した。

眼鏡は壊れていて、口元がベシャベシャに汚れている。
明るいところで見てみると、鼻血だった。
顔と手に擦り傷。ふくらはぎに痛み。

飲んでる薬のせいで胃の具合がおかしいのと
あったかい部屋から急に寒いところに出たから貧血を起こしたんだろう。

家から10分ほどの場所から、20分くらいかけて戻る。
多分寝ていたのは5分か、長くて10分といったところ。

死ぬかと思った。

古本屋に「とある魔術の禁書目録」の続きを探しに行こうと思って出た日。

12.12.2010

BSDを256倍使うための本

そういえば、数日前から頭痛があった。
その時点で病院行けば良かったのかなあ。何科に行けば良かったのだろう。
2007年2月に発症した顔面神経麻痺が再発。癖になってるのかしら。
今回見てくれた先生によると
帯状疱疹の原因になるウイルスが耳のあたりから分岐してる神経と結びつきやすいという説もある。
全然関係ないという説もある、とのこと。
なんだか知らないけど、顔の神経は3ヶ月くらいでまた生えてくるんだそうです。 「BSDを256倍使うための本」は1995年頃、「Linuxを256倍使うための本」と並べて売られていた物。 帯にはBSDの方が「Linuxでいいんですか?」、Linuxの方が「まだBSDですか?」だったと思う。

3.08.2009

テスト

テストです。
データ移すのは面倒だしなあ
失敗したなあ。

12.18.2008

脳波

携帯をauにしようか、docomoのプラン変更して使い続けようか、
ちょっと迷う。
とりあえずプラン変更はしとこうか。
と。
「脳波」はポール・アンダースンのSF小説。1954年。

12.14.2008

px memo

px760_107
px712_109

px810_101

光学ドライブは消耗品

ThinkCentre memo

ThinkCentre S50(8086-3KJ)
ThinkCentre M51(8104-EDJ)

12.13.2008

スラン

帰省の切符を予約しました。

家の掃除をしてたらシール剥がし、値札はがしの類がやけに出てくる。
何でだ。
あと、探してるUSBメモリは出てこない。
何でだ。

CDが世に出て20年くらいでしょうか。
その間、ほとんど値上も値下もしてないですよね。だいたい3000円くらい。
レコード盤が3000円だからCDも3000円。でなんとなく見逃してたけど、
ぼってたんじゃないか、コレ。

DVDは最初からビデオテープより格段に安くて、
数が出るようになると、さらにお求め易くなりました。

CD今更半額にしたって倍売れるわけでもなし。
そんなこんなで、今やDVDはCDより安い。
そのうちCDはマニア向けの高額商品になってしまうんでしょうか。

ダークナイトは通常版だと実売3000円切ってます。
あのジョーカーは子供には見せちゃダメなレベルですよ。
バットマンは格好悪いし。

12.11.2008

地球人のお荷物

延長戦は3塁までランナー進めて、生還出来るか、って感じ。
生還できなかったら、再試合。勝つまでやります。とほほ

でも今日は早めに帰れたよ。

「地球人のお荷物」はアンダースン&ディクスンによるSF小説。

12.06.2008

LOCK ON memo

Setup
:レート 22kHz
:チャンネル 2
:ビット 16
:録音時間 2時間
:録音モード
:PIPE設定 - lame.exe -b 56 --resample 16 - "%d%p%f%e"
    - oggenc.exe - -o "%a"
- waveflt2 -cfg wfltsample.txt stdin "%a"
- gogodll.exe -b 64 stdin "%a"
- waveflt2.exe -fir_lpf 10000 -dither 0 stdin "%a"

:ファイル名xxxxxx-%Y-%M-%D
:録音後実行コマンド - C:\Program Files\Trans2_106a\X86\Trans2.exe /S /F
- sndrec32 /play "%a"

[次回の再起動予定時刻] 2008/12/9 火 0 時 58 分
[準備時間] 5 秒
[録音前コマンド] 5 分前に実行
[録音後コマンド] 10 秒後に実行

[ 1] 毎週 火 1 時 0 分
[次回の実行時刻] 2008/12/9 火 1 時 0 分
[%3] ijuin
[PIPE 608M] 2 時間 0 分 30 秒 22050Hz 16Bit stereo
[FILE] H:\radio\shinyano-%Y-%M-%D.mp3
[PIPE] gogodll.exe -b 64 stdin "%a"
[録音後コマンド] C:\Program Files\Trans2_106a\X86\Trans2.exe /S /F
[1 分間マウス入力が無ければ録音後コマンド実行]

12.03.2008

延長戦

どこまで続く泥濘か。
もうすぐ抜けると思いつつ、延長戦。