FICO
FICO Xpress Optimization Examples Repository
FICO Optimization Community FICO Xpress Optimization Home
Back to examples browserPrevious exampleNext example

Reading and writing records and lists

Description
This set of examples shows how to work with advanced data structures when accessing data in spreadsheets and databases:
  • reading in records (recordin*.mos)
  • writing out records (recordout*.mos)
  • reading and writing lists (listinout*.mos)
The basic model version uses an ODBC connection to spreadsheets or databases through the odbc driver, model version (2) uses ODBC through SQL statements, and model version (3) uses the software-specific driver excel to access Excel spreadsheets. Model version (1) shows how to work with Mosel's text data file format.

Further explanation of this example: Xpress Whitepaper 'Using ODBC and other database interfaces with Mosel', Section Examples - Working with lists - Working with records.

listrecord.zip[download all files]

Source Files

Data Files
recorddata.dat[download]
recorddata.csv[download]
recorddata2.csv[download]
recorddata.mdb[download]
recorddata.xls[download]
recorddata2.xls[download]
recordout_templ.xls[download]
recorddata.xlsx[download]
recorddata2.xlsx[download]
recorddata.sqlite[download]
listdata.dat[download]
listdata.csv[download]
listdata.mdb[download]
listdata.xls[download]
listdata.xlsx[download]
listdata.sqlite[download]





listinout6.mos

(!******************************************************
   Mosel Example Problems
   ====================== 

   file listinout6.mos
   ```````````````````
   Reading/writing lists from/to spreadsheets.
   - Using 'initializations from' with the csv driver -
   
   (c) 2012 Fair Isaac Corporation
       author: S. Heipcke, Dec. 2012
*******************************************************!)

model "List handling (CSV)"
 uses "mmsheet"

 parameters
  CSTR_IN= 'mmsheet.csv:listdata.csv'
  CSTR_OUT= 'mmsheet.csv:listdataout.csv'
 end-parameters
 
 declarations
  LI: list of integer
  A: integer
  LS,LS2: list of string
 end-declarations

 initializations from CSTR_IN
  LI as "[B4:I4]"
  A as "[K4]"
  LS as "[L4:P4]"
 end-initializations 

! Display the lists
 writeln("LI: ", LI)
 writeln("A: ", A, ", LS: ", LS)

! Reverse the list LI
 reverse(LI)

! Append some text to every entry of LS
 LS2:= sum(l in LS) [l+" "+A]

! Display the modified lists
 writeln("LI: ", LI)
 writeln("LS2: ", LS2)

 initializations to CSTR_OUT
  LI as "[B3:I3]"
  LS2 as "[K3:O3]"                 ! Output into a row
  LS2 as "grow;[K6]"               ! Output into a column
 end-initializations

end-model

Back to examples browserPrevious exampleNext example