The fileReadRecord function reads end-of-line terminated records from a buffered file {fileID} returning record String Object {record}. If no buffer size {bufferSize} is specified, one will be created, of a default size, to hold the data that is read from the file.

Data is entered into a file with the fileWrite, fwriteln, or fdisplay functions, however, records are not actually committed to the file until the file is closed. Thus, attempting to read a record immediately after a fileWrite or fdisplay will result in an error. In order to verify records that have been written, it is necessary to close the file and save the file (fileClose with an option argument equal to 1) . The file can then be re-opened and read with the fileReadRecord function.

For example here is example code which writes a file and then reads records from it.



Where readTestFile is defined as follows.

(defun readTestFile()

    vars:(n N aEOF aBuffer (aLine ""))

    (setq aFile (fileOpen aFileName 0 0))

    (setq aBuffer (fileReadRecord aFile))

    (while (<> aLine #void) do

      (setq aLine (fileReadRecord aFile aBuffer))

      (writeln aLine)

    ) ; end of while

    (setq aFile (fileClose aFile 1))


And where writeTestFile is defined as follows.

(defun writeTestFile()

    vars:(n N)

    (setq aFile (fileOpen aFileName 1 0))

    (loop for n from 0 until 10 do

      (fileWriteln aFile n #\tab "some text" )

    ) ; end of loop

    (setq aFile (fileClose aFile 1))


;;Main Code




The fileReadRecord function is used to read end-of-line terminated text data from an existing file (One that have been previously written and closed). See the fileOpen fileWrite and fileClose functions.




(fileReadRecord fileID)

(fileReadRecord fileID buffer)

Arguments Name Type Description
Argument:fileID Integer An Integer representing the fileID to be read (must be the fileID returned from a previous fileOpen function).
Argument:bufferByteVector (Optional) The file buffer to parse looking for the next record (must be the buffer returned from the first call to the fileReadRecord function).


If no buffer argument is passed, the buffer object to parse looking for the next record. If a buffer argument is passed, the next sequential record in the file. If no buffer argument is passed and there are no more records, a void object is returned.



Here are a number of links to Lambda coding examples which contain this instruction in various use cases.


Argument Types

Here are the links to the data types of the function arguments.

Integer String

Here are also a number of links to functions having arguments with any of these data types.

++ += + /=
/ *= * --
-= - addMethod addi
appendWriteln append avg badd
balance bdiv binaryInsert binaryNand
binaryNor binaryNot binaryNxor binarySearch
bitwiseAnd bitwiseNand bitwiseNor bitwiseNot
bitwiseNxor bitwiseOr bitwiseShiftLeft bitwiseShiftRight
bitwiseXor bmod bmul boolean
cadd cdiv char character
clean closeLog cmod cmul
code compareEQ compareGE compareGT
compareLE compareLT compareNE compare
comparison compress cons count
csub date day days360
debugBrowsableProcs debugDetective debugEval deleteRows
delete dimension disassemble display
divi downcase encode evalInSyncLocalContext
eval exit exportCsv exportSbf
exportTab fact fdisplay fileClose
fileCopy fileDir fileDisplay fileEraseDir
fileErase fileExists fileMakeDir fileOpen
fileReadAll fileReadRecord fileRead fileResize
fileSeek fileSizeOf fileWriteAll fileWrite
filewriteln findBlock find floor
fraction freeBlock gcd getRecursionCount
hashString hour iadd icompareEQ
icompareGE icompareGT icompareLE icompareLT
icompareNE idiv imod importCsv
importSbf importTab imul insertRows
insert inside inspect integer
isAtom isBitVector isBoolean isBound
isByteVector isCharAlphabetic isCharAlphanumeric isCharLowercase
isCharName isCharNumeric isCharUppercase isCharWhitespace
isChar isCharacter isComplex isDate
isDictionary isDirectory isEqual isError
isEven isFloatVector isIdentical isInside
isIntegerVector isInteger isLambda isMatrix
isMember isMoney isNumberMatrix isNumberVector
isNumber isObjectVector isObject isPair
isPcodeVector isString isStructure isSymbol
isText isType isVector isub
julian kurtosis lcm left
length list loadModule loadWorkspace
macroReplace makeQuotedList makeQuotedSymbol max
median member mid min
minute mod modi money
month muli new number
objectToMatrix objectToNumMatrix objectToNumVector offset
openLog pair parent parse
pointer preAllocateFixedMemoryBlocks product qt
random randomize range rank
refAttributes refValues ref remove
replace rept resize right
round run saveImmediate saveModule
saveObject saveWorkspace second setAttributes
setBlock setCar setCdr setLastCdr
set setf setq sizeof
skew sort sql sqrt
srandom stdev stdevp stringCiEQ
stringCiGE stringCiGT stringCiLE stringCiLT
stringCiNE stringFill stringToBVector stringToVector
string subi submit substitute
substringCiEQ substringCiGE substringCiGT substringCiLE
substringCiLT substringCiNE substringEQ substringFill
substringGE substringGT substringLE substringLT
substringNE substring sum sumsqr
svmRegression symbolToTypeCode symbol system
text time trim type
uniqueInsert upcase var varp
vectorBinaryInnerProduct vectorBipolarInnerProduct vectorCosineInnerProduct vectorCubeInnerProduct
vectorDelete vectorExpInnerProduct vectorFill vectorInnerProduct
vectorLogInnerProduct vectorQuartInnerProduct vectorQuintInnerProduct vectorSigmoidInnerProduct
vectorSineInnerProduct vectorSquareInnerProduct vectorTanInnerProduct vectorTanhInnerProduct
writelg writeln year

Analytic Information Server (AIS)

AIS Component Systems

  • Smartbase Engine
  • QT C++ Libraries
  • MySQL Relational Database
  • AIS Lisp Libraries
  • Rapid Analytic Demo IDE