変換処理 呼び出し用クラス
これまでC# で作成してきた「SourceToHTML」を、Delphi に焼きなおしてみます。
Convert.pas
//*******************************************************************************************************
// HTML変換処理 呼び出しクラス
//*******************************************************************************************************
unit Convert;interface
uses
TextReader, TextWriter, Token, TokenReader, TokenWriter;type
TConvert = class
public
procedure charcopy(reader:TTextReader; writer:TTextWriter);
procedure tohtml(reader:TTextReader; writer:TTextWriter; langType:string);
end;implementation
//---------------------------------------------------------------------------------------------------
// ファイルの終わりまで、1文字ずつ読んで、1文字ずつ書く
//---------------------------------------------------------------------------------------------------
procedure TConvert.charcopy(reader:TTextReader; writer:TTextWriter);
var
c:WideChar;
begin
//ファイルの終わりまで、1文字ずつ読んで
while true do
begin
c := reader.getChar();
if (c = EOF) then break;
//1文字ずつ書く
writer.putChar(c);
end;
end;
//---------------------------------------------------------------------------------------------------
// HTML に書式化して出力
//---------------------------------------------------------------------------------------------------
procedure TConvert.tohtml(reader:TTextReader; writer:TTextWriter; langType:string);
var
tokenReader:TTokenReader;
tokenWriter:TTokenWriter;
token: TToken;
begin
tokenReader := TTokenReader.CreateTokenReader(reader, langType);
tokenWriter := TTokenWriter.Create(writer);//ファイルの終わりまで、1区切りずつ読んで
while true do
begin
token := tokenReader.getToken();
if (token = nil) then break;//文字列の種類に応じた色指定タグで挟んで出力する
tokenWriter.putToken(token);
end;tokenReader.Free;
tokenWriter.Free;tokenReader := nil;
tokenWriter := nil;
end;end.