But ColdFusion developers have been asking for more, greater and more control, and the ability to read and write specific parts of spreadsheet files. Just like we did with the ColdFusion image manipulation functionality, spreadsheets in ColdFusion are manipulated using a tag or functions, or some combination thereof.
Please note, new blog at http: Recently I came across a problem where generating a CSV file was taking a very long time, often making the server unresponsive.
The code in question built a large string using concatenation, and then wrote the string to a file. It occurred to me that in-line Java might be a better tool for the job. As you will see below, I ultimately ended up using the BufferedWriter class, and the execution time went from 5 minutes to 40 seconds!
Testing the theory I decided to run some tests, to see how much cffile write append or slower in-line Java is than ColdFusion. The two tests are: String concatenation ColdFusion vs. CSV generation I created a test script that appended a string to an existing string or 10, or more times.
String concatenation I concluded that Java is a lot better at string concatenation than ColdFusion. This is especially true when dealing with very large strings.
When concatenating a string times, there wasn't too much between them. ColdFusion took ms, whereas the Java class took 78ms. However, when increasing to 10, interations, ColdFusion took ms 17sand Java only took ms! I didn't dare test ColdFusion any further, and I know from experience that it would have taken quite some time.
Ultimately I concluded that the BufferedWriter class is a lot more efficient than the ColdFusion method. A 1, row file The server became sluggish after this, and memory did not seem to be freed. Using the BufferedWriter class however, you could barely notice any memory usage as you would expect.
The good thing about using the BufferedWriter class is that it uses very little memory. It is a fair statement that if you're generating a CSV file, then you should use Java. It is a much more scalable solution. I have moved some code to its own line for the sake of readibility.
Or email it to me directly mnimer macromedia. Specifically, it looks to me like it doesn't concatenate so much as it rewrites the old variable plus the new portion to the new variable. So the longer the string gets, the longer it takes to concatenate it.
This can be confirmed by using cfflush in conjuntction with writing out a ". You will see that the process slows down over time. The way I found around this is to concatenate a temp variable in each interation, and concatenate to the master variable at the end of each loop.
That is if you don't want to bother using Java. It sounds like your solution works for you. You can get this udf from cflib.Feb 14, · try deleteing an existing file with cffile> and see if that works. if it does not - then it probabbly is the accesspermissions issue. if you can delete the file with cffile action=delete> then why not delete the existing file first and then upload the new one?
i know it is not very efficient, but if it works while overwriting does not.
cffile action = "upload" Description Uploads upload a file specified in a . Parses the json object and displays the contents of its arrays using DeserializeJSON, This function is useful any time a ColdFusion page receives data as JSON strings. coldfusion example. ColdFusion Example cffile - write text to a text file or create new one; cffile - upload file; cffile - append text to a text file on the server; cffile - copy file programmatically; cffile - upload file; ColdFusion CFdbinfo - How to get column list from a table.
A pure-python library for creating and extracting cab files - hughsie/python-cabarchive. Tour Start here for a quick overview of the site Help Center Detailed answers to any questions you might have Meta Discuss the workings and policies of this site.