へアクセス
バッチファイルでフォルダ内のCSVの指定列だけ抽出
やってみたけど激重。ファイル多いと使いもんにならない。
まずこのコマンドでbatファイルを作成し、batを実行するだけ
加工済のファイル置き場を"#加工済"で作ってあること前提です。
FOR /F %i IN ('dir /b *.csv') DO @ECHO FOR /F "tokens=5,6,7 delims=^," %%a IN (%i) DO @ECHO %%a %%b %%c ^>^> #加工済\%i >> bat.bat
delims=で区切り文字を指定
tokens=で何列目を出力するか指定。
FOR /F "tokens=5,6,7 delims=^," %a IN (%i) DO @ECHO %a %b %c
%a IN で 最初の文字指定して、3つ出力するものがあれば %a %b %cと書く
なので4つ出力するものあるなら
FOR /F "tokens=5,6,7,8 delims=^," %a IN (%i) DO @ECHO %a %b %c %d
と増やすのです。
ファイルを一行ずつ読み込むLine InputはCR+LFじゃないと一行判定できない
LFだけだと全部一気に読み込まれちゃう
Split()使ってLFで分解するとかしましょう。
'CSVファイルの取り込み LFコードでスプリット→カンマでスプリットするパターン Sub getCSV2() Dim ws As Worksheet Set ws = ThisWorkbook.Worksheets(1) Dim strPath As String strPath = "C:\Users\Noriaki\Dropbox\40_ブログ\vba-csv\test\ラーメン店アンケート_vbLf.csv" Dim i As Long, j As Long Dim strLine As String Dim tmp As Variant 'LFコードでsplitして格納 Dim arrLine As Variant 'カンマでsplitして格納 Open strPath For Input As #1 'csvファイルをオープン Line Input #1, strLine 'CRコードがないので1行取り込めばCSVファイル全てを取り込める Close #1 tmp = Split(strLine, vbLf) 'strLineをLFコードで区切りtmpに格納 For i = 0 To UBound(tmp) arrLine = Split(tmp(i), ",") 'tmp(i)をカンマで区切りarrLineに格納 For j = 0 To UBound(arrLine) ws.Cells(i + 1, j + 1).Value = arrLine(j) Next j Next i End Sub
wordpressのプロフィール写真を簡単に設置できるプラグイン「Wp User Avatar」
wordpress標準だとメディアファイルから選ぶという簡単なことができないのでプラグインで解決。
bbpressのメールアドレス任意やログイン機能の設定方法
専用プラグインを作成する方法
WordPressの「plugins」フォルダの中に「empty-anonymous-bbpress」フォルダを作り、その中に作成した「empty-anonymous-bbpress.php」ファイルを入れてください。
empty-anonymous-bbpress.php
<?php /* Plugin Name: empty-anonymous-bbpress Description: bbpressのコメント投稿の名前とメールアドレスを任意にするプラグイン Version: 1.0 */ add_action( 'init', array( 'WPSE_Empty_Anonymous_Replies', 'init' ) ); class WPSE_Empty_Anonymous_Replies { static protected $name = 'nobody'; static protected $email = 'nobody@example.com'; static public function init() { add_filter( 'bbp_filter_anonymous_post_data', array( __CLASS__, 'bbp_filter_anonymous_post_data' ), 11, 2 ); add_filter( 'bbp_pre_anonymous_post_author_name', array( __CLASS__, 'bbp_pre_anonymous_post_author_name' ) ); add_filter( 'bbp_pre_anonymous_post_author_email', array( __CLASS__, 'bbp_pre_anonymous_post_author_email' ) ); } static public function bbp_filter_anonymous_post_data( $retval, $r ) { if( self::$name === $r['bbp_anonymous_name'] && self::$email === $r['bbp_anonymous_email'] ) { // reset the input to skip writing cookies $retval = array(); // trick to activate the IP flood check $retval['bbp_anonymous_flood_check'] = '1'; } return $retval; } static public function bbp_pre_anonymous_post_author_name( $name ) { remove_filter( current_filter(), array( __CLASS__, __FUNCTION__ ) ); if( empty( $name ) ) $name = self::$name; return $name; } static public function bbp_pre_anonymous_post_author_email( $email ) { remove_filter( current_filter(), array( __CLASS__, __FUNCTION__ ) ); if( empty( $email ) ) $email = self::$email; return $email; } }
このプラグインでは必須条件を解除するだけで、「名前」「メールアドレス」欄の表示は消えません。そのため、入力項目自体を非表示にしたい方は、直接phpから「名前」欄などを削除するか、cssで非表示にして対応してください。
次のコードをstyle.cssに記述します。
/* メールアドレスを非表示 */ fieldset.bbp-form fieldset.bbp-form p:nth-child(3) { display: none; } /* ウェブサイトを非表示 */ fieldset.bbp-form fieldset.bbp-form p:nth-child(4) { display: none; }
C++ ファイル名だけの__FILE__ である __FILENAME__ を作る
__FILE__はフルパスなので使いにくい時がある
#define __FILENAME__ (strrchr(__FILE__, '¥¥') ? strrchr(__FILE__, '¥¥') + 1 : __FILE__)
log4netのログのレベルについて
ログ・レベルの順位は、次のようになっています。
ALL < DEBUG < INFO < WARN < ERROR < FATAL
つまり、