CDialogでEnterキー(Escキー)を押しても、ダイアログが閉じないようにする

PreTranslateMessage()追加して、以下記述

BOOL CXXXDialog::PreTranslateMessage(MSG* pMsg)
{
	if( WM_KEYDOWN == pMsg->message )
	{
		switch( pMsg->wParam )
		{
			case VK_RETURN:
				return FALSE;
			case VK_ESCAPE:
				return FALSE;
			default:
				break;
		}
	}
	return CDialog::PreTranslateMessage(pMsg);
}

バッチファイルでフォルダ内の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

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;
}