최용일님 감사합니다.
Text 파일은 제가 String으로 읽어서 발생한 문제가 맞습니다.
잘 해결했습니다.
또 다른 질문...
질문 1. 재선언이 가능한지?
만약 Class 내부에서 다음과 같이 정의를 했습니다.
TShipStation = Class(TObject)
Public
Ship_St of Array[1..100] : Integer;
End;
지금 Array가 100개인데요
Procedure 내부에서 다음과 같이 100개 가 아닌 27개 까지만 재 선언은 어떻게 하는지요?
질문2. 비주얼베이직에서는 Type을 다음과 같이 정의해서 쓰는 경우가 있는데
델파이도 가능한지요?
//////////////////////////////Class 정의
Type PointDataStructure
x As Single
y As Single
z As Single
End Type
Type ShipContourDataStructure
NumofPoint As Integer
point() As PointDataStructure
End Type
Public ShipLine() As ShipContourDataStructure
Type Mb_ShipContourDataStructure
NumofPoint As Integer
point() As PointDataStructure
End Type
////////////////////////////Class 정의
이런 방법으로 정의해 놓고 다음과 같이 사용합니다.
가능한지요
Mb_InFile = SetPath + "\" + MyTxt2.Text + ".mby"
Mb_InNum = FreeFile
Open Mb_InFile For Input As Mb_InNum
Line Input #Mb_InNum, Mb_sStaCnt
Mb_iStacnt = CInt(Mb_sStaCnt)
ReDim Preserve Mb_ShipLine(1 To Mb_iStacnt)
Mb_ShipLineCnt = Mb_iStacnt
For i = 1 To Mb_iStacnt - 1
Line Input #Mb_InNum, Mb_Sstrall
Mb_ILineCnt = CInt(Mb_Sstrall)
Mb_ShipLine(i).NumofPoint = Mb_ILineCnt
ReDim Mb_ShipLine(i).point(1 To Mb_ILineCnt)
For j = 1 To Mb_ILineCnt
Input #Mb_InNum, Mb_ShipLine(i).point(j).x, Mb_ShipLine(i).point(j).y, Mb_ShipLine(i).point(j).z , <--이부분
Next
Next
Close #Mb_InNum
이와 같이 x,y,z의 array를 사용하는데 방법이 있는지요?
PointDataStructure = record
x : Single
y : Single
z : Single
end;
TShipStation = Class(TObject)
Public
Ship_St of Array PointDataStructure;
End;
사용할때 비베에서는 Redim
Delphi 에서는 Setlength(Ship_St, 27);
^^ 똑같죠
소스에서 보면
ReDim Preserve Mb_ShipLine(1 To Mb_iStacnt)
이부문은
Setlength(Mb_ShipLine, Mb_ILineCnt - 1);
For j := 0 To Mb_ILineCnt - 1
이런식으로 대치됩니다.