답변 감사합니다. 그런데, 저는 Delphi 5 쓰고 있는데, [va] 처럼 하면
compiler 에러는 안나는데 run-time error 가 발생했습니다.
그래서 va 에 들어갈 내용을 TStringList 에 넣어 두고
string 개수만큼 StringReplace 함수를 쓰기로 했습니다.
여하튼 감사드립니다.
흐르는산 님이 쓰신 글 :
: marinfo 님이 쓰신 글 :
: : 안녕하십니까.
: :
: : format 문장에서 array 변수를 직접 넣으려니 안되네요. 무슨 방법이 없을지.
: : 대략 다음과 같은 상황입니다.
: :
: : var
: : va : array of string;
: : sa: array [0..1] of string;
: : formatstr, finalstr: string;
: :
: : begin
: : formatstr := '여기 첫번째 내용 %s 가 있고, 다음 두 번째 항목 %s가 있습니다';
: :
: : setlength(va, 2);
: : va[0] := 'Item 1';
: : va[1] := 'Item 2';
: : finalstr := format(formatstr, va);
: :
: : sa[0] := 'Item 1';
: : sa[1] := 'Item 2';
: : finalstr := format (formatstr, sa);
: : end;
: :
: :
: : 위처럼, variable array 와 static array 둘 다 사용해 보아도, 모두 incompatible type 이라며
: : compiler error 가 납니다. 원래 안 되는 것인지, 아니면 제가 뭘 잘못 쓴 건지? Argument 개수가
: : 수시로 변할 수 있어, variable array 사용이 꼭 필요한 상황입니다. 어떤 방법이 있을까요?
: :
: : 아시는 분 도움 부탁드립니다.
:
: 2번째는 안되는것같고..
: 1번째는
: finalstr := format(formatstr, va); -->finalstr := format(formatstr, [va]);
: 이렇게 하시면 될것같습니다. 2007에서 테스트 했습니다.
|