我正在移植使用複雜類型來包含結構化消息系統的VB6應用程序。我正在工作的當前問題是將其轉換爲VB.net結構。以下是聲明:將VB6嵌套類型作爲VB.net中的結構重新表達
Global Const MAX_MSGS = 150 ' Max number of messages per set
Global Const MAX_SETS = 100 ' Max number of message sets
Global Const MAX_HGI = 96 ' Max number of HowGozIt messages per set
Global Const MAX_WPS = 96 ' Max number of way points per message set
Global Const MAX_FLS = 15 ' Max number of flight levels per waypoint
Type MessageRec
MessType As Integer 'Message Type
MessIndex As Integer 'Message Index (not used currently)
MessNextBit As Integer 'last bit for Mops messages
MessTotal As Integer 'Mess total
MultMessBit As Integer 'Multiple message bit position
MessTitle As String * 25 'Message title
MessNo As String 'Message Numbers and data for mops edit
MessText As String 'I/F displayable text
MessStr As String 'message bits for mops msgs, can be file for acars,aoc
MessLabel As String * 4 'Label and sublabel
TimeDelay As Integer 'Delayed time in seconds before message is delivered
Active As Boolean 'Flag determines active/deactive
AutoInit As Boolean 'Flag if part of auto init bundle
AIDelay As Integer 'Auto Init time delay (secs)
End Type
Type WayPointRec
Name As String * 7
DeltaTime As String * 5
FltLevel As String * 5
DeltaFuel As String * 5
Lat As String * 6 ' Latitude of waypoint
Long As String * 7 ' Longitude of waypoint
SAT As String * 3 ' Standard Air temp (no need to save in database)
Via As String
NumAlts As String * 2 ' Numer of altitudes for following weather data
FL(0 To MAX_FLS) As String * 3 ' Flight level for this weather
WindDir(0 To MAX_FLS) As String * 3 ' Wind direction
WindSpd(0 To MAX_FLS) As String * 3 ' Wind speed
Temp(0 To MAX_FLS) As String * 3 ' Temperature
End Type
Type MessageStore
Nmsgs As Integer 'Number of messages in the message set
Fltno As Integer 'Flight Number
SubFltNo As String * 1 'For multiple messages with same flight number
CityPair As String * 7 'City Pair
Descr As String * 12 'Message Set Description
Hot As Integer 'Hot/Cold flag (true => hot, use second weather message set)
DWndFL(0 To 3) As Integer 'Descent wind flight level (4 altitudes)
DWndDir(0 To 3) As Integer 'Descent wind direction (4 altitudes)
DWndSpd(0 To 3) As Integer 'Descent wind speed (4 altitudes)
WndSpd(0 To 9) As Integer 'Start/end wind speed (5 altitudes)
WndDir(0 To 9) As Integer 'Start/end wind direction (5 altitudes)
TempDev(0 To 1) As Integer 'Start/end Temperature deviation from standard
altn(0 To 1) As String * 3 'Alternate airports for area weather information
nHGIwpts As Integer 'Number of waypoints for howgozit info
HGIinfo(1 To MAX_HGI, 0 To 3) As String * 5 'Howgozit information
MsgData(1 To MAX_MSGS) As MessageRec 'Message data mlw 7/12/02 changed 30 to 60
nwpts As Integer 'Number of waypoints for winds/temp info
WayPoints(1 To MAX_WPS) As WayPointRec 'For canned messages
Index As Integer
Active As Boolean 'Flag determines active/deactive
DeltaArrivalTime As Integer 'add or subtract to get actual arrival time
TimeToGate As Integer 'Time to gate from T/D for HOWGOZIT
End Type
結構MessageStore是在磁盤格式(所有字段轉換爲字符串寫入),這是由另一C程序讀取。
我沒有問題轉換成固定長度蜇傷的簡單字符串而是變換的固定長度字符串的數組中WayPointRec這在隨後包括WayPointRec在MessageStore的航點陣列中的是,其中我目前停留
也如何最好地處理固定長度字符串
編輯的「HGIinfo」 2D字符串數組
省略了一個更詳細 - 頂層
Public MsgArray() As MessageStore
其中MsgArray成長爲
redim preserve MsgArray(x)
與X受限0-100
是有與所述C程序使用了該數據的任何靈活性,或這基本上是第三方事件嗎?這並不是打開「在網絡中全部做好」的大門,但其中一些問題非常棘手。 – Plutonix
C程序運行跨平臺,VAX-VMS,AIX 4.2,SYSTEM V R4 unix,Linux –