PHWinfo banniere

Titres
PORTAIL ANNUAIRE ARTICLES COMPARATEUR HÉBERGEURS DEVIS FORUMS RÉDUCTEUR D'URL
Précédent   PHWinfo > Autres forums > Forum Programmation & Conception > comp.lang.cplus > skipping the lines
S'inscrire FAQ Membres Recherche Messages du jour Marquer les forums comme lus
skipping the lines

Réponse
 
LinkBack Outils de la discussion
Vieux 04/06/2008, 14h23   #1
friend.blah@googlemail.com
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut skipping the lines

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

  Réponse avec citation
Vieux 04/06/2008, 14h30   #2
Jerry Coffin
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: skipping the lines

In article <4fae62b0-6858-4e9e-830e-9eecf6691d4a@
59g2000hsb.googlegroups.com>, friend.blah@googlemail.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.
  Réponse avec citation
Vieux 04/06/2008, 21h02   #3
MiB
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: skipping the lines

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
  Réponse avec citation
Vieux 09/06/2008, 14h15   #4
xyz
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: skipping the lines

On Jun 4, 10:02pm, MiB <Michael.Boehni...@gmail.com> 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
  Réponse avec citation
Réponse


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui


Fuseau horaire GMT +1. Il est actuellement 06h36.


Édité par : vBulletin® version 3.7.3
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0 RC5 Tous droits réservés.
Version française #16 par l'association vBulletin francophone
PHWinfo est un site Éducation Sans Frontières ©2000-2008
Ad Management by RedTyger
©Tous droits réservés par les parties respectives
Page generated in 0,13042 seconds with 12 queries