変換処理 呼び出し用クラス

これまでC# で作成してきた「SourceToHTML」を、C++Builder に焼きなおしてみます。

Convert.h


//***************************************************************************
// HTML変換処理 呼び出しクラス
//***************************************************************************
#ifndef ConvertH
#define ConvertH
//---------------------------------------------------------------------------
#include "TextWriter.h"
#include "TextReader.h"
//---------------------------------------------------------------------------
class TConvert
{
private:
const wchar_t C_EOF; // '\0'

public:
// 初期化
__fastcall TConvert();
// ファイルの終わりまで、1文字ずつ読んで、1文字ずつ書く
void __fastcall charcopy(TTextReader* reader, TTextWriter* writer);
// HTML に書式化して出力
void __fastcall tohtml(TTextReader* reader, TTextWriter* writer, AnsiString langType);
};
#endif

Convert.cpp


//*******************************************************************************************************
// HTML変換処理 呼び出しクラス
//*******************************************************************************************************
#pragma hdrstop
#include "Convert.h"
#include "Token.h"
#include "TokenReader.h"
#include "TokenWriter.h"
//-------------------------------------------------------------------------------------------------------
#pragma package(smart_init)
//-------------------------------------------------------------------------------------------------------
// 初期化
//-------------------------------------------------------------------------------------------------------
__fastcall TConvert::TConvert():C_EOF(L'\0')
{
}
//-------------------------------------------------------------------------------------------------------
// ファイルの終わりまで、1文字ずつ読んで、1文字ずつ書く
//-------------------------------------------------------------------------------------------------------
void __fastcall TConvert::charcopy(TTextReader* reader, TTextWriter* writer)
{
//ファイルの終わりまで、1文字ずつ読んで
wchar_t c;
while ((c = reader->getChar()) != C_EOF)
{
//1文字ずつ書く
writer->putChar(c);
}
}
//-------------------------------------------------------------------------------------------------------
// HTML に書式化して出力
//-------------------------------------------------------------------------------------------------------
void __fastcall TConvert::tohtml(TTextReader* reader, TTextWriter* writer, AnsiString langType)
{

TTokenReader* tokenReader = TTokenReader::Create(reader, langType);
TTokenWriter* tokenWriter = new TTokenWriter(writer);

//ファイルの終わりまで、1区切りずつ読んで
TToken* token;
while((token = tokenReader->getToken()) != NULL)
{
//文字列の種類に応じた色指定タグで挟んで出力する
tokenWriter->putToken(token);
}

delete tokenReader;
delete tokenWriter;

tokenReader = NULL;
tokenWriter = NULL;
}