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.
-
- 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).