16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル
"RE:文字列からトークン切り出し(StrTok)"
この発言は #00628 DUDE さんの文字列からトークン切り出し(StrTok) に対するコメントです
StrTokNext がメイン部分ですが、前回アップロードした方法は、Delphi の文字
列用メモリ管理の構造上で効率が悪いので、少し無駄をなくしました。その他の
関数は同一です。
{ 文字列からトークンの切り出し }
function StrTokNext(const sep:TStrTokSeparator; var
Rec:TStrTokRec):string;
var
Len, I: Integer;
begin
with Rec do
begin
Len := Length(Str);
Result := '';
if Len >= Pos then
begin
while (Pos <= Len) and (Str[Pos] in sep) do
begin
Inc(Pos);
end;
I := Pos;
while (Pos<= Len) and not (Str[Pos] in sep) do
begin
if IsDBCSLeadByte(Byte(Str[Pos])) then
begin
Inc(Pos);
end;
Inc(Pos);
end;
Result := Copy(Str, I, Pos - I);
while (Pos <= Len) and (Str[Pos] in sep) do // これはお好み
begin
Inc(Pos);
end;
end;
end;
end;
98/8/18(Tue) 07:05pm [AirCraft 97開発] PFF01344 DUDE
Original document by DUDE 氏 ID:(PFF01344)
ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。
Copyright 1996-2002 Delphi Users' Forum
|