Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Porównywanie linijek plików tekstowych

Ostatnio zmodyfikowano 2014-06-09 15:39
Autor Wiadomość
mikson
Temat założony przez niniejszego użytkownika
Porównywanie linijek plików tekstowych
» 2014-06-07 11:57:54
Dlaczego mój kod może nie działać?
Chodzi o porównywanie co drugiej linijki pliku1 z każdą linijką pliku2. Jeśli NIE będą takie same należy je dodać do comboboxa.
C/C++
string linijka1, linijka2, pom;
cin.sync();

while( !plik1.eof() )
{
    bool zgoda = true;
   
    getline( plik1, linijka1 ); //wczytuje co drugą linijkę
    getline( plik1, pom );
   
    while( !plik2.eof() )
    {
        getline( plik2, linijka2 );
       
        if( linijka1 == linijka2 ) //wczytuje każdą linijkę i sprawdza czy jest taka sama, jeśli tak ustawia zgoda na false
        {
            zgoda = false;
        }
       
    }
   
    if( zgoda == true ) //jeśli zgoda pozostała true (nie znalazła się żadna taka sama linijka) to dodaje ją do comboboxa
    {
        _TCHAR buf[ 1000 ];
        _stprintf( buf, _T( "Znaleziono: %s" ), lnijka1.c_str() );
       
        SendMessage( hCombo, CB_ADDSTRING, 0,( LPARAM ) buf );
    }
   
}

plik1.close();
plik2.close();
Program kompiluje się bez problemu, lecz w comboboxie znajduje się każda co druga linijka pliku1, podczas gdy w pliku2 znajduje się kilka linijek takich samych.
P-111625
MrPoxipol
» 2014-06-07 12:29:47
while( !plik1.eof() )
Zło wcielone. Ile razy jeszcze.
P-111626
mikson
Temat założony przez niniejszego użytkownika
» 2014-06-07 12:31:42
Nie wiem o co chodzi.
Zawsze tak czytałem pliki i działało...
Poza tym ja wziąłem to z kursu... http://cpp0x.pl/kursy/Kurs-C++/Obsluga-plikow/305
P-111627
pekfos
» 2014-06-07 20:09:04
Nie wracasz na początek pliku 2, po przeczytaniu go.

while( !plik1.eof() )
Zło wcielone
Dlaczego? Ta linia jest zła tylko wtedy, gdy jej właściwości nie są uwzględnione dalej, jak tu. Ale to nie jest przyczyna błędu.

Ile razy jeszcze.
Każdemu z osobna ;) A poprawienie kursu mogło by ułatwić sprawę.
P-111668
mikson
Temat założony przez niniejszego użytkownika
» 2014-06-07 21:27:11
@Pekfos, czyli mam dodać po przeczytaniu pliku2
cin.sync();
? Jeśli tak, to nadal nie działa. :/
P-111672
pekfos
» 2014-06-07 21:42:53
Nie cin.sync(), tylko plik2.seekg(). Tak jakby nie trafiłeś..
P-111676
mikson
Temat założony przez niniejszego użytkownika
» 2014-06-07 21:45:54
Dodałem
plik2.seekg( 0 );
, nadal nie działa :/
P-111679
pekfos
» 2014-06-07 21:48:34
Podaj kod.
P-111682
« 1 » 2
  Strona 1 z 2 Następna strona