16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル
"RE:文字列の左から..."
この発言は #00464 Fermion さんの文字列の左から指定文字数を切り出す に対するコメントです
この発言に対し以下のコメントが寄せられています
#00470 Fermion さん RE^2:文字列の左から...
■説明
パラメータとして渡された文字列の左より空白を除いた指定文字数を
取り出す関数です。(全角、半角に対応しています。)
無理矢理ワイド文字を利用しました。 (((^^;) スマートジャ ナイナァ〜
■サンプルコード
//=====================================================================
function StrLeft( const Str: String; Count: Integer ): String;
var
Max, BufMax: Integer;
pBuf, p : PWideChar;
begin
Result := '';
Max := Length( Str );
if ( Max <= 0 ) or ( Count <= 0 ) then Exit;
BufMax := MultiByteToWideChar( 0, 0, Pointer( Str ), Max, nil, 0 );
pBuf := SysAllocStringLen( nil, BufMax );
try
p := pBuf;
MultiByteToWideChar(0, 0, Pointer( Str ), Max, pBuf, BufMax );
while ( p^ <> WideChar( 0 ) ) and ( Count > 0 ) do begin
if ( p^ <> ' ' ) and ( p^ <> WideChar( #12288 ) ) then
begin
Result := Result + WideCharLenToString( p, 1 );
Dec( Count );
end;
Inc( p );
end;
finally
SysFreeString( pBuf );
end;
end;
//=====================================================================
98/03/21(土) 20:13 Fermion [KHF03264]
Original document by Fermion 氏 ID:(KHF03264)
ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。
Copyright 1996-2002 Delphi Users' Forum
|