お知らせ

電子会議

ライブラリ

パレット

Delphi FAQ検索

Delphi FAQ一覧

サンプル蔵





FDelphi FAQ
16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル

"RE:Simple XML-like token reader"

この発言は
#00897 ぜえた さんのSimple XML-like token reader
に対するコメントです

 ぜえた さん、こんにちは。 #897の修正です。 ・文字列の中を直接いじって文字列破壊が起きる可能性がある個所を修正。 ・タグの途中でテキストの終わりが来たときに tkEndOfTextになるようにした。 type TToken = (tkEndOfText, tkStartTag, tkEndTag, tkContent); TTokenReader = class private FText: string; FToken: TToken; FValue: string; FCur: PChar; procedure SetText(const Value: string); public procedure Next; property Token: TToken read FToken; property Text: string read FText write SetText; property Value: string read FValue; end; procedure TTokenReader.SetText(const Value: string); begin FText := Value; FCur := PChar(FText); end; procedure TTokenReader.Next; var p: PChar; begin p := FCur; case p^ of #0: begin FToken := tkEndOfText; FValue := ''; end; '<': begin Inc(p); if p^ = '/' then begin FToken := tkEndTag; Inc(p); end else begin FToken := tkStartTag; end; while not (p^ in [#0, '>']) do Inc(p); if p^ = '>' then begin Inc(p); SetString(FValue, FCur, p - FCur); end else begin FToken := tkEndOfText; FValue := ''; end; end; else FToken := tkContent; while not (p^ in [#0, '<']) do Inc(p); SetString(FValue, FCur, p - FCur); end; FCur := p; end; ぜえた (QZC05100) Original document by ぜえた 氏 ID:(QZC05100)



ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。

Copyright 1996-2002 Delphi Users' Forum