Eng-Tips is the largest engineering community on the Internet

Intelligent Work Forums for Engineering Professionals

FORTRAN Program for searching files

Status
Not open for further replies.

Qshake

Structural
Jul 12, 2000
2,672
0
0
US
Can any one help with some examples of programs coded to open text files, search them for some criteria, extract that data and dump into another text file?

Thanks!

Regards,
Qshake
[pipe]
Eng-Tips Forums:Real Solutions for Real Problems Really Quick.
 
Replies continue below

Recommended for you

Why Fortran?

There's an old general-purpose file parser program called FileParse written by Dead Pig Software. They apparently ceased operation in 2000, but their program is still floating around in cyberspace. It's a bit touchy, but will parse large text files.

TTFN

FAQ731-376
 
IRstuff - Fortran is what we have, though I suppose we have C++ and others along with it, Fortran is what I vaguely remember most of.

Admittedly I'm past my years of experience with this, hence my reason for posting, but I'd like to learn and if that means new language that's fine, just give me a tip and I'll track it down.

Regards,
Qshake
[pipe]
Eng-Tips Forums:Real Solutions for Real Problems Really Quick.
 
Q,

I was just trying to point out that writing your own parser seems hardly necessary if someone already has one written.

TTFN

FAQ731-376
 
Here's a simple example program. It opens an input file. Reads each line of the file. Searches each line for the string, "Member Area". If it finds it, it assumes a real number is on the line after "Member Area" (nothing else on the line after that). It reads the Area value and writes it to another output file. This is very simple, but... I think it shows the basic technique. Once you read each line of your input file into a character string, you can play with the data in that string all you want. Note, I just typed this in on the fly. I've not tried to compile it to check for any minor typo's or other errors on my part.

Dan :)


CHARACTER(132) :: inFname = 'MyInputFile'
CHARACTER(132) :: outFname = 'MyOutputFile'
CHARACTER(132) :: str ! character buffer
INTEGER :: i, n
OPEN(12,file=inFname)
OPEN(13,file=outFname)
n = 0
DO
Read(1,'(a)',end=10) str
i = Index(str,'Member Area')
IF( i/=0 )THEN
n = n + 1
Read(str(i+11:),'(f100.0)') area
Write(13,'(a,i5,f12.4)') 'Member #', n, area
END IF
END DO
10 Continue
CLOSE(12)
CLOSE(13)
END
 
Status
Not open for further replies.
Back
Top