Reading a .txt file, converting to dbf via Cheetah.  Working, but skipping input txt records.  I've opened the txt file with other programs, columns appear correct, etc.  (Txt file is output from Primavera 3.1 PRMBATCH.)  Compiling with Windows.
 
IncludeFile "Cheetah2.pbi"
xdbUseDLL()
  
  FieldArray.s = "RTYPE,C,4,0;ITYPE,C,10,0;ACTID,C,10,0;DURTYPE,C,1,0;DUR,N,4,0;PCTCOMP,N,3,0;TITLE,C,48,0;TF,D,8,0"
  
  xdbCreate("TEST", FieldArray.s)
  hdb1 = xdbOpen("TEST.dbf", "") 
  
  If ReadFile(0, "Q431OUTX.TXT")  
    While Eof(0) = 0   
  
      xdbClearBuffer(hdb1)
      tempcode.s=Left(ReadString(0),4) 
      
      Select tempcode
            
      Case "ACTV"
            
            xdbAssignField(hdb1, "RTYPE", xdbFieldNumber(hdb1, "RTYPE"), Mid(ReadString(0), 1, 4))
            
            xdbAssignField(hdb1, "ITYPE", xdbFieldNumber(hdb1, "ITYPE"), Mid(ReadString(0), 5, 1))   
            
            xdbAssignField(hdb1, "ACTID", xdbFieldNumber(hdb1, "ACTID"), Mid(ReadString(0), 6, 10)) 
              
            xdbAssignField(hdb1, "DURTYPE", xdbFieldNumber(hdb1, "DURTYPE"), Mid(ReadString(0), 16, 1)) 
             
            xdbAssignField(hdb1, "DUR", xdbFieldNumber(hdb1, "DUR"), Mid(ReadString(0), 16, 1))  
             
            xdbAssignField(hdb1, "PCTCOMP", xdbFieldNumber(hdb1, "PCTCOMP"), Mid(ReadString(0), 21, 3))   
            
            xdbAssignField(hdb1, "TITLE", xdbFieldNumber(hdb1, "TITLE"), Mid(ReadString(0), 24, 48) )   
                                                
            xdbAppendRecord(hdb1) 
            
            Debug ReadString(0)
      EndSelect    
      
    Wend
    CloseFile(0)               
  Else
    MessageRequester("Information","Couldn't open the file!")
  EndIf
  
  xdbClose(hdb1)
  xdbFreeDLL()
  
End
			
			
									
									PB/Cheetah - Skipping Txt Records
PB/Cheetah - Skipping Txt Records
Slow, but trying.
						- 
				gnozal
 - PureBasic Expert

 - Posts: 4229
 - Joined: Sat Apr 26, 2003 8:27 am
 - Location: Strasbourg / France
 - Contact:
 
Please use the code tags.
What is the text file like ?
Are all the fields in the same text line ?
How about this ?
			
			
													What is the text file like ?
Are all the fields in the same text line ?
How about this ?
Code: Select all
IncludeFile "Cheetah2.pbi" 
xdbUseDLL() 
FieldArray.s = "RTYPE,C,4,0;ITYPE,C,10,0;ACTID,C,10,0;DURTYPE,C,1,0;DUR,N,4,0;PCTCOMP,N,3,0;TITLE,C,48,0;TF,D,8,0" 
xdbCreate("TEST", FieldArray.s) 
hdb1 = xdbOpen("TEST.dbf", "") 
If ReadFile(0, "Q431OUTX.TXT") 
  
  While Eof(0) = 0 
    
    xdbClearBuffer(hdb1) 
    
    line.s = ReadString(0)
    tempcode.s=Left(line,4) 
    
    Select tempcode 
      
      Case "ACTV" 
        
        xdbAssignField(hdb1, "RTYPE", xdbFieldNumber(hdb1, "RTYPE"), Mid(line, 1, 4)) 
        
        xdbAssignField(hdb1, "ITYPE", xdbFieldNumber(hdb1, "ITYPE"), Mid(line, 5, 1)) 
        
        xdbAssignField(hdb1, "ACTID", xdbFieldNumber(hdb1, "ACTID"), Mid(line, 6, 10)) 
        
        xdbAssignField(hdb1, "DURTYPE", xdbFieldNumber(hdb1, "DURTYPE"), Mid(line, 16, 1)) 
        
        xdbAssignField(hdb1, "DUR", xdbFieldNumber(hdb1, "DUR"), Mid(line, 16, 1)) 
        
        xdbAssignField(hdb1, "PCTCOMP", xdbFieldNumber(hdb1, "PCTCOMP"), Mid(line, 21, 3)) 
        
        xdbAssignField(hdb1, "TITLE", xdbFieldNumber(hdb1, "TITLE"), Mid(line, 24, 48) ) 
        
        xdbAppendRecord(hdb1) 
        
        Debug line
        
    EndSelect 
    
  Wend 
  CloseFile(0) 
Else 
  MessageRequester("Information","Couldn't open the file!") 
EndIf 
xdbClose(hdb1) 
xdbFreeDLL() 
End
					Last edited by gnozal on Thu Jul 05, 2007 4:43 pm, edited 3 times in total.
									
			
									For free libraries and tools, visit my web site (also home of jaPBe V3 and PureFORM).
						