次のコードでENDを揃えた状態で出力したいのですが
どのようにすればよいのでしょうか?
文字を扱う場合はsのみと思うのですが
全角の場合2文字としないで
1文字とするためうまくいかないように思います。
何かほかの方法があるのでしょうか
よろしくお願いします。
Memo1.Lines.Add(Format('%-10sEND', ['あああ']));
Memo1.Lines.Add(Format('%-10sEND', ['いい']));
Memo1.Lines.Add(Format('%-10sEND', ['aaa']));
Memo1.Lines.Add(Format('%-10sEND', ['bb']));
出力結果
あああ END
いい END
aaa END
bb END
期待する結果
あああ END
いい END
aaa END
bb END
delphi XE2
Windows7 64bit
以下のようなのは、いかがですか?
procedure TForm1.Button11Click(Sender: TObject);
function Test(s: String): String;
var
strTest: AnsiString;
strSpc: String;
SpcLen: Integer;
begin
strTest := s;
strSpc := '';
SpcLen := 10 - Length(strTest);
if SpcLen > 0 then strSpc := StringOfChar(' ', SpcLen);
Result := Format('%s%sEND', [s, strSpc]);
end;
begin
Memo1.Lines.Clear;
Memo1.Lines.Add(Test('あああ'));
Memo1.Lines.Add(Test('いい'));
Memo1.Lines.Add(Test('aaa'));
Memo1.Lines.Add(Test('bb'));
end;
ありがとうございます
登録されたソースで出来ました
ツイート | ![]() |