class LboxUnlha


  Enum



  
// *********************************************************
// リストビューに列挙
// 戻り値 : 成功 true, 失敗 false
// *********************************************************
BOOL LboxUnlha::Enum( LboxListview *Lview, LPTSTR szWildName )
{
	if ( LboxUnlha::lib == NULL ) {
		return false;
	}
	if ( LboxUnlha::hArc == NULL ) {
		return false;
	}

	Lview->Initialize();
	Lview->AddColumn( LVCFMT_LEFT, 100, "" );
	Lview->AddColumn( LVCFMT_LEFT, 100, "ファイル名" );
	Lview->AddColumn( LVCFMT_LEFT, 100, "サイズ" );
	Lview->AddColumn( LVCFMT_LEFT, 100, "圧縮サイズ" );
	Lview->AddColumn( LVCFMT_LEFT, 100, "圧縮率" );
	Lview->AddColumn( LVCFMT_LEFT, 100, "タイムスタンプ" );
	Lview->AddColumn( LVCFMT_LEFT, 100, "属性" );
	Lview->AddColumn( LVCFMT_LEFT, 100, "モード" );
	Lview->AddColumn( LVCFMT_LEFT, 100, "ディレクトリ" );
	Lview->AddColumn( LVCFMT_LEFT, 100, "フルパス" );
	Lview->AddColumn( LVCFMT_LEFT, 100, "ソート" );

	INDIVIDUALINFO ivinfo;
	int ret;

	ret = UnlhaFindFirst(
		LboxUnlha::hArc,
		szWildName,
		&ivinfo
	);

	FILETIME ft;
	SYSTEMTIME st;
	int nCount;
	LboxString LString;

	while( ret == 0 ) {

		Lview->AddRow();

		LString.operator = (ivinfo.szFileName );
		LString.Replace( "/", "\\" );
		LString.StripPath( );
		LString.Replace( "\\", "/" );
		Lview->SetColumnText( 1, &LString );

		Lview->SetColumnPrintf( 2, "%d", ivinfo.dwOriginalSize );
		Lview->SetColumnPrintf( 3, "%d", ivinfo.dwCompressedSize );
		LString.Printf( "%d", ivinfo.wRatio );
		if ( LString.Length() > 0 ) {
			LString.Insert( ".", LString.Length()-1 );
			Lview->SetColumnText( 4, &LString );
		}

		DosDateTimeToFileTime( ivinfo.wDate, ivinfo.wTime, &ft );
		FileTimeToSystemTime( &ft, &st );
		Lview->SetColumnPrintf( 5,
			"%04d/%02d/%02d %02d:%02d:%02d",
			st.wYear,
			st.wMonth,
			st.wDay,
			st.wHour,
			st.wMinute,
			st.wSecond
		);
		Lview->SetColumnText( 6, ivinfo.szAttribute );
		Lview->SetColumnText( 7, ivinfo.szMode );

		LString.operator = (ivinfo.szFileName );
		LString.Replace( "/", "\\" );
		LString.RemoveFileSpec( );
		LString.Replace( "\\", "/" );
		Lview->SetColumnText( 8, &LString );
		if ( LString.operator == ( "" ) ) {
			LString.operator = (" ");
			LString.operator += (ivinfo.szFileName);
			Lview->SetColumnText( 10, &(LString) );
		}
		else {
			Lview->SetColumnText( 10, ivinfo.szFileName );
		}

		Lview->SetColumnText( 9, ivinfo.szFileName );

		ret = UnlhaFindNext(
			LboxUnlha::hArc,
			&ivinfo
		);
	}

	Lview->Sort( 10, 0 );
	nCount = -1;
	while( Lview->FindNextRow( &nCount ) ) {
		Lview->SetColumnPrintf( 0, "%d", nCount+1 );
	}
	Lview->Fit();
	Lview->SetColumnWidth( 10, 0 );
	return true;
}
  










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





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

SQLの窓フリーソフト

素材

一般WEBツールリンク

SQLの窓

フリーソフト

JSライブラリ