skipping the lines

Discussion in 'C++' started by friend.blah@googlemail.com, Jun 4, 2008.

  1. Guest

    Could anyone give a simple idea in solving this
    i have a text file which has several millions of lines consisting
    around 5 coloums
    for example
    12345
    456789101187837
    12536536657588968590680568
    36736473647
    454785678475767856756
    ......

    the length of string in each line is diffrent...

    so when i first read my file i want to take only first line....
    when i read it for the second time i want second line skipping the
    first line....and so on..

    till now what i was doing is

    int lineCounter = 1; //declared in initialize function
    int row = 1;
    bool check = true;

    ifstream filein("xxx.txt");
    while(check)
    {
    while(row < LineCounter)
    {
    filein.ignore(26,'\n'); //here what i am doing is i am
    entering the line which has maximum number of characeters .i.e., in
    the example my 3rd line has maximum number of characters i.e., 26
    row++;
    }
    getline(filein,Input);
    check = false;
    }

    but i cant check it in file which has millions of lines...

    so please tell me smart way to approach this

    thanks to all
     
    , Jun 4, 2008
    #1
    1. Advertising

  2. Jerry Coffin Guest

    In article <4fae62b0-6858-4e9e-830e-9eecf6691d4a@
    59g2000hsb.googlegroups.com>, says...
    > Could anyone give a simple idea in solving this
    > i have a text file which has several millions of lines consisting
    > around 5 coloums


    [ ... ]

    > so when i first read my file i want to take only first line....
    > when i read it for the second time i want second line skipping the
    > first line....and so on..


    Each time you read from the file, keep track of the file position after
    reading. When you read the file the next time, seek to the previously-
    stored position, then read one line and update the file position.

    --
    Later,
    Jerry.

    The universe is a figment of its own imagination.
     
    Jerry Coffin, Jun 4, 2008
    #2
    1. Advertising

  3. MiB Guest

    You should separate the file open and read operations into different
    functions, so the file can stay open between reads, e.g.:

    #include <iostream>
    #include <fstream>
    #include <string>

    class Reader {
    public:
    Reader( const std::string& fname ) : ifs( fname.c_str() )
    {}

    void DoSomething() {
    while ( GetLine() ) {
    // Do your task here, 'line' contains the current line.
    std::cout << line << std::endl;
    }
    }

    private:
    bool GetLine() { return std::getline( ifs, line ); }

    std::ifstream ifs;
    std::string line;
    };


    int main() {
    Reader reader( "xxx.txt" );
    reader.DoSomething();
    return 0;
    }

    best,

    Michael Böhnisch
     
    MiB, Jun 4, 2008
    #3
  4. xyz Guest

    On Jun 4, 10:02 pm, MiB <> wrote:
    > You should separate the file open and read operations into different
    > functions, so the file can stay open between reads, e.g.:
    >
    > #include <iostream>
    > #include <fstream>
    > #include <string>
    >
    > class Reader {
    > public:
    >         Reader( const std::string& fname ) : ifs( fname.c_str() )
    >         {}
    >
    >         void DoSomething() {
    >                 while ( GetLine() ) {
    >                         // Do your task here, 'line' contains the currentline.
    >                         std::cout <<line<< std::endl;
    >                 }
    >         }
    >
    > private:
    >         bool GetLine() { return std::getline( ifs,line); }
    >
    >         std::ifstream ifs;
    >         std::stringline;
    >
    > };
    >
    > int main() {
    >         Reader reader( "xxx.txt" );
    >         reader.DoSomething();
    >         return 0;
    >
    > }
    >
    > best,
    >
    >    Michael Böhnisch


    you could do this thing
    keep track of filepointer after u read the line
    int length = 0 //declaare it in intialize

    filein.seekg(length,ios::cur);
    getline(filein,Input);
    length = filein.tellg();

    u regularly update the fileposition such that u jump directly to that
    line ...u want
     
    xyz, Jun 9, 2008
    #4
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Jack
    Replies:
    9
    Views:
    2,707
  2. Joe Wright
    Replies:
    0
    Views:
    539
    Joe Wright
    Jul 27, 2003
  3. python skipping lines?

    , Nov 27, 2006, in forum: Python
    Replies:
    6
    Views:
    577
  4. Gustaf
    Replies:
    7
    Views:
    358
    Gustaf
    Nov 1, 2007
  5. Replies:
    27
    Views:
    430
    Peter J. Holzer
    May 18, 2007
Loading...

Share This Page