2017年09月22日

アスキー文字コード(Ox717a)を、文字("qz")に変換するユーザー定義関数(VBA) ※SQLインジェクション解析用


'文字列の中のアスキー文字コード表現を文字に変換する(例 Ox9798 → ab)
Function Hex2Char(OriginalStr As String) As String
Dim Str_Len, Cnt_Search As Integer
Dim Str_Cnv, HexStart, Str_Hex As String
Str_Len = Len(OriginalStr)
Str_Cnv = ""
HexStart = "0x"
Cnt_Search = 1
Do While Cnt_Search <= Str_Len
If Mid(OriginalStr, Cnt_Search, 2) = HexStart Then
'"0x"なら以降の16進を文字変換
Cnt_Search = Cnt_Search + 2
LoopSW = 1
Do While LoopSW = 1
If IsNumeric("&H" & Mid(OriginalStr, Cnt_Search, 2)) Then
'16進数値なら変換
Str_Hex = "&H" & Mid(OriginalStr, Cnt_Search, 2)
Str_Cnv = Str_Cnv & Chr(Val(Str_Hex))
Cnt_Search = Cnt_Search + 2
Else
'16進でない文字が出現したらループを抜ける
LoopSW = 0
End If
Loop
End If
Str_Cnv = Str_Cnv & Mid(OriginalStr, Cnt_Search, 1)
Cnt_Search = Cnt_Search + 1
Loop
Hex2Char = Str_Cnv
End Function
posted by 貝貝 at 14:06| Comment(0) | Internet | このブログの読者になる | 更新情報をチェックする

2017年09月15日

URI(URL)エンコード・デコード Excel版

最近、GETの値を含んだURI付きのメールを送る必要が生じました。
で、ざっくり調べた感じ、VBAにはURIエンコード・デコードをする関数はないようです。……が、どうやら、javascriptのコンポーネントを使うのが一般的なようなので、関数を作って置きました。

Function EncodeURI(OriginalStr As String) As String
Dim js As Object
Set js = CreateObject("ScriptControl")
js.language = "Jscript"
EncodeURI = js.codeobject.encodeURIComponent(OriginalStr)
End Function

Function DecodeURI(OriginalStr As String) As String
Dim js As Object
Set js = CreateObject("ScriptControl")
js.language = "Jscript"
DecodeURI = js.codeobject.decodeURIComponent(OriginalStr)
End Function
posted by 貝貝 at 13:24| Comment(0) | Internet | このブログの読者になる | 更新情報をチェックする

2017年09月06日

Struts2による開発

1 Eclipse 3.0 以上 (Java開発支援)
  Tomcat 5.5 以上 (Apache上でJavaによるWebアプリの実行環境)
  をインストール

2 Struts 2 をダウンロードして解凍し、開発目的に必要なjarファイルを、Tomcatの「lib」フォルダにコピー
   (最低限必要となるjarファイル)
   commons-logging-1.0.4.jar
   freemarker-2.3.12.jar
   commons-fileupload-1.2.1.jar
   ognl-2.6.11.jar
   struts2-codebehind-plugin-2.1.2.jar
   struts2-core-2.1.2.jar
   xwork-2.1.1.jar

3 Eclipseで新規動的WEBプロジェクトを作成し、新規サーバーでTomcatを選択する

4 Tomcatのコンフィギュレーション(WebContent/WEB-INF/web.xml)に、Struts2のServerFilterを設定する
  (WebサーバーへのリクエストをStruts2で処理させる)

5 WebContentフォルダに、index.jspを作成
ーーーーサンプルーーーーーー
<br /><%@ page language="java" contentType="text/html; charset=UTF-8" <br /> pageEncoding="UTF-8"%><br /><%@ taglib prefix="s" uri="/struts-tags" %><br /><html><br /><body><br /> <s:form><br /> こんにちは。<br /> <s:submit method="hello" value="こちらこそこんにちは"/><br /> </s:form><br /><script type="text/javascript"> (function(w,d,s){ var f=d.getElementsByTagName(s)[0],j=d.createElement(s); j.async=true;j.src='//dmp.im-apps.net/js/7262/0001/itm.js'; f.parentNode.insertBefore(j, f); })(window,document,'script'); </script> <script type="text/javascript" src="https://t.seesaa.net/analytics-seesaa-net.js?v=20150901&tid=UA-53911882-1&page_id=hage4242%2Findex&page_info=::0::0&page_words="></script></body><br /></html><br />
ーーーーーーーーーーーーーーー

6 ActionクラスindexAction.javaを作成
ーーーーサンプルーーーーーー
import com.opensymphony.xwork2.ActionSupport;
public class indexAction extends ActionSupport {
public String execute() throws Exception {
return "success";
}
public String message;
public String hello() throws Exception {
message = “いえいえこちらこそこんにちは。”;
return "hello";
}
}
ーーーーーーーーーーーーーーー

7 最後に、サブミットボタンを押されたときに表示されるJSPページindex-hello.jspを作成
ーーーーサンプルーーーーーー
<br /><%@ page language="java" contentType="text/html; charset=UTF-8" <br /> pageEncoding="UTF-8"%><br /><%@ taglib prefix="s" uri="/struts-tags" %><br /><html><br /><body><br /> <s:property value=”%{message}”/><br /></body><br /></html><br />
ーーーーーーーーーーーーーーー

8 サーバを起動し、「http://localhost:8080/sample/index.action」にアクセス

【動作原理】
 ユーザーからindex.actionの表示要求を受けて、Struts 2はindexActionのインスタンスを生成します。特に実行するメソッドの指定がない場合は、executeメソッドを実行することになっているので、executeメソッドを実行し、結果「success」を得ます。
 すると、後述のStruts 2の機能により、結果を表示するページをindex-success.jsp→index.jspの順で探します。index-success.jspは今回作成していないので、次の候補index.jspを結果として表示します。
 次に、ユーザーがサブミットボタンを選択して、helloメソッドを呼び出すと、Strus 2の内部では、再度indexActionのインスタンスを生成し、helloメソッドを実行します。結果として「hello」を得るので、先ほどと同様、index-hello.jsp→index.jspの順で表示するページを探します。今回は、index-hello.jspが存在するので、index-hello.jspの内容が表示されます。
posted by 貝貝 at 17:15| Comment(0) | Internet | このブログの読者になる | 更新情報をチェックする

2017年07月26日

他のMacからキーチェーンをインポートして表示する方法

1 Finder で、転送したいキーチェーンファイル(login.keychain)を見つけます。キーチェーンは通常、ホームフォルダの「ライブラリ」フォルダ内の「Keychains」フォルダにあります。

2 Option キーを押したまま「移動」>「ライブラリ」と選択してから、「Keychains」フォルダを開きます。

3 キーチェーンファイル(login.keychain)をコピーすることでキーチェーンをほかの Mac に転送します。

重要: キーチェーンは、認証されていない人がアクセスできない安全な方法で転送してください。たとえば、AirDrop または USB フラッシュドライブを使用してファイルをコピーします。

4 既存のキーチェーンとの混同を避けるために、新しいコンピュータ上のキーチェーンファイルの名前を変更します。
これは、特にログインキーチェーンなどの標準キーチェーンをコピーする場合に重要です。

5 「アプリケーション」フォルダの「ユーティリティ」フォルダにある「キーチェーンアクセス」を開きます。

6 「ファイル」>「キーチェーンを追加」と選択します。

7 キーチェーンを選択してから、「OK」をクリックします。

※ 新しいコンピュータでキーチェーン内の項目にアクセスするには、前のコンピュータでキーチェーンに使用していたパスワードを使用する必要があります。
posted by 貝貝 at 17:26| Comment(0) | TrackBack(0) | Mac | このブログの読者になる | 更新情報をチェックする

(macOSで検証済み)Googleドライブのアプリで同期されたファイル名

以下のログファイルで、"filename=" を検索する
/Users/ユーザー名/Library/Application Support/Google/Drive/user_default/sync_log.log

例)
2017-07-26 11:49:24,714 +0900 INFO pid=2008 123145430708224:CloudWatcher cloud_watcher.pyo:1340 Generated events in response to 1 changelog entries: [CloudEntry(doc_id=0B2Xe1HtPR6vFYVhMQ1podTBjYVE,filename=test.rtf,modified=1501037348,created=None,acl_role=owner,doc_type=DocType.BLOB,removed=False,parent_doc_ids=frozenset(['root']),child_doc_ids=set([]),size=398,checksum=755f2d4884fc1639790b00b7671c8e4a,change_stamp=192,server_mod_time=None,is_zombie=False,shared=False,recursive_size=None,version=191,original_size=None,original_checksum=None,download_restricted=False,down_sample_in_progress=False,last_changed_locally=False,from_tombstone=False)]
posted by 貝貝 at 12:00| Comment(0) | TrackBack(0) | Mac | このブログの読者になる | 更新情報をチェックする

2017年07月11日

Mac の起動時のキーコンビネーション

起動時に押すキー 説明
shift (⇧)
セーフモードで起動します。
option (⌥)
起動時に Startup Manager を使って、ほかの起動ディスクがある場合は、その中から選択できます。
command + S
シングルユーザモードで起動します。(ログインできない場合、root権限で各種コマンドが利用可能)
T
ターゲットディスクモードで起動します。(内蔵HDをFireWireやThundervoltで、他のMACへ外付け接続)
C
Mac の有効なオペレーティングシステムを収録した CD、DVD、または USB メモリから起動します。または、上記の通りに Startup Manager を使います。
D
Mac のモデルに応じて、内蔵の Apple Hardware Test または Apple Diagnostics ユーティリティから起動します。または、「option + D」キーを使って、インターネット経由でこれらのユーティリティから起動します。
N
互換性のある NetBoot サーバ (利用できる場合) から起動します。NetBoot サーバ上のデフォルトの起動イメージを使うには、代わりに「option + N」キーを押し続けます。
option + command (⌘) + P + R
NVRAM または PRAM をリセットします。
command +
R 内蔵の macOS 復元システムから起動します。または、「option + command + R」キーまたは「shift + option + command + R」キーを使って、インターネット経由で macOS 復元から起動します。macOS 復元でインストールされる macOS のバージョンは、起動時に押したキーの組み合わせによって異なります。
X
通常であれば Mac が macOS 以外の起動ディスク (Windows パーティションなど) から起動する状況下で、macOS 起動ディスクから起動します。または、上記の通りに Startup Manager を使います。
command + V
verbose モードで起動します。
取り出し (⏏)、F12、マウスボタン、またはトラックパッドボタン
リムーバブルメディア (光学式ディスクなど) を取り出します。
posted by 貝貝 at 10:47| Comment(0) | TrackBack(0) | Mac | このブログの読者になる | 更新情報をチェックする

2017年07月10日

IPアドレス、メールアドレス検出用の正規表現(例)

【メールアドレス】
grep -E '.+@.+\..' xxx.log

【IPアドレス】
grep -E '(^|[^0-9])([1-2]?[0-9]{0,2}\.){3,3}[1-2]?[0-9]{0,2}($|[^0-9])' xxx.log
※ IPv4のレンジのみヒットするが、「...」もヒットしてしまう

grep -E '(^|[^0-9])[1-9][0-9]{0,2}\.([1-2]?[0-9]{0,2}\.){2,2}[1-2]?[0-9]{0,2}($|[^0-9])' xxx.log
※ 上記の改良、ただし第1オクテットのみIPv4レンジ外の255〜999 がヒットしてしまう


posted by 貝貝 at 16:36| Comment(0) | TrackBack(0) | Internet | このブログの読者になる | 更新情報をチェックする

Macのログ解析(起動終了等)

Macのシスログは
 /private/var/log/asl/ 以下
に記録されている。
直接上記のログファイルを見る他、syslog コマンドで表示できる。

【起動終了の一覧を取得する例】
 > syslog |grep -e BOOT -e shutdown |less
↓ 結果
Jul 3 18:50:47 localhost bootlog[0] : BOOT_TIME 1499075447 0
Jul 3 18:58:04 BIG-ISLAND-macmini shutdown[502] : SHUTDOWN_TIME: 1499075884 520890
Jul 3 18:58:04 BIG-ISLAND-macmini com.apple.xpc.launchd[1] (com.apple.xpc.launchd.domain.system) : System shutdown initiated by: shutdown.502<-sessionlogoutd.501<-launchd.1
Jul 4 07:22:20 localhost bootlog[0] : BOOT_TIME 1499120540 0
Jul 4 18:04:49 BIG-ISLAND-macmini shutdown[1593] : SHUTDOWN_TIME: 1499159089 877813
Jul 4 18:04:49 BIG-ISLAND-macmini com.apple.xpc.launchd[1] (com.apple.xpc.launchd.domain.system) : System shutdown initiated by: shutdown.1593<-sessionlogoutd.1591<-launchd.1
posted by 貝貝 at 10:53| Comment(0) | TrackBack(0) | Mac | このブログの読者になる | 更新情報をチェックする

2017年06月23日

【Exel VBA】ハイパーリンクの画像を自動貼り付け関数

Excelのメニューから 開発 ー Visual Bbasic
→ VBAProjectを右クリック → 挿入 → 標準モジュール
→ 以下のコードを貼り付け

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
'指定セルにハイパーリンクされた画像ファイルのフルパスをカレントセルに表示し、
'その画像を左隣セルに貼りつける関数
'---- pic_paste(セル番号)----
'
Function pic_paste(fname As Range)
Const n As Long = 2 'margin
Dim r As Range
Dim i As Long
Dim x As Double
Dim s As String

Set r = Application.ThisCell.Offset(0, 1).MergeArea

If fname.Hyperlinks.Count > 0 Then
s = fname.Hyperlinks(1).Address
Else
s = "--"
End If

ChDir ActiveWorkbook.Path

If Dir(s) = "" Then
pic_paste = s
Else
'Dir Application.Path
pic_paste = s
With ActiveSheet.Pictures.Insert(s).ShapeRange
.LockAspectRatio = msoTrue
x = Application.Min(r.Width / .Width, (r.Height - n) / .Height)
.Width = .Width * x
.Left = r.Left
.Top = r.Top + n / 2
End With
End If

End Function
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
posted by 貝貝 at 09:23| Comment(0) | TrackBack(0) | Win全般 | このブログの読者になる | 更新情報をチェックする

2017年06月12日

EnCase テーブルペインのExport(TAB区切りtxt)

Save As で、表示中のテーブルをCSV等で保存できる
EnCase テーブルペインのExport(TAB区切りtxt).jpg
posted by 貝貝 at 09:05| Comment(0) | TrackBack(0) | EnCase | このブログの読者になる | 更新情報をチェックする