-
October 7th, 2012, 12:22 AM
#1
string stream usage
I am working on a project were I have to read line form ( PLC ) programmable logic controller generated text file with lines like this
Circuit Value Current 2.33 4.32 5.55
there could be up to 3000 lines per txt file
I am using string stream to parse the line , for the sake of good programming I which to check weather first three values are string and last three values are actually floats
raise or throw an exception if they are not , any help in this regard would be much appreciated .
-
October 7th, 2012, 01:47 AM
#2
Re: string stream usage
So... what's stopping you from performing the checks?
-
October 8th, 2012, 11:12 AM
#3
Re: string stream usage
You may want to have a look at the <regex> classes in the standard library, those would be the ideal candadates to do the kind of pattern matching that you seek
-
October 12th, 2012, 01:13 AM
#4
Re: string stream usage
it is not pattern matching , more data validation , thank you for your post , I actually did this with boost::lexical_cast , throws an exception if the required value is neither float or a string.
depends on how you set it up.
-
October 12th, 2012, 03:03 AM
#5
Re: string stream usage
Originally Posted by aamir121a
it is not pattern matching , more data validation
Often input data validation involves some kind of pattern matching, so OReubens' suggestion is still relevant, though it may or may not be ideal for your case.
Originally Posted by aamir121a
I actually did this with boost::lexical_cast , throws an exception if the required value is neither float or a string.
Internally, boost::lexical_cast uses stringstreams. The basic idea here is to just parse with the stringstream, then check the state of the stringstream. If it is in a good state, or if you have reached the end and it is in EOF but not fail state, then the input can be considered valid.
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|