Private Sub Command1_Click()
Dim PCode As String * 10
PCode="abcdefg"
PCode = Replace(PCode, " ", "1")
End Sub
안녕하세요? 위의 코드는 비주얼베이직으로 작성된 건데요, 여백의 공간을 1로 채우는 코드입니다. 변수선언부에서PCode 변수에 10자리를 할당하였구요, 코드실행결과 PCode에는 "abcdefg111" 로 저장됩니다.
그런데 델파이로 바꾸고 싶어서 StringReplace를 사용하여 아래와 같이 코딩하였습니다.
procedure TForm1.Button2Click(Sender: TObject);
Var
PCode:String[10];
begin
PCode:='abcdefg';
PCode:=StringReplace(PCode,' ','1',[rfReplaceAll]);
ShowMessage(PCode);
end;
그런데 PCode에는 'abcdefg' 로 저장되거든요.. 그래서 베이직에서처럼 동일하게 'abcdefg111' 로 출력이 되게할려면 어떻게 해야 하는지요..
그리고 두번째는.. 여백의 공간에 1 대신 Null값을 집어넣을려면은 어떻게 하면 되는지요.. PCode:=StringReplace(PCode,' ',#0,[rfReplaceAll]) 이렇게 했는데 이 코드가 맞습니까? 답변 부탁드립니다...
Dynamic Array를 사용해야할 경우
var PCode: array of char;
begin
SetLength(PCode,100);
end;
이렇게 하시면 SetLength가 초기화를 해주기 때문에 나머지는 Null로 채워지게 됩니다.
Static Array를 사용하신다면
var PCode: array [0..100] of char;
i : integer;
begin
for i := Low(PCode) to High(PCode) do PCode[i] := #0;
end;
초기화가 되지 않기 때문에 초기화를 해줘야 합니다.