0

我把一個vb.net程序做了一些字符串解析並在最後創建了一個固定寬度的文件。當我在兩臺機器上運行它時,它會創建一個格式正確的文件。當我的客戶端下載msi文件,安裝並運行它時,他會在文件的每個記錄上獲得多個空格,並且從記錄到記錄的空格數量不一致。這裏是代碼,雖然它運行良好,所以我認爲它必須與編譯器有關可能?文件寫入輸出從機器到機器的變化

'For each T2 record, 
    For i = 0 To frmMain.SquirrelDataSet.PayDataExceptions.Rows.Count - 1 

     frmMain.ProgressBar1.PerformStep() 

     'Join Fname and Lname into FullName. 
     Dim FullName As String = frmMain.SquirrelDataSet.PayDataExceptions.Rows(i).Item("Lname") & "," & frmMain.SquirrelDataSet.PayDataExceptions.Rows(i).Item("Fname") 

     If FullName = Nothing Then 
      FullName = "" 
     End If 
     'FullName = FullName(FullName.PadLeft(25, " ")) 
     FullName = FullName.PadLeft(25, " ") 

     objWriter.Write(frmMain.SquirrelDataSet.PayDataExceptions.Rows(i).Item(0) & _ 
         FullName & _ 
         frmMain.SquirrelDataSet.PayDataExceptions.Rows(i).Item(2) & _ 
         frmMain.SquirrelDataSet.PayDataExceptions.Rows(i).Item(3) & _ 
         frmMain.SquirrelDataSet.PayDataExceptions.Rows(i).Item(4) & _ 
         frmMain.SquirrelDataSet.PayDataExceptions.Rows(i).Item(5) & _ 
         frmMain.SquirrelDataSet.PayDataExceptions.Rows(i).Item(6) & _ 
         frmMain.SquirrelDataSet.PayDataExceptions.Rows(i).Item(7) & _ 
         frmMain.SquirrelDataSet.PayDataExceptions.Rows(i).Item(8) & _ 
         frmMain.SquirrelDataSet.PayDataExceptions.Rows(i).Item(9) & _ 
         frmMain.SquirrelDataSet.PayDataExceptions.Rows(i).Item(10) & _ 
         frmMain.SquirrelDataSet.PayDataExceptions.Rows(i).Item(11) & _ 
         frmMain.SquirrelDataSet.PayDataExceptions.Rows(i).Item(12) & _ 
         frmMain.SquirrelDataSet.PayDataExceptions.Rows(i).Item(13) & _ 
         frmMain.SquirrelDataSet.PayDataExceptions.Rows(i).Item(14) & _ 
         frmMain.SquirrelDataSet.PayDataExceptions.Rows(i).Item(15) & _ 
         frmMain.SquirrelDataSet.PayDataExceptions.Rows(i).Item(16) & _ 
         frmMain.SquirrelDataSet.PayDataExceptions.Rows(i).Item(17) & _ 
         frmMain.SquirrelDataSet.PayDataExceptions.Rows(i).Item(18) & _ 
         frmMain.SquirrelDataSet.PayDataExceptions.Rows(i).Item(19) & _ 
         frmMain.SquirrelDataSet.PayDataExceptions.Rows(i).Item(20) & _ 
         frmMain.SquirrelDataSet.PayDataExceptions.Rows(i).Item(21) & _ 
         frmMain.SquirrelDataSet.PayDataExceptions.Rows(i).Item(22) & vbCrLf) 
    Next 

回答

0

很可能您的客戶在其數據中沒有額外的數據中沒有空白。

您可以在寫入數據之前嘗試使用.Trim()

+0

我不能使用修剪功能,因爲這是一個固定長度的記錄,並且包含大量必須保留記錄完整性的空格。在這些空間的某個地方,問題在於...... – user898642 2012-08-01 14:50:25

+0

Exactamundo。我的猜測是客戶端站點上的一些數據溢出了字段大小。你的Pad功能只能擴展數據,並不能截斷它。 – 2012-08-01 14:52:24

+0

並且該溢出可能不是來自空格.. Trim()只是爲了讓您考慮數據溢出問題。 – 2012-08-01 14:53:02