|
16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル
"文字列から任意の文字を削除"
みなさん、こんにちは。fumikaです。
ある文字列の中から、不要な文字だけを削除します。
削除できる文字は 1バイト文字だけで、複数指定できます。
Ansi 対応で2バイト文字の2バイト目を削除してしまうなんてことはありません。
type
TCharSet = set of Char;
function AnsiTrimCharSet(const S: string; CharSet: TCharSet): string;
var
I, J: Integer;
DB: Boolean;
begin
J := 0;
DB := False;
SetLength(Result, Length(S));
for I := 1 to Length(S) do begin
if IsDBCSLeadByte(Byte(S[I])) then begin
DB := True;
Inc(J);
Result[J] := S[I];
end else begin
if DB then begin
Inc(J);
Result[J] := S[I];
DB := False;
end else begin
if not (S[I] in CharSet) then begin
Inc(J);
Result[J] := S[I];
end;
end;
end;
end;
SetLength(Result, J);
end;
引数の CharSet には、削除したい文字を集合で指定します。
例) [' ', '*', #10, #13]
平成11年2月25日(木) fumika(YRK00111@nifty.ne.jp)
★☆★ http://www2m.biglobe.ne.jp/~fumika/ ★☆★
Original document by fumika 氏 ID:(YRK00111)
ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。
Copyright 1996-2002 Delphi Users' Forum
|