Remember: these functions are in LOW LEVEL. The best way to access files and read strings, also binaries. Study all these low level functions, very very useful.
I am happy to be helpfull...
HMGing a better world "Matter tells space how to curve, space tells matter how to move." Albert Einstein
Since you're a whiz with low level functions, do you have suggestions for parsing the tab delimited data while it is in the buffer? I've been searching sites and have read that it is much faster than writing to a string variable and parsing that. What I wish to do is read lines from a Primavera P6 XER export file (text delimited with tabs), select some "fields" of data and update existing DBF files. Your code is lightning fast at accessing the input text, but I haven't been able to find any existing parsing functions.
I learned much including low level functions, with this guy. There is also good and friendly atmosphere in Clipper on Line forum.
Could you post some sample file in you next post ? Just to see it in hexadecimal editor and check which exactly is needing for.
For parsing characters even in the buffer it could be done. You will find an example at STRU.prg ( here it is the package project, without executable file) and look up for "Function Le_Variavel(cBuff)"
HMGing a better world "Matter tells space how to curve, space tells matter how to move." Albert Einstein
Function DebugMSG
Local i, aTemp := {}
For i := 1 to pcount()
aadd( aTemp, hb_PValue(i))
Next i
MsgBox(hb_valtoexp(aTemp), "Helpful informations")
Return Nil
Put in you code and call this function like this: DebugMSG(aLine)
This is very clever code! I know it will solve my problem, as it reads the source file line by line.
Thank you and glad to know it has been helpful to you...
MsgDebug ( xData1, xData2, ... ) --> Accepts as a parameters any data type, elements or objects.
Returns a string with the message displayed on the screen.
Example:
Num := 10
aData := { "Number", 38, "aRGB", YELLOW, "Hello" }
cMsg := MsgDebug ( TIME(), aData, {|| NIL}, Num == 3 )
MsgDebug ( xData1, xData2, ... ) --> Accepts as a parameters any data type, elements or objects.
Returns a string with the message displayed on the screen.
Example:
Num := 10
aData := { "Number", 38, "aRGB", YELLOW, "Hello" }
cMsg := MsgDebug ( TIME(), aData, {|| NIL}, Num == 3 )
Dr. Soto Thanks for reminding us! Had not stopped to see such a function.
Nick wrote:Can't attach txt or xer files.
Try to attach using WinRar. Probably it due for forum security reasons.
HMGing a better world "Matter tells space how to curve, space tells matter how to move." Albert Einstein