Solved

Reading Text files

Posted on 2008-06-19
3
1,832 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

Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

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

Unlike C#, C++ doesn't have native support for sealing classes (so they cannot be sub-classed). At the cost of a virtual base class pointer it is possible to implement a pseudo sealing mechanism The trick is to virtually inherit from a base class…
  Included as part of the C++ Standard Template Library (STL) is a collection of generic containers. Each of these containers serves a different purpose and has different pros and cons. It is often difficult to decide which container to use and …
The goal of the tutorial is to teach the user how to use functions in C++. The video will cover how to define functions, how to call functions and how to create functions prototypes. Microsoft Visual C++ 2010 Express will be used as a text editor an…
The viewer will learn how to pass data into a function in C++. This is one step further in using functions. Instead of only printing text onto the console, the function will be able to perform calculations with argumentents given by the user.

827 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