テキストファイル


  リストビューへ読み込み



テキストファイルを1行づつ読み込みます
※ テキスト行の最後尾には \n が付加されているので削除しています

  
// *********************************************************
// テキストファイルの処理
// *********************************************************
void MyClass::LoadTextFile()
{
	LboxTextFile Txt;

	// 「ファイルを開く」ダイアログ用
	LboxString LString;
	LboxCommdlg Commdlg( this->hWnd );

	Commdlg.lpstrTitle = "ファイルを開く";
	Commdlg.lpstrFilter = "テキスト,*.txt,全て,*.*";

	// コモンダイアログ呼び出し
	if ( !Commdlg.OpenFileName( &LString ) ) {
		MsgOk( "キャンセルされました   " );
		return;
	}

	// ファイルのオープン
	if ( !Txt.ReadOpen( &LString ) ) {
		MsgOk(
			"%s をオープンできません   ",
			LString.szLboxString
		);
		return;
	}

	// 読み込みバッファ
	LboxString LBuffer;

	// 一行の読み込みに十分なサイズを確保
	LBuffer.Resize( 1024 );

	// データ表示用のリストビューを初期化
	LView->Initialize();
	LView->AddColumn( "行番号" );
	LView->AddColumn( "テキストファイルの行データ" );

	int nRow;	// 行番号
	nRow = 1;

	LboxString LWork;	// 最後尾文字列処理用

	// 読み込み
	while( Txt.Get( &LBuffer ) ) {
		LView->AddRow();
		LView->SetColumnPrintf( 0, "%d", nRow );
		nRow++;
		LBuffer.Right( 1, &LWork );
		if ( LWork.operator == ("\n") ) {
			LBuffer.RemoveLastchar();
		}
		LView->SetColumnText( 1, &LBuffer );
	}

	// ファイルのクローズ
	Txt.Close();

	// リストビュー表示の最適化
	LView->Fit();
}
  

リストビュー内ではタブは正しく表示されませんので、
簡易的にインデント等を見やすくするには以下のようにします


  
	// 読み込み
	while( Txt.Get( &LBuffer ) ) {
		LView->AddRow();
		LView->SetColumnPrintf( 0, "%d", nRow );
		nRow++;
		LBuffer.Replace( "\t", "    " );  // タブをスペース4バイトに変換
		LBuffer.Right( 1, &LWork );
		if ( LWork.operator == ("\n") ) {
			LBuffer.RemoveLastchar();
		}
		LView->SetColumnText( 1, &LBuffer );
	}
  










  infoboard   管理者用   
このエントリーをはてなブックマークに追加





フリーフォントWEBサービス
SQLの窓WEBサービス

SQLの窓フリーソフト

素材

一般WEBツールリンク

SQLの窓

フリーソフト

JSライブラリ