Connecting Tech Pros Worldwide Help | Site Map

C++ Class to do File Text Based Operations

anand
Guest
 
Posts: n/a
#1: Jul 23 '05
Hi,

I am looking for a possible C++ File class that allows to do standard
"Perl Like" operations on structured data files in ASCII text.

For example:

1) Get the first and third fields from each line into a string obj
2) Get ALL "words" in a "line" of the file

etc...

Basically, anything you would be able to do from a Perl script, but
thru C++. I am looking to use it in my program and I know there are
better programmers than me out there, so I thought I will check first!

THanks in advance!
Anand


[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]

Ivan Vecerina
Guest
 
Posts: n/a
#2: Jul 23 '05

re: C++ Class to do File Text Based Operations


"anand" <writeanand@gmail.com> wrote in message
news:1117219856.432064.291670@f14g2000cwb.googlegr oups.com...[color=blue]
> I am looking for a possible C++ File class that allows to do standard
> "Perl Like" operations on structured data files in ASCII text.
>
> For example:
>
> 1) Get the first and third fields from each line into a string obj
> 2) Get ALL "words" in a "line" of the file
>
> etc...
>
> Basically, anything you would be able to do from a Perl script, but
> thru C++. I am looking to use it in my program and I know there are
> better programmers than me out there, so I thought I will check first![/color]

The two operations above can be written with a standard C++ istream.
But you may want to consider using a regular expressions library
for C++. Such as boost::regex http://www.boost.org/libs/regex/doc/.


Ivan

NB: it is often redundant to post to both clc++ and clc++.moderated.
If you're concerned by off-topic replies/threads, use the moderated group.
If you want a quicker answer, clc++ is usually best.
But posting to both NGs usually will delay the appearance of your
post and reply on clc++ as well.

--
http://ivan.vecerina.com/contact/?subject=NG_POST <- email contact form
Brainbench MVP for C++ <> http://www.brainbench.com


Julián Albo
Guest
 
Posts: n/a
#3: Jul 23 '05

re: C++ Class to do File Text Based Operations


anand wrote:
[color=blue]
> Basically, anything you would be able to do from a Perl script, but
> thru C++.[/color]

That will be very difficult. You need to implement a C++ version of all
modules in CPAN, at least.

If you want to use all Perl machinery, the easiest way will be to embed perl
in your program.

--
Salu2


[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]

Jeff Flinn
Guest
 
Posts: n/a
#4: Jul 23 '05

re: C++ Class to do File Text Based Operations



"anand" <writeanand@gmail.com> wrote in message
news:1117219856.432064.291670@f14g2000cwb.googlegr oups.com...[color=blue]
> Hi,
>
> I am looking for a possible C++ File class that allows to do standard
> "Perl Like" operations on structured data files in ASCII text.
>
> For example:
>
> 1) Get the first and third fields from each line into a string obj
> 2) Get ALL "words" in a "line" of the file
>
> etc...
>
> Basically, anything you would be able to do from a Perl script, but
> thru C++. I am looking to use it in my program and I know there are
> better programmers than me out there, so I thought I will check first![/color]

Check out:

http://www.boost.org/libs/regex/doc/index.html

http://www.boost.org/libs/spirit/index.html

http://www.boost.org/doc/html/string_algo.html

http://www.boost.org/libs/filesystem/doc/index.htm

I'm totally unfamiliar with Perl, but the above libraries offer powerful C++
text and filesystem processing.

Jeff Flinn



[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]

Billy Patton
Guest
 
Posts: n/a
#5: Jul 23 '05

re: C++ Class to do File Text Based Operations


On Sat, 28 May 2005, anand wrote:
[color=blue]
> Hi,
>
> I am looking for a possible C++ File class that allows to do standard
> "Perl Like" operations on structured data files in ASCII text.
>
> For example:
>
> 1) Get the first and third fields from each line into a string obj
> 2) Get ALL "words" in a "line" of the file
>
> etc...
>
> Basically, anything you would be able to do from a Perl script, but
> thru C++. I am looking to use it in my program and I know there are
> better programmers than me out there, so I thought I will check first!
>
> THanks in advance!
> Anand[/color]

Couple of functions I wrote do do just what you ask. Excep no regular
expressions. THere is a split and a sub. You could extend these to use pcre
lib and get the location of a regular expression. I just haven't carried it
that far YET :)

#include <string>
#include <sstream>
#include <locale>

bool StrSplit(const string in,char delim,vector<string>& out)
{
if (in.empty()) return false;
istringstream iss(in);
string token;
out.clear();
while(getline(iss, token, delim))
out.push_back(token);
return true;
}

bool StrSub(string& cp,string sub_this,string for_this,int num_times)
{
int i,loc;
if (cp.empty())
{
cp = sub_this;
return true;
}
if (for_this.empty()) return false;
for (i = 0; i NE num_times; i++)
{
loc = cp.find(for_this,0);
if (loc GE 0) cp.replace(loc,for_this.length(),sub_this);
else return true;
}
return true;
}

___ _ ____ ___ __ __
/ _ )(_) / /_ __ / _ \___ _/ /_/ /____ ___
/ _ / / / / // / / ___/ _ `/ __/ __/ _ \/ _ \
/____/_/_/_/\_, / /_/ \_,_/\__/\__/\___/_//_/
/___/
Texas Instruments ASIC Circuit Design Methodology Group
Dallas, Texas, 214-480-4455, b-patton@ti.com

[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]

Closed Thread