Re: Problem with large .txt file [message #55038] |
Tue, 31 July 2007 10:15  |
Vince Hradil
Messages: 574 Registered: December 1999
|
Senior Member |
|
|
On Jul 31, 11:27 am, "Haje Korth" <haje.ko...@nospam.jhuapl.edu>
wrote:
> set i ti i=0l (make it a long)
>
> H.
>
> <aleks.fra...@gmail.com> wrote in message
>
> news:1185897834.196562.301440@57g2000hsv.googlegroups.com...
>
>> Hy there!
>> I have a large txt file (6.384KB) with 65000 lines. It's very large.
>> I need to open it, read every line, replace the spaces for commas, and
>> write the result in an output.txt
>
>> The code is ok. The problem is that idl crashes on line 7208. There's
>> a memory problem there.
>
>> Is there any way to do for all the lines of the txt file?? I don't
>> know how to deal with memory problems. Sorry!
>
>> I'm doing like this
>
>> :-----------------CUT HERE--------------------
>> i=0
>> line=''
>> ; Open the text file:
>> OPENR, inunit, '60mil_equal.txt', /GET_LUN
>> ; Open the terminal as a file:
>> OPENW, outunit, 'output.txt', /GET_LUN
>> ;================================
>> WHILE ~EOF(inunit) DO BEGIN
>> READF, inunit, line
>> line = STRJOIN(STRSPLIT(line, /EXTRACT), ', ')
>> PRINTF, outunit, line
>> i =i+1
>> ENDWHILE
>
>> FREE_LUN, inunit
>> FREE_LUN, outunit
>
>> END
>> :-----------------CUT HERE--------------------
>
>> Thank you very much
Or just use sed... Right tool for the right job.
|
|
|
Re: Problem with large .txt file [message #55042 is a reply to message #55038] |
Tue, 31 July 2007 09:27   |
Haje Korth
Messages: 651 Registered: May 1997
|
Senior Member |
|
|
set i ti i=0l (make it a long)
H.
<aleks.franca@gmail.com> wrote in message
news:1185897834.196562.301440@57g2000hsv.googlegroups.com...
> Hy there!
> I have a large txt file (6.384KB) with 65000 lines. It's very large.
> I need to open it, read every line, replace the spaces for commas, and
> write the result in an output.txt
>
> The code is ok. The problem is that idl crashes on line 7208. There's
> a memory problem there.
>
> Is there any way to do for all the lines of the txt file?? I don't
> know how to deal with memory problems. Sorry!
>
> I'm doing like this
>
> :-----------------CUT HERE--------------------
> i=0
> line=''
> ; Open the text file:
> OPENR, inunit, '60mil_equal.txt', /GET_LUN
> ; Open the terminal as a file:
> OPENW, outunit, 'output.txt', /GET_LUN
> ;================================
> WHILE ~EOF(inunit) DO BEGIN
> READF, inunit, line
> line = STRJOIN(STRSPLIT(line, /EXTRACT), ', ')
> PRINTF, outunit, line
> i =i+1
> ENDWHILE
>
> FREE_LUN, inunit
> FREE_LUN, outunit
>
> END
> :-----------------CUT HERE--------------------
>
> Thank you very much
>
|
|
|
Re: Problem with large .txt file [message #55137 is a reply to message #55038] |
Tue, 31 July 2007 10:36  |
Conor
Messages: 138 Registered: February 2007
|
Senior Member |
|
|
On Jul 31, 1:15 pm, hradilv <hrad...@yahoo.com> wrote:
> On Jul 31, 11:27 am, "Haje Korth" <haje.ko...@nospam.jhuapl.edu>
> wrote:
>
>
>
>> set i ti i=0l (make it a long)
>
>> H.
>
>> <aleks.fra...@gmail.com> wrote in message
>
>> news:1185897834.196562.301440@57g2000hsv.googlegroups.com...
>
>>> Hy there!
>>> I have a large txt file (6.384KB) with 65000 lines. It's very large.
>>> I need to open it, read every line, replace the spaces for commas, and
>>> write the result in an output.txt
>
>>> The code is ok. The problem is that idl crashes on line 7208. There's
>>> a memory problem there.
>
>>> Is there any way to do for all the lines of the txt file?? I don't
>>> know how to deal with memory problems. Sorry!
>
>>> I'm doing like this
>
>>> :-----------------CUT HERE--------------------
>>> i=0
>>> line=''
>>> ; Open the text file:
>>> OPENR, inunit, '60mil_equal.txt', /GET_LUN
>>> ; Open the terminal as a file:
>>> OPENW, outunit, 'output.txt', /GET_LUN
>>> ;================================
>>> WHILE ~EOF(inunit) DO BEGIN
>>> READF, inunit, line
>>> line = STRJOIN(STRSPLIT(line, /EXTRACT), ', ')
>>> PRINTF, outunit, line
>>> i =i+1
>>> ENDWHILE
>
>>> FREE_LUN, inunit
>>> FREE_LUN, outunit
>
>>> END
>>> :-----------------CUT HERE--------------------
>
>>> Thank you very much
>
> Or just use sed... Right tool for the right job.
I was going to say use perl, but I suppose that's a bit simpler.
sed 's/ /,/g' < 60mil_equal.txt > output.txt
viola! Simple and elegant.
Of course, considering that your files have a .txt extension, it seems
likely that you are on a windows machine, and therefore have no access
to sed. In that case, I would recommend learning perl, which can
easily be installed on windows. A better option would be to just use
linux or mac :)
|
|
|