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

<fstream> Wczytywanie danych z pliku i ładowanie do comboboxa [winAPI]

Ostatnio zmodyfikowano 2014-01-13 17:26
Autor Wiadomość
loop
Temat założony przez niniejszego użytkownika
<fstream> Wczytywanie danych z pliku i ładowanie do comboboxa [winAPI]
» 2014-01-13 17:00:52
Witam.

Mam taki problemik: chcę, aby każda linijka z pliku tekstowego
plik.txt
 była "przepisana" do elementu komboboxa.
Jedna linijka pliku = jeden element w komboboxsie, itd, aż do końca pliku.

Stworzyłem coś takiego:
C/C++
std::fstream plik;
plik.open( "plik.txt", std::ios::in | std::ios::out );

if( plik.good() == true )
{ //uzyskano dostęp do pliku...
    string buf;
   
    while( !lista.eof() ) // Dopóki kursor nie znajdzie sie na pliku, wczytuj każdą linijkę do nowego elementu comboboxa.
    {
        std::getline( std::cin, buf );
        SendMessage( hCombo, CB_ADDSTRING, 0, buf );
        cin.sync()
    }
}
else
{
    MessageBox( NULL, "Błąd nr 3 - nie znaleziono pliku!", "To nie żart!", MB_ICONERROR ); DestroyWindow( hwnd );
}

Ale kompilator krzyczy:

181 C:\Users\admin\Documents\C++\Zliczarka\main.cpp cannot convert `std::string' to `LPARAM' for argument `4' to `LRESULT SendMessageA(HWND__*, UINT, WPARAM, LPARAM)'

Co tu zrobić?
P-102082
pekfos
» 2014-01-13 17:09:16
( LPARAM ) buf.c_str()
P-102083
loop
Temat założony przez niniejszego użytkownika
» 2014-01-13 17:17:39
Gdzie mam to umieścić?

Jak umieszczam tak, jak podpowiada intuicja, czyli:
SendMessage( hCombo, CB_ADDSTRING, 0,( LPARAM ) buf.c_str() );

To program (okno) wogóle się nie pojawia...
P-102086
pekfos
» 2014-01-13 17:24:05
Pewnie dlatego, że używasz cin, zamiast pliku.
P-102087
loop
Temat założony przez niniejszego użytkownika
» 2014-01-13 17:26:07
Tak właśnie, powinno być
std::getline( plik, buf );
,
wielkie, wielkie dzięki!
P-102088
« 1 »
  Strona 1 z 1