くだすれDelphi(超初心者用)その21
■ このスレッドは過去ログ倉庫に格納されています
0042デフォルトの名無しさん
NGNGfunction GetAnsiStr(S :string) :string;
var
i,j,L: Integer;
P : PChar;
begin
if S = '' then Exit;
L := Length(S); i := 1; j := 0;
P := StrAlloc(L+1);
while i <= L do
begin
if (S[i] in [#$81..#$9F, #$E0..#$FC]) or (S[i] = #13) then
begin //全角文字(と改行コード)の処理
P[j] := S[i]; P[j+1] := S[i+1];
Inc(i,2); Inc(j,2);
end else //アスキー文字の処理(読み飛ばす)
Inc(i);
end;
P[j] := #0;
Result := string(P);
StrDispose(P);
end;
使用例
Memo1.Lines.Text := GetAnsiStr(Memo1.Lines.Text);
いうまでもないがアスキー文字列だけの行は空行(改行コードだけ)になる。
そういうとき空行も不要というならちょっと上記のコードを改造すればいい。
■ このスレッドは過去ログ倉庫に格納されています