• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Builder 6 ponowny odczyt z pliku

VPS Starter Arubacloud
0 głosów
126 wizyt
pytanie zadane 4 lutego 2017 w C i C++ przez dzialkowiec Nowicjusz (220 p.)
edycja 4 lutego 2017 przez dzialkowiec

Hej,

Wykonałem w c++ klasę obsługującą logowanie.

Jest w niej funkcja sprawdzająca czy w pliku baza.txt istnieją login i hasło zwracając true gdy użytkownik został zweryfikowany.

bool logowanie::logUser(std::string n,std::string p)
{
    file.open ("baza.txt",std::ios::in);
    std::string nn,pp;
    while(true)
    {

        if(file.good())
        { 
            file >> nn >> pp;
            if (nn==n&&pp==p)
            {
                file.close();
                return true;
            }
        }
        else break;
    }
    file.close();
    return false;
}

W code blocks działało bez zarzutu - przeniosłem klasę do Buildera 6 i okazuje się, że działa, ale tylko za pierwszym strzałem.

Wywołuję ją przyciskiem:

 

void __fastcall TForm2::Button1Click(TObject *Sender)
{
       if(user.logUser(EditLogin->Text.c_str(),EditHaslo->Text.c_str()))
       {
       Label1->Caption="OK";
       Form2->Close();
       }
}

Gdy za pierwszym razem podam niewłaściwe dane funkcja zwróci false, po korekcie i ponownym wywołaniu nawet przy poprawnych stringach nie chce zwrócić true.

Nie wiem w czym problem, czy może to dotyczyć otwierania/zamykania pliku, czy może ponownego pobierania i przekazywania łańcuchów do funkcji.

 

komentarz 4 lutego 2017 przez dzialkowiec Nowicjusz (220 p.)
uff udało się!

Po pierwszym przelocie została ustawiona flaga błędu na obiekcie "plik".

Dlatego nawet przy ponownym poprawnym otwarciu funkcja plik.good() zwracała błąd.

Wystarczyło wyczyścić błędy funkcją plik.clear();
komentarz 5 lutego 2017 przez koczurekk Gaduła (3,420 p.)
Po cholerę używasz buildera 6?
komentarz 10 lutego 2017 przez dzialkowiec Nowicjusz (220 p.)
Wchodzę dopiero w programowanie obiektowe i jak polecił Zelent wybrałem buildera6 żeby się wczuć.

Postanowiłem napisać choć jeden program aby obeznać się ze środowiskiem. Aby było szybciej wykorzystuję biblioteki które stworzyłem w codeblocks. Ta akurat obsługuje logowanie.

Już widzę, że toporne to i mało elastyczne środowisko więc nie wiążę z nim przyszłości.

Poleciłbyś w moim przypadku jakiś inny IDE do obiektówki?
komentarz 10 lutego 2017 przez koczurekk Gaduła (3,420 p.)
Do obiektówki z GUI zawsze i wszędzie Qt Creator. Bez GUI zresztą też, ale wtedy możesz się też skusić na Visual Studio, chociaż może odstraszyć cię waga tego potworka.

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
0 odpowiedzi 302 wizyt
0 głosów
1 odpowiedź 242 wizyt
pytanie zadane 26 czerwca 2021 w C i C++ przez xkamiz Użytkownik (500 p.)
+1 głos
2 odpowiedzi 208 wizyt

92,455 zapytań

141,263 odpowiedzi

319,100 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...