Example Lambda importTab 001

 

 

Description

The stockLambda Lambda is a simple Lambda that reads a file, and imports the data into an in-memory table that is represented as an Object Vector. Each item in the object Vector is a record.

 

Details

The stockLambda Lambda provides the minimum methods needed by importTab: setExport, and provides two additional methods: refRowCount and refColCount which queries the Lambda how many rows and columns have been imported and doclear, which performs initialization of persistent variables.

		    (defun StockLambda()

		    pvars: (rowCount colCount rowVector colVector)

		    (defun doClear()                                         ;; Manage clear at start of import.

		       (setq rowCount 0) (setq colCount 0) 

		       (setq colVector #void)    

		       (setq rowVector (^new Vector: object: 0) ) )

		    (defun setImport(row  record)   

		       (setq rowVector[row] record)                          ;; Install the data in a vector 

		       (setq rowCount row)                                   ;; Update the row count

		        rowCount) ;; end of setImport

		    (defun refExport(rowIndex)                     

		        (if (>= rowIndex rowCount) (return false))           ;; Return "false" to stop the export

		        (return rowVector[rowIndex] ) )                      ;; Pass a filled record to exportTab. 

		    (defun refImport(row) 

		        (return (^new String: 256) ) )                       ;; Pass an empty string container to importTab.

		    (defun refRowCount() rowCount)

		    (defun refColCount() colCount)

		     ) ;; end of StockLambda

                 
Returns: #<Lambda 123456 >
				(define  myLambda (new StockLambda) )                          ;; Create a new instance of the StockLambda
				(AnLambda.doclear)                                            ;; initialize persistent variables
				(setq fileid (fileOpen stocks.sbf 0 0))                      ;; Open an existing text file
				(importTab  fileid  myLambda recordsOnly:)                    ;; import the file                                   
				(fileClose fileid 1);                                        ;; Close the file
				(myLambda.refRowCount)                                        ;; Ask the Lambda for a row count
          
Returns: #<Lambda 234567>

Notes and Hints

The Lambda for importTab function supplies the containers to receive the data from the importTab function. Upon receiving the data, the Lambda may customize the import by performing sophisticated fixup functions or it may install the data into in memory as vectors, lists, dictionaries, etc, or it may store the data in an Object Repository. Another example of a custom import Lambda is one that takes a large record received from the importTab function and parses data that is delimited by other characters: for example vertical bar, comma, space, period, etc. Or, the Lambda may install columnar type data into multidimensional vectors that treat that data as cells in a spreadsheet. Additional methods may be added to the Lambda to extract the data, or sort the data, add records, or delete records, compute row count, column count, etc.

 

Related Examples

Here are examples of the importTab function at work.

Lambda importTab 001 ObjectRepository importTab 001

 

Function Links

Here is the link to the current function used in this example.

importTab

Here are a number of links to other related functions.

exportTab(#void)

 

Argument Types

Here are the links to the data types of the arguments used in this example.

Lambda Record Symbol

Here are a number of links to examples having similar argument types.

BitVector addMethod 023 BitVector defmethod 020 BitVector methodsOf 021 Boolean addMethod 011
Boolean addMethod 012 Boolean defmethod 012 Boolean methodsOf 012 Boolean send 010
Brick addMethod 008 Brick defmethod 025 Brick methodsOf 024 Brick send 027
ByteVector isCharAlphabetic 003 ByteVector isCharAlphanumeric 003 ByteVector isCharLowercase 003 ByteVector isCharName 003
ByteVector isCharNumeric 003 ByteVector isCharUppercase 003 ByteVector isCharWhitespace 003 Character addMethod 013
Character defmethod 013 Character methodsOf 013 Character send 011 Context debug 001
Context debugBrowsableProcs 001 Context disassemble 001 Context getGlobalValue 001 Context getSymbolTable 001
Context globalBinding 001 Context inspect 001 CpxVector addMethod 028 CpxVector send 028
Date addMethod 015 Date addMethod 016 Date defmethod 015 Date methodsOf 015
Date send 013 Dictionary addMethod 005 Dictionary binarySearch 002 Dictionary defMethod 006
Dictionary delete 004 Dictionary insert 002 Dictionary inside 002 Dictionary isBound 002
Dictionary isDictionary 001 Dictionary member 002 Dictionary methodsOf 007 Dictionary new 004
Dictionary ref 007 Dictionary ref 008 Dictionary ref 009 Dictionary refAttributes 002
Dictionary refValues 002 Dictionary remove 002 Dictionary send 004 Dictionary setAttributes 002
Dictionary setq 007 Dictionary setq 009 Dictionary sort 003 Dictionary sort 005
Directory addMethod 006 Directory defMethod 007 Directory delete 006 Directory insert 003
Directory inside 003 Directory isBound 003 Directory isInside 003 Directory isMember 003
Directory member 002 Directory methodsOf 008 Directory new 005 Directory new 006
Directory ref 010 Directory ref 011 Directory ref 012 Directory refAttributes 003
Directory refValues 003 Directory remove 003 Directory send 005 Directory setAttributes 003
Directory setq 010 Directory setq 011 Directory sort 008 Directory sort 009
FltVector addMethod 019 FltVector defmethod 017 FltVector delete 009 FltVector insert 005
FltVector methodsOf 017 Function addMethod 017 Function addMethod 018 Function defmethod 016
Function methodsOf 016 Function send 014 IntVector addMethod 020 IntVector defmethod 018
IntVector delete 010 IntVector insert 006 IntVector methodsOf 018 Lambda argCount 001
Lambda argFetch 001 Lambda balance 001 Lambda callcc 001 Lambda compare 008
Lambda compareEQ 008 Lambda compareGE 008 Lambda compareGT 008 Lambda compareLT 008
Lambda compareNE 004 Lambda compile 001 Lambda copy 008 Lambda debug 001
Lambda debugBrowsableProcs 001 Lambda defchild 001 Lambda define 001 Lambda define(macro) 001
Lambda defmacro 001 Lambda defmacro 002 Lambda deforphan 001 Lambda defriend 001
Lambda defun 001 Lambda defun 002 Lambda disassemble 001 Lambda eval 001
Lambda exportTab 001 Lambda globalBinding 001 Lambda importTab 001 Lambda inspect 001
Lambda isLambda 001 Lambda lambda 001 Lambda makeLambda 001 Lambda myself 001
Lambda new 001 Lambda new 002 Lambda new 003 Lambda onError 001
Lambda send 008 Lambda send 009 Lambda setq 015 Lambda type 011
List addMethod 025 List defmethod 022 List methodsOf 022 List send 020
Matrix addMethod 008 Matrix defMethod 009 Matrix delete 009 Matrix insert 005
Matrix methodsOf 010 NumMatrix addMethod 027 NumMatrix defmethod 024 NumMatrix delete 014
NumMatrix insert 009 NumMatrix methodsOf 024 NumVector addMethod 021 NumVector defmethod 019
NumVector delete 011 NumVector insert 007 NumVector methodsOf 019 Number addMethod 014
Number defmethod 014 Number methodsOf 014 Number send 012 ObjVector addMethod 022
ObjVector delete 012 ObjVector insert 008 ObjectRepository addMethod 026 ObjectRepository defmethod 023
ObjectRepository delete 013 ObjectRepository detachLibrarian 001 ObjectRepository methodsOf 023 ObjectRepository refLibrarian 001
ObjectRepository send 026 Pair addMethod 024 Pair defmethod 021 Pair methodsOf 021
Pair send 019 PcodeVector methodsOf 020 ShortVector addMethod 021 ShortVector defmethod 019
ShortVector delete 011 ShortVector insert 007 ShortVector methodsOf 019 String isChar 001
String isCharAlphabetic 001 String isCharAlphanumeric 001 String isCharLowercase 001 String isCharName 001
String isCharNumeric 001 String isCharUppercase 001 String isCharWhitespace 001 String isEqual 001
String isEqual 002 String isObject 001 String isString 001 String isText 001
String isType 001 String isType 002 String isType 003 String setq 001
String sizeof 001 String string 001 String string 002 String string 003
String type 001 Structure addMethod 003 Structure addMethod 004 Structure binaryInsert 001
Structure binarySearch 001 Structure defmethod 004 Structure defmethod 005 Structure delete 001
Structure delete 002 Structure insert 001 Structure inside 001 Structure isBound 001
Structure isInside 001 Structure isMember 001 Structure member 001 Structure methodsOf 005
Structure new 003 Structure ref 004 Structure ref 006 Structure refAttributes 001
Structure refValues 001 Structure remove 001 Structure send 003 Structure setAttributes 001
Structure setq 003 Structure setq 004 Structure setq 005 Structure setq 006
Structure uniqueInsert 001 Structure uniqueInsert 002 Symbol *< 001 Symbol ++ 001
Symbol +< 001 Symbol -- 001 Symbol -< 001 Symbol /< 001
Symbol addMethod 002 Symbol append 003 Symbol compare 002 Symbol compareEQ 002
Symbol compareGE 002 Symbol compareGT 002 Symbol compareLE 002 Symbol compareLT 002
Symbol compareNE 002 Symbol comparison functions 002 Symbol defMethod 003 Symbol downcase 002
Symbol getGlobalValue 001 Symbol getGlobalValue 002 Symbol getSymbolTable 001 Symbol getSymbolTable 002
Symbol hashString 002 Symbol isCharAlphabetic 002 Symbol isCharAlphanumeric 002 Symbol isCharLowercase 002
Symbol isCharName 002 Symbol isCharNumeric 002 Symbol isCharUppercase 002 Symbol isCharWhitespace 002
Symbol isObject 002 Symbol isSymbol 001 Symbol isType 004 Symbol methodsOf 004
Symbol new 002 Symbol proplist 001 Symbol proprecord 001 Symbol putprop 001
Symbol ref 003 Symbol remProp 001 Symbol setq 001 Symbol setq 002
Symbol sizeof 002 Symbol symbol 001 Symbol symbol 002 Symbol type 002
Symbol upcase 004 Vector addMethod 007 Vector defmethod 008 Vector delete 007
Vector delete 008 Vector insert 004 Vector methodsOf 009 Vector setAttributes 004
Vector setAttributes 005 Void addMethod 009 Void addMethod 010 Void defmethod 010
Void defmethod 011 Void methodsOf 011

Analytic Information Server (AIS)

AIS Component Systems

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