// // BBCSVExporter.h // A basic class which provides simple CSV exporting of Cocoa data // // Created by Matt Reagan 12/3/09 /* Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the BravoBug Software nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* ********************************************** */ /* BASIC USAGE - BBCSVExporter is a class which provides CSV exporting of Cocoa data. !! IMPORTANT: Empty fields should always be represented with NSNull *********************** HOW TO USE *********************** To export: you can pass a single NSArray which contains all the objects/data fields, and the number of columns(see the warning above about empty fields): EXAMPLE: [[BBCSVExporter exporter] exportArrayAsCSV: myArray numberOfColumns: 6 toFile: filePath]; Or you can pass it an NSArray wherein each item of the NSArray is another array of table data, like so: EXAMPLE: [[BBCSVExporter exporter] exportArrayAsCSV: myArray toFile: filePath]; The above method treats each item in 'myArray' as a row. Each row (another NSArray) contains the actual row fields, one object for each column. The above methods expect a 'square' table where each row contains the same number of fields, so shorter rows should be padded with NSNulls. */ #import @interface BBCSVExporter : NSObject { } +(id)exporter; //gets an instance of the exporter class -(void)exportArrayAsCSV:(NSArray*)data toFile:(NSString*)filePath; //expects an NSArray of other NSArrays -(void)exportArrayAsCSV:(NSArray*)data numberOfColumns:(int)cols toFile:(NSString*)filePath; //expects single NSArray @end