On Wed, Sep 15, 2010 at 9:29 AM, Rick Root wrote:
>
> Unfortunately, using your code (except using createObject instead of
> javaloader, as I have the library in CF's classpath), I get the same
> error.

Here's a function that uses opencsv <http://opencsv.sourceforge.net/> 2.1,
another CSV <http://en.wikipedia.org/wiki/Comma-separated_values> parsing
deal (looks like there's a newer version, too!).  Works fer me on Railo.
Nasty CSV file in, "clean" CSV file out.

Don't get me started on poorly
formatted<http://en.wikipedia.org/wiki/Escape_character>CSV files.

<cffunction name="cleanCsvFile" output="false">
    <cfargument name="csvFileIn" required="true" />
    <cfargument name="csvFileOut" required="true" />
    <cfargument name="separator" default="" />
    <cfargument name="quotechar" default="" />
    <cfargument name="escapechar" default="" />
    <cfargument name="lineseparator" default="" />
    <cfscript>
        var fileReader =
createObject("java","java.io.FileReader").init(arguments.csvFileIn);
        var reader =
createObject("java","au.com.bytecode.opencsv.CSVReader");
        var myEntries = "";
        var fileWriter =
createObject("java","java.io.FileWriter").init(arguments.csvFileOut);
        var writer =
createObject("java","au.com.bytecode.opencsv.CSVWriter");
        var csvstr = ""
        if(separator eq "") {
            separator = writer.DEFAULT_SEPARATOR;
        }
        if(quotechar eq "") {
            quotechar = writer.DEFAULT_QUOTE_CHARACTER;
        }
        if(escapechar eq "") {
            escapechar = writer.DEFAULT_ESCAPE_CHARACTER;
        }
        if(lineseparator eq "") {
            lineseparator = writer.DEFAULT_LINE_END;
        }
        writer.init(fileWriter,
javacast("char",separator),javacast("char",quotechar),javacast("char",escapechar),
lineseparator);
        if(quotechar NEQ "") {
            reader =
reader.init(fileReader,javacast("char",separator),javacast("char",quotechar),true);
        } else {
            reader = reader.init(fileReader,javacast("char",separator));
        }
        myEntries = reader.readAll();
        writer.writeAll(myEntries);
        writer.flush();
        fileReader.close();
        fileWriter.close();
        reader.close();
        writer.close();
    </cfscript>
    <cfreturn true />
</cffunction>

--
In most things success depends on knowing how long it takes to succeed.
 Charles de Montesquieu


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Order the Adobe Coldfusion Anthology now!
http://www.amazon.com/Adobe-Coldfusion-Anthology-Michael-Dinowitz/dp/1430272155/?tag=houseoffusion
Archive: 
http://www.houseoffusion.com/groups/cf-talk/message.cfm/messageid:337104
Subscription: http://www.houseoffusion.com/groups/cf-talk/subscribe.cfm
Unsubscribe: http://www.houseoffusion.com/groups/cf-talk/unsubscribe.cfm

Reply via email to