C/C++ :: How To Parse Contents Of File To Remove Comments

Mar 12, 2015

I am working on a program where I am reading in a text file to be parsed to load data objects into their appropriate classes. I have a class to load in this file and to parse its contents. I am at the point where I would like to include the ability to have both C and C++ style comments in this text file. My current class has a constructor that takes in const std::string for its file name. Upon construction I have a while loop that calls a member function getNextLine() as long as this is true this loader class object then calls parseGui(). All of this works correctly so far. Within the function getNextLine() looks like this:

// ----------------------------------------------------------------------------
// getNextLine()
// Returns True If It Got A Line Of Text (Could Be Blank If It Is All Commented Out Or
// If It Truly Was A Blank Line). False Is Returned When There Is No More Data In The File
bool GuiLoader::getNextLine() {
if ( !_file.readLine( _strLine ) ) {
return false;

[Code] ....

As you can see this getNextLine() method reads in a single line of text and saves it into its member variable which is a std::string. It increments the line number, then a utility function trims out leading and ending white spaces. The next part is where this class calls a member function to remove comments. It is in here where I need to parse the string to look for comments either "//" C++ style line comments or "/* ... */" C style block comments that can span multiple lines. I have tried many different ways to go about doing this, and I am stuck on the C style comments. A note to consider is this: the way this code is designed is reading in a line of text from the file into a string variable and in doing so it is not logical for me to read in the complete file and do a pre-parse scan or analyzer.

This is what I have so far, however there are still cases that this code will fail on

// ----------------------------------------------------------------------------
// removeComments()
void GuiLoader::removeComments() {
const unsigned tokenLength = 1;
static std::string::size_type indexA;
static std::string::size_type indexB;
const std::string commentStartingToken( "/" );
const std::string blockCommentStartingQualifier( "*" );

[Code] .....

An example of where this code will fail is when it encounters a single '/' any where on a line of text as it goes into an infinite loop. I am not sure on how to go about skipping this lonely '/' and advanced the index to look for a possible next '/' that belongs to a '//' or a '/*'. I know that this is sort of trivial, but for some reason or another I am having writers block.

View 14 Replies


ADVERTISEMENT

C++ :: Remove Comments From Input File And Then Put It Into Output File

Mar 11, 2013

I have written this code to remove the comments from an input file and then put it into an output file. The program compiles and runs but it removes the whole line of code when it encounters a /* */ type comment. I believe the problem is in the while loop but I just don't know where.

#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main(void) {
string infile, outfile;
ifstream source;
ofstream target;

[Code]...

View 3 Replies View Related

C :: Read Enormous Binary Files (10-100GB) And Parse Their Contents Bit At A Time

Dec 5, 2013

I am trying to read enormous binary files (10-100GB) and parse their contents a bit at a time. As part of the process I need to get the size of the file in bytes. The simple solution

Code: fseek(file,0,SEEK_END);
size=ftell(file);

fails because the file size overflows the long int type returned by ftell. I need a long long int.

Is there a reasonably efficient way to do this? The good news is that it only needs to be done once. I suppose I could read it one character at a time until I hit the end and keep count, but that just seems inelegant...

View 12 Replies View Related

C++ :: Extract Comments From C File

May 21, 2014

I need to extract comments from a C file, which are usually marked with " /* This is a comment */ ". It seems to me that I need to calculate first at what position is the / and then ask it if on the very next position to the / operand is the *, if it is then I need check where is the next * and if / operand is immediately next to it. At last I need to take everything between values that the first and second * have. But I don't know how to write that in code.

This was supposed to be done in c++.

View 5 Replies View Related

C++ :: How To Take Comments From C File And Store It In Text File

May 16, 2013

C++ code that will take the existing comments from a arbitrary C file, and store those files in a text document?

View 4 Replies View Related

C++ :: How To Parse EML File

Aug 28, 2014

I am doing a project processing emails in EML format. I searched for a library doing eml file parsing and got no hits. I really dont want to code the parser myself. I just want to get the project done with minimize cost. Which library should I use?

View 4 Replies View Related

C++ :: Parse Value From Text File?

May 16, 2014

Suppose i have a text file with ":" as delimiter, how to i find the average value of each column? For e.g. First column will be (3+2+5)/3 and second column will be (61+87)/2 for the third column.

Sample text file
================
3:290:61:100:
2:50:
5:346:87:

I have tried using getline in while loop, but it seemed more complicated because i think it requires much more than that.

View 2 Replies View Related

C++ :: Parse A Text File That Contains Information

Jul 31, 2014

I am trying to parse a text file that contains information and i cant seem to get started. For example, the text file looks like this:

idx=929392, pl= 12, name= someperson
age=19
state=ma
status=n/a

idx=929393, pl= 12, name= someperson2
age=20
state=ma
status=n/a

idx=929394, pl= 12, name= someperson3
age=21
state=ma
status=n/a

I want to parse the name and age into another text file like this format:

someperson 19
someperson 20
someperson 21

possibly include other attributes next to the age like idx?

View 3 Replies View Related

C++ :: Parse And Edit A Text File?

Nov 14, 2014

I have this project for school where I basically need to write a program that will take any text file and convert it into html code.

string line;
int lineCount = 0;
while (!inFile.eof()) {
getline(inFile, line);
cout << line << endl;
lineCount++;
}
cout << lineCount - 1 << " lines of text read in this file." << endl;

I have this block of code to print each line of the text file into the terminal window and count the number of lines printed. But I don't know how to make it change a single character or set of characters to something else. For example, if a line of text begins with the number "1", I want to be able to change it to "<h1>".

View 2 Replies View Related

C++ :: Using Getline To Parse From A Text File?

Nov 23, 2014

I'm trying to make a program where it reads a text file which contains "blocks" of questions like:

Type: multiple_choice
Question
Num_options: number of options
a) option1
b) option2
c) option3
d) option4
Letter of answer

and

Type: short_answer
Question
Answer text

what I'm trying to do is use parse those blocks and have it get handled by the classes, MultipleChoice and ShortAnswer.

I'm planning on using getline as a virtual function and have an if statement like
"if (string == "multiple choice)
** then get it handled by the MultipleChoice class "

View 10 Replies View Related

C/C++ :: Parse Telephone Data File?

Oct 18, 2014

Write a program that reads the telephone.dat file and displays its contents on the console. The program should allow the user to add new entries to the file.

I have saved the file into a resource file within visual studio and I am trying to run the code to where the file will be shown when I run the program. I know that the program is running and the file is there because if i misspell the filename it will give me the error message. I don't know how to make the contents of the file display.

#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main() {
string input;
fstream dataFile;

[code]...

View 14 Replies View Related

C/C++ :: How To Parse CSV Formatted Text File

Aug 9, 2012

my data are
#saben~123~tvm~999999~local~#
#ach~123~tvm~999999~body~#
#sam~123~tvm~999999~wash~#
#sus~123~tvm~999999~area~#
#sach~123~tvm~999999~local~#

View 3 Replies View Related

C++ :: How To Parse XML File With Standard Library

Mar 11, 2015

How can I parse an .xml file with just C++ Standard Library?

View 14 Replies View Related

C++ :: Parse A String Containing Number And Characters From File

Feb 20, 2015

I have a text file which contains many sentences. I am trying to extract only the numerical values from the string that conatins characters,numbers and white spaces from the file. I want to seperate the characters and numbers into different parts.

for example: the file contains sentances as given below.

I have to go to school for 10min.
You will come here in 15min.
He stayed here for 20min.

from the above sentances, I want to seperate " I have to go to school for " and "10" and put them into two different variables and also 10 should be in integer format.

View 1 Replies View Related

C# :: Using Split Method To Parse Line In CSV File

Jun 6, 2014

I'm using the Split method to parse line in a csv file. The following code works if there are no commas in the text of my data.

string csvLine;
string[] splitLine;
csvLine = "Jim Borland,1234,Never dreams in code";
splitLine = csvLine.Split(',');

But if I have commas in the some of the text as below I get then wrong output. So I need split on a commas which are not enclosed in double quotes.

string csvLine;
string[] splitLine;
csvLine = ""Jim,C,Borland",1234,"Never dreams in code"";
splitLine = csvLine.Split(',');

The output I want is:

Jim,C,Borland
1234
Never dreams in code

I found this :

If your strings are all well-formed it is possible with the following regular expression:

String[] res = str.split(",(?=([^"]|"[^"]*")*$)");

The expression ensures that a split occurs only at commas which are followed by an even (or zero) number of quotes ... and thus not inside such quotes).

Nevertheless, it may be easier to use a simple non-regex parser.

But the .split gives me an error and .Split doesn't work either.

View 5 Replies View Related

C++ :: Parse TXT File - How To Get X And Y Coordinates Of Each Control Points From 2 Images

Jan 30, 2013

I have a text file with the following format

//MAIN OBJECT
Object = ControlNetwork
Created = 2013-01-28T12:26:17

//FIRST CONTROL POINT OBJECT
Object = ControlPoint
PointId = 1

[Code] ....

I want to get the X and Y coordinates of the each control points from 2 images.

For example, from the above file i want to retrieve such information:

-PointID=1 and point coordinates are 802,725(from image1) and 480,708 (from image2)

-PointID=2 and point coordinates are 317,130(from image1) and 128,116 (from image2)

There can be millions of points in such a text file. So what is the best way to parse these files?

View 1 Replies View Related

C :: Find Parse Error On Line 24 Reading From A File Using Structures

Mar 6, 2015

im trying to read employee information from a file using structures but im having problems with getting the file to open and read in the information

Code:

Write a programt that inputs (at most 50) records from a sequential file
#include <stdio.h>
#include <stdlib.h>
struct employee // employee structure definition
}

[code]....

View 13 Replies View Related

C :: Using Strtok In Conjunction With Fgets Function To Parse File Data

Feb 17, 2013

In the assignment we are forbidden to use fscanf(). I have been trying to get this to work, but I've started to realize that I do not have a complete understanding of what strtok() actually does. I'm getting this warning when debugging: "assignment makes integer from pointer without cast."

This warning happens when assigning str to goal and assist, and I think it is because they are, when dereferenced, integers. The code below correctly assigns the name into the correct spot, but leaves nonsense data in the goal and assist arrays.

ex:-7880, -7888 file example: NAME GOALS ASSISTS JOHN 1 2

Code:
void readLinesFromFile( FILE* Ptr, int* goal, int* assist, char** name, int lines ){/*
* Reads lines from files and populates the arrays with the corresponding info.
*/
int index;
char hold[ MAX_LINE ] = { 0 };
char* str = NULL;

[Code] .....

From what I understand about strtok(), it returns a string, and takes in a character array and a key value that tells it when to stop. In the online examples I've seen, they use NULL in the first field. I'm not sure why.

View 5 Replies View Related

C :: Printing Contents Of A File - Prints One Extra Character Not Present In The File

Feb 12, 2013

I'm writing a program that stores records into a file and then these records can be printed out. A last name, first name, and score is stored to be exactly 36 characters long (using leading spaces to pad) making it easier to retrieve specific records. For example, three records stored in the file would like like this: (the underscores are simply to illustrate the distance, they are not in the file itself)

_______lastname_______firstname__90__________lname __________fname_100___________last___________first __60

When printed out, the names are formatted as follows:

lastname, firstname: 90
lname, fname: 100
last, first: 60

However, when I print them out this is what I get:

lastname, firstname: 90
lname, fname: 100$
last, first: 60H

For some reason, for any record after the first, an extra character is added to the end. These characters are not in the file, so I was thinking that the array for some reason wasn't being filled completely, (the array is initialized to size 36 and 36 characters are read from the file using fread) so it was printing out a random character assigned to the 36th array position. Except the character never changes, (always a $ for record 2, H for record 3, l for record 4 if i remember) and I've tried reducing the array size or the number of character read and it's the string that gets altered, the random character always remains. I figure the problem must be in the print_records function (appending seems to work no problem). Anyway here is my print records and appending records code.

Code: /*
- Prints a single record stored in the file pointed to by ifp.
*/
void print_record(FILE *ifp, int record) {

[Code]......

View 6 Replies View Related

C :: How To Read Data In A File And Print It Then Copy Contents To A File

Mar 8, 2013

Code:

#include <stdio.h>
#include <stdlib.h>
int main (int argc, char *argv[])
{
char buffer[256];
FILE * myfile;
myfile = fopen("read.txt","r");

[Code]...

I also got an error in printing wherein the data in read.txt is "Hello" newline "World" and my program prints world twice.

View 3 Replies View Related

C Sharp :: How To Remove All Format Of Video File And Flash File

Dec 11, 2012

I am creating small application using c#.net.I removed all image tag using regular expression no I want to remove all video file and flash file also in source code of webpage.

so far I have tried this ...

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;

[Code] .....

View 1 Replies View Related

C++ :: Encrypting Contents From File And Saving To Another File

Mar 17, 2013

Right now I'm working on an assignment where I need to take the data from on file encrypt it by adding 5 to each byte and then save it to a user specified location. I think I'm close to having it done but I've run into a hick up. After I get the user input for where the encrypted data should be saved the program seems to never end. This is the code I have so far

#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main()
{
ifstream input;
ofstream output;

[Code]...

View 1 Replies View Related

C :: Read File Contents From EOF

Jan 8, 2014

How can I read contents of a file from the last character? Can I use a loop?

View 10 Replies View Related

C++ :: How To Read XML File Contents In CPP

Jan 30, 2015

I need a sample program to read contents of any xml file using CPP.

View 2 Replies View Related

C++ :: Get Output From File Contents

Dec 30, 2013

#include<iostream.h>
#include<conio.h>
#include<stdlib.h>
#include<string.h>
#include<fstream.h>
#include<graphics.h>
void input();
void output ();

[Code] ....

View 1 Replies View Related

C++ :: Zero In List Contents And Multiset Contents

Apr 24, 2015

HTML Code:

So I insert values from a vector into a list and into a multiset, and I noticed zero is added to their contents! I had to do a whole lot of debugging to find out where the error was, how can i stop this thing? Code which generates such error...

infact i checked the content of vector ups to be sure that there was no zero in it, but after loading into list combi_t * head, it seems like there was a zero added and this is giving me errors when i call function master_roller...

Code:
void ins(combi_t * &testa, int &numero, int &num, int &no)
{ // if (ricerca(testa, numero) == 0)
//{
combi_t *temp = new combi_t;

temp->val0 = numero;
temp->val1 = num;
temp->val2 = no;
temp->nextPtr = 0;

[Code] ....

View 2 Replies View Related







Copyrights 2005-15 www.BigResource.com, All rights reserved