Code I
public function parseCSV(rawData:String):Array {
var ii:Number, columnArray:Array, rowObject:Object;
var returnArray:Array = new Array();
var rowDelimiter:String = (rawData.indexOf('\r\n') > -1) ? '\r\n' :
(rawData.indexOf('\r') > -1) ? '\r' : '\n';
var columnDelimiter:String = qualifier + ',' + qualifier;
var rowsArray:Array = rawData.split(rowDelimiter);
if(!columns.length) {
columns = removeQualifier(rowsArray.shift().toString(),
qualifier).split(columnDelimiter);
}
for(var i:Number = 0; i < rowsArray.length; i++) {
columnArray = removeQualifier(rowsArray[i].toString(),
qualifier).split(columnDelim);
if(columnArray.length == columns.length) {
rowObject = new Object();
for(ii = (columnArray.length - 1); ii >= 0; ii--) {
rowObject[columns[ii]] = columnArray[ii];
}
returnArray.push(rowObject);
}
}
return returnArray;
}
Code II
private function removeQualifier(originalString:String, qualifier:String):String {
var modifiedString = originalString;
if(modifiedString.charAt(0) == qualifier) {
modifiedString = modifiedString.substring(1);
}
if(modifiedString.charAt(modifiedString.length - 1) == qualifier) {
modifiedString = modifiedString.substring(0, (modifiedString.length - 1));
}
return modifiedString;
}