Преобразование оператора фиксированной длины из VB6 в VB.Net

Мы выполняем отправку данных на основе протокола на устройство, где устройству требуются форматированные пакеты данных.

пример данных пакета: XXFSXXXFSXXXXXXXFSXXXXXX.Упомянутый Xявляется максимальным размером длины каждой строки. если данные меньше максимальной длины строки, они должны быть заполнены символом NULL, например..11FS123FS1234XXXX(оставшийся X будет заполнен NULL ).

Я просто пытаюсь преобразовать одну из функций VB6 в VB.Net, и ниже приведен преобразованный оператор, в котором я столкнулся с проблемой

Option Strict Off
Option Explicit On
Imports Microsoft.VisualBasic.Compatibility.VB6
Imports System
Imports System.Runtime.InteropServices
Module FunctionCmd_Msg

    Public FunCommand_Msg As Fun_CommandMessage = Fun_CommandMessage.CreateInstance()
    'Function Command Message
    <StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Auto)> _ _
    Public Structure Fun_CommandMessage
        <VBFixedString(1)> Public one As String
        <VBFixedString(1)> Public two As String
        <VBFixedString(3)> Public three As String
        Dim five As String
        <VBFixedString(8)> Public four As String
        Public Shared Function CreateInstance() As Fun_CommandMessage
            Dim result As New Fun_CommandMessage
            result.one = String.Empty
            result.two = String.Empty
            result.three = String.Empty
            result.four = String.Empty
            result.five = String.Empty
        End Function
    End Structure
End Module

предполагая:

one = "1"
two = "1"
three = "123"
four = "5678"           
five = "testing"
FS = character (field separator)

при объединении строк мне нужна строка фиксированной длины, такая как эта:

one & two & FS & three & FS & five & FS & four

вывод :, так как четыре — это строка фиксированной длины из 8, оставшиеся 4 символа должны быть заполнены нулем, как показано ниже

11 FS 123 FS testing FS 5678XXXX
0
задан DaveInCaz 20 March 2019 в 19:18
поделиться