Solved

Reading Text files

Posted on 2008-06-19
3
1,833 Views
Last Modified: 2008-06-19
Im writing a program which reads information from numerous text files and currently I am reading all the information from the text file into an array of structs then manupilating my data from there.

I am programming an option that will allow the user to see a machine history over several months due to this I need to open and read alot of text files.  As there is alot of information I dont think the way im doing it is the best solution.

SUB-BATCH,C1.0 M2.1,16-01-08,001020005013,A: ,B: 1,C:2,D: ,ID:12,0,0,0,0,0,0,5000,0,CT:,5000,0,0,0,0,RT:,0,GT:,5000,

Shown above is an example of a record stored in my text file.  Normally I would search each file based on b and c number that the user enters.  In the example above not only would I be searching for b and c number but also for type = SUB-BATCH.  All my fields are seperated by a comma and at the end of each record is a newline character.  

What I would like to know is there anyway I can go through a text file searching for the b and c number (and type in this case) find a match and only extract that record from the file without having to read the whole file.  

Few more points - some of my text files have numerous records with the same b and c number others have only one record per machine but based on the text file I always know what position in the text file that the b and c number will occur.

Any help greatly appreciated
0
Comment
Question by:lisa_mc
3 Comments
 
LVL 53

Accepted Solution

by:
Infinity08 earned 300 total points
ID: 21820494
>> without having to read the whole file.  

No.

But you could speed things up a bit by only processing those lines that start with SUB-BATCH. Ie., read in the file one line at a time, and for each line, check whether it starts with "SUB-BATCH". If so, process the line (and check the b and c values). If not, just skip the line, and go on to the next.
0
 
LVL 17

Assisted Solution

by:rstaveley
rstaveley earned 200 total points
ID: 21820993
If the lines are variable length and fields are at variable offsets, you will need to read them line by line.

It sounds to me like you'd do well to load these records into a relational database, with appropriate indexing for your queries.
0
 
LVL 3

Author Comment

by:lisa_mc
ID: 21821206
Thanks guys for both your answers now I know whats possible

Cheers
0

Featured Post

Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

When writing generic code, using template meta-programming techniques, it is sometimes useful to know if a type is convertible to another type. A good example of when this might be is if you are writing diagnostic instrumentation for code to generat…
Written by John Humphreys C++ Threading and the POSIX Library This article will cover the basic information that you need to know in order to make use of the POSIX threading library available for C and C++ on UNIX and most Linux systems.   [s…
The viewer will learn how to clear a vector as well as how to detect empty vectors in C++.
The viewer will be introduced to the member functions push_back and pop_back of the vector class. The video will teach the difference between the two as well as how to use each one along with its functionality.

756 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question