Here is simple example how to display CSV data in flex. The code doesn't contain any failover functionality and it is just for illustration of the solution.
- Data is loaded via URLLoader in function loadData.
Retrieved data is processed in function processData. It is split into rows. Each row is converted to array (again by split) and the result is pushed to output array, which is assigned as data provider of the grid. Grid has defined columns with data fields matching to indexes in the arrays converted from the rows.
<mx:Application name="CSVTest" xmlns:mx="http://www.adobe.com/2006/mxml" applicationComplete="loadData();"> <mx:Script><![CDATA[ private var dataLoader:URLLoader; private function loadData():void { dataLoader = new URLLoader(new URLRequest("data.csv")); dataLoader.addEventListener(Event.COMPLETE, parseData); } private function parseData(event:Event):void { var output:Array = []; var input:String = dataLoader.data; var rows:Array = input.split("\n"); for (var i:int = 0, len:int = rows.length; i < len; i++) { var row:Array = String(rows[i]).split(","); output.push(row); } grid.dataProvider = output; } ]]></mx:Script> <mx:DataGrid id="grid"> <mx:columns> <mx:DataGridColumn dataField="0"/> <mx:DataGridColumn dataField="1"/> <mx:DataGridColumn dataField="2"/> <mx:DataGridColumn dataField="3"/> <mx:DataGridColumn dataField="4"/> <mx:DataGridColumn dataField="5"/> <mx:DataGridColumn dataField="6"/> <mx:DataGridColumn dataField="7"/> </mx:columns> </mx:DataGrid> </mx:Application>