0

일부 문자열 구문 분석을 수행하고 끝에 고정 폭 파일을 만드는 vb.net 프로그램을 작성했습니다. 내 2 대의 컴퓨터에서 각각 실행하면 형식이 제대로 지정된 파일이 만들어집니다. 내 클라이언트가 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

+0

Exactamundo. 내 생각 엔 클라이언트 사이트의 일부 데이터가 필드 크기를 넘치고 있습니다. 패드 기능은 데이터 만 확장하며 자르지 않습니다. –

+0

그리고 오버플로가 공간에서 발생하지 않았을 수 있습니다. Trim()은 데이터 오버플로에 대해 생각하게 만들었습니다. –