It's all but identical to what Jim said, except I forgot to add newlines to
my string, and I have the commented array usage in there.

---
Barney Boisvert, Senior Development Engineer
AudienceCentral
[EMAIL PROTECTED]
voice : 360.756.8080 x12
fax   : 360.647.5351

www.audiencecentral.com


> -----Original Message-----
> From: James Blaha [mailto:[EMAIL PROTECTED]
> Sent: Tuesday, July 01, 2003 10:44 AM
> To: CF-Talk
> Subject: Re: best practice for building a large text file?
>
>
> Barney,
>
> Thank you so much for your reply. I need to digest this one.
>
> Have a great weekend!
>
> Regards,
> JB
>
>
> Barney Boisvert wrote:
>
> >When I'm building files, I usually use build up a string/array
> (depending on
> >the situation) in memory, and then flush it to the file periodically,
> >because string concatenation gets expensive as the string gets
> large.  This
> >example (a horribly contrived one) uses the string concatenation
> method, and
> >has code to use the array append method commented out for illustrative
> >purposes.  I didn't test, so it may not be perfect, but it
> should be close.
> >
> ><cfset filename = expandPath('./data_file.txt') /> <!--- data file --->
> ><cfset s = "" /> <!--- temp variable --->
> ><!---
> ><cfset a = arrayNew(1) />
> >--->
> ><cfset flush_frequency = 50 /> <!--- how often to flush to file --->
> ><cfloop query="get">
> >   <cfset s = s & "name: #name#, dob: #dateOfBirth#" />
> >   <!---
> >   <cfset arrayAppend(a, "name: #name#, dob: #dateOfBirth#") />
> >   --->
> >   <cfif month(dateOfBirth) EQ month(now()) and day(dateOfBirth) EQ
> >day(now())>
> >      <cfset s = s & " happy birthday!" />
> >      <!---
> >      <cfset a[arrayLen(a)] = a[arrayLen(a)] & " happy birthday" />
> >      --->
> >   </cfif>
> >   <cfif currentrow MOD flush_frequency EQ 0>
> >      <cffile action="append"
> >         file="#filename#"
> >         output="#s#" />
> >      <cfset s = "" />
> >      <!---
> >      <cffile action="append"
> >         file="#filename#"
> >         output="#arrayToList(a, chr(10))##chr(10)#" />
> >      <cfset a = arrayNew(1) />
> >      --->
> >   </cfif>
> ></cfloop>
> ><cffile action="append"
> >   file="#filename#"
> >   output="#s#" />
> ><!---
> ><cffile action="append"
> >   file="#filename#"
> >   output="#arrayToList(a, chr(10))#" />
> >--->
> >
> >I haven't done any formal performance testing, but it's not noticably
> >differe for small data sets, and noticably faster for large data
> sets.  Just
> >don't forget that <cfset s = "" /> after the flush, or you'll kick your
> >server's ass, trust me.  ; )
> >
> >HTH,
> >barneyb
> >
> >
> >---
> >Barney Boisvert, Senior Development Engineer
> >AudienceCentral
> >[EMAIL PROTECTED]
> >voice : 360.756.8080 x12
> >fax   : 360.647.5351
> >
> >www.audiencecentral.com
> >
> >
> >
> >
> >>-----Original Message-----
> >>From: James Blaha [mailto:[EMAIL PROTECTED]
> >>Sent: Tuesday, July 01, 2003 10:05 AM
> >>To: CF-Talk
> >>Subject: best practice for building a large text file?
> >>
> >>
> >>All:
> >>
> >>What's the best practice for building a large text file? Is it better to
> >>use CFFILE and APPLEND or use an array then once you have the
> >>information use arraytolist and then use CFFILE to create the text file?
> >>
> >>I have a 30 meg text file that I'm building line by line.
> >>
> >>Regards,
> >>James Blaha
> >>
> >>
> >>
> >>
> >>
> >
> 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Archives: http://www.houseoffusion.com/cf_lists/index.cfm?forumid=4
Subscription: 
http://www.houseoffusion.com/cf_lists/index.cfm?method=subscribe&forumid=4
FAQ: http://www.thenetprofits.co.uk/coldfusion/faq

Host with the leader in ColdFusion hosting. 
Voted #1 ColdFusion host by CF Developers. 
Offering shared and dedicated hosting options. 
www.cfxhosting.com/default.cfm?redirect=10481

                                Unsubscribe: 
http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4
                                

Reply via email to