2014年12月10日水曜日

日付_時刻のフォルダを作成してカレントディレクトリ内のファイルをバックアップするバッチファイル

日付_時刻のフォルダを作成してカレントディレクトリ内のファイルをバックアップするバッチファイル

@ECHO OFF

SET YYYYMMDD=%DATE:~-10,4%%DATE:~-5,2%%DATE:~-2,2%
SET HHMM=%TIME:~0,8%
set HHMM=%HHMM::=%
set HHMM=%HHMM: =0%

SET DIR_NAME=%YYYYMMDD%_%HHMM%

ECHO %DIR_NAME%
MKDIR %DIR_NAME%

COPY .\* %DIR_NAME%

PAUSE


2014年12月7日日曜日

YouTubeの動画をダウンロードするには

YouTubeの動画をダウンロードするには

 ① 以下のURLからRealPlayerをダウンロードします   

   http://jp.real.com/windows/

 



② ダウンロードしたRealPlayerCloud_ja.exeを実行します



③  「次のプログラムにこのコンピュータへの変更を許可しますか?」と聞かれたら「はい」



④ [同意する]をクリック


⑤ BaiduIME 日本語入力システムをインストールするか確認されるので
 チェックボックスを外す(インストールしない)


⑥ セットアップを選択するように聞かれても画面右上のXボタンで閉じる

⑦ 「PCライブラリへのメディアの追加」は「次へ」をクリックする


⑧ 「結果」が表示されたら「完了」をクリックする。


⑨ ここから先はインストールしたRealPlayerで動画を保存する方法です。
  [スタート]→[すべてのプログラム]→[RealNetworks]→[RealPlayer]でRealPlayerを起動します。
  勝手に動画ニュースが再生され始めるので動画の左下にある一時停止ボタンで止めます。
  (これをやっとかないと、YouTubeと同時にニュースも再生されるので邪魔)


⑩ 画面左上の[RealPlayer Cloud]のボタンをクリックして[ファイル]→[開く]をクリックします


⑪ [開く]の画面が表示されたら「youtube.com」と入力します。



⑫ RealPlayerの中でYouTubeが見れるので、お目当ての動画を表示して再生すると、
  動画の右上に「このビデオをダウンロード」というボタンが表示されるので、これをクリックする
  とPCに動画がダウンロードできます。


⑬ ちなみに次回以降RealPlayerを起動するとFaceBookにログインするように言われるけど、画面右上のXボタンで無視できます。




2014年11月28日金曜日

スネーク記法をキャメル記法に変換するExcelの関数

DBの仕様書をもとにクラスのメンバを定義するのはよくあること。 DBのカラム名はスネーク記法で定義されていて、クラスのメンバはキャメル記法な場合にExcelで一気にスネーク記法からキャメル記法に変換するのに使ってました。
Attribute VB_Name = "snake2Camel"
Option Explicit

Const DELIMITER_SNAKE = "_"
Const DELIMITER_CHAIN = "-"
Const DELIMITER_CAMEL = ""

'------------------------------------------------------------
' 文字列strをUpperCamel形式に変換して返す
'------------------------------------------------------------
Function UpperCamel(ByVal str As String)
    Dim delimiter As String
    Dim i As Integer    'loop index
    Dim tmp As String
       
    '変換前の記法を判定
    If InStr(str, DELIMITER_SNAKE) > 0 Then
        delimiter = DELIMITER_SNAKE
    ElseIf InStr(str, DELIMITER_CHAIN) > 0 Then
        delimiter = DELIMITER_CHAIN
    Else
        delimiter = DELIMITER_CAMEL
    End If
    
    If delimiter <> DELIMITER_CAMEL Then
        Dim tokens() As String
        tokens = Split(str, delimiter)
        For i = 0 To UBound(tokens)
            tokens(i) = UCase(Left(tokens(i), 1)) & LCase(Mid(tokens(i), 2))
        Next
        str = Join(tokens, "")
    Else
        str = UCase(Left(str, 1)) & LCase(Mid(str, 2))
    End If
    
    '最初の1文字と数字の次は大文字
    tmp = UCase(Left(str, 1))
    For i = 2 To Len(str)
        If InStr("0123456789", Mid(str, i - 1, 1)) > 1 Then
            tmp = tmp & UCase(Mid(str, i, 1))
        Else
            tmp = tmp & Mid(str, i, 1)
        End If
    Next
    UpperCamel = tmp

End Function

'------------------------------------------------------------
' 文字列strをlowerCamel形式に変換して返す
'------------------------------------------------------------
Function LowerCamel(ByVal str As String)
    Dim delimiter As String
    Dim i As Integer    'loop index
    Dim tmp As String
       
    '変換前の記法を判定
    If InStr(str, DELIMITER_SNAKE) > 0 Then
        delimiter = DELIMITER_SNAKE
    ElseIf InStr(str, DELIMITER_CHAIN) > 0 Then
        delimiter = DELIMITER_CHAIN
    Else
        delimiter = DELIMITER_CAMEL
    End If
    
    If delimiter <> DELIMITER_CAMEL Then
        Dim tokens() As String
        tokens = Split(str, delimiter)
        For i = 0 To UBound(tokens)
            tokens(i) = UCase(Left(tokens(i), 1)) & LCase(Mid(tokens(i), 2))
        Next
        str = Join(tokens, "")
    Else
        '小文字が一つも出現しない場合は1単語とみなして全て小文字化
        If Not isContainSmallCase(str) Then
            str = LCase(str)
        End If
    End If
    
    '最初の1文字は小文字、数字の次は大文字
    tmp = LCase(Left(str, 1))
    For i = 2 To Len(str)
        If InStr("0123456789", Mid(str, i - 1, 1)) > 1 Then
            tmp = tmp & UCase(Mid(str, i, 1))
        Else
            tmp = tmp & Mid(str, i, 1)
        End If
    Next
    LowerCamel = tmp

End Function

'------------------------------------------------------------
' 文字列strに小文字を含む場合はTRUEを返す
'------------------------------------------------------------
Function isContainSmallCase(ByVal str As String) As Boolean
    Dim i As Integer ' loop index
    Dim a As Integer ' ascii code
    isContainSmallCase = False
    For i = 1 To Len(str)
        a = Asc(Mid(str, i, 1))
        If a >= 97 And a <= 122 Then
            isContainSmallCase = True
        End If
    Next
End Function

2014年9月18日木曜日

Eclipse上のTomcatをデバッグで起動しようとしたらAGENT_ERROR_TRANSPORT_INIT

Eclipse上のTomcatをデバッグで起動しようとしたらコンソールにAGENT_ERROR_TRANSPORT_INITが表示されてデバッグ起動が失敗。

ATAL ERROR in native method: JDWP No transports initialized, jvmtiError=AGENT_ERROR_TRANSPORT_INIT(197) ERROR: transport error 202: gethostbyname: unknown host ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510) JDWP exit error AGENT_ERROR_TRANSPORT_INIT(197): No transports initialized [../../../src/share/back/debugInit.c:741]
サーバー、プロジェクトをクリーンしても起動できず・・・ Eclipseをクリーンしたところ起動できた。

cd /d %~dp0 start .\eclipse.exe -clean %*