CSVファイルの加工とインポート (2)

  データ(列)を囲むダブルクォーテーションを除去



1回目の対象列の選択では、最終項目が必要なかったので行末の改行コードはそのままでしたが、今回は最終項目が必要なので除去する必要があります

  
#include "stdafx.h"

#define MyEXTERN
#include "BAT.h"

// *********************************************************
// エントリポイント
// *********************************************************
int main(int argc, char* argv[])
{
	int nRet;
	
	nRet = 0;

	if ( argc != 3 ) {
		printf( "%s\n", "引数に誤りがあります" );
		nRet = 1;
		return nRet;
	}

	InitProc();

	START_BLOCK

		BOOL bRet;

		bRet = TxtIn.ReadOpen( argv[1] );
		if ( !bRet ) {
			printf( "%s\n", "入力ファイルをオープンできませんでした" );
			nRet = 1;
			break;
		}
		bRet = TxtOut.WriteOpen( argv[2] );
		if ( !bRet ) {
			TxtIn.Close();
			printf( "%s\n", "出力ファイルをオープンできませんでした" );
			nRet = 1;
			break;
		}

		int nInCount,nOutCount;
		nInCount = nOutCount = 0;

		Buff->Resize( 10000 );
		while( TxtIn.Get( Buff ) ) {
			nInCount++;
			// 行末の改行コードを除去
			Buff->RemoveLastchar();
			Token.CreateToken( Buff, "," );
			Work->SetChar( 0, 0 );
			// 郵便番号(7桁)
			Item->operator = (Token.Token[0]);
			Item->RemoveEnclose( '"' );
			Work->operator += (Item);
			Work->operator += (",");
			// 都道府県名(半角カタカナ)
			Item->operator = (Token.Token[1]);
			Item->RemoveEnclose( '"' );
			Work->operator += (Item);
			Work->operator += (",");
			// 市区町村名(半角カタカナ)
			Item->operator = (Token.Token[2]);
			Item->RemoveEnclose( '"' );
			Work->operator += (Item);
			Work->operator += (",");
			// 町域名(半角カタカナ)
			Item->operator = (Token.Token[3]);
			Item->RemoveEnclose( '"' );
			Work->operator += (Item);
			Work->operator += (",");
			// 都道府県名
			Item->operator = (Token.Token[4]);
			Item->RemoveEnclose( '"' );
			Work->operator += (Item);
			Work->operator += (",");
			// 市区町村名
			Item->operator = (Token.Token[5]);
			Item->RemoveEnclose( '"' );
			Work->operator += (Item);
			Work->operator += (",");
			// 町域名
			Item->operator = (Token.Token[6]);
			Item->RemoveEnclose( '"' );
			Work->operator += (Item);
			Work->operator += ("\n");
			TxtOut.Put( Work );
			nOutCount++;
		}

		TxtOut.Close();
		TxtIn.Close();

		printf( "入力件数 = %d\n", nInCount );
		printf( "出力件数 = %d\n", nOutCount );

	END_BLOCK

	EndProc();

	return nRet;
}
  










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





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

SQLの窓フリーソフト

素材

一般WEBツールリンク

SQLの窓

フリーソフト

JSライブラリ