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

Odczytywanie danych wierszami z pliku *.txt

Ostatnio zmodyfikowano 2014-01-30 11:22
Autor Wiadomość
mikson
Temat założony przez niniejszego użytkownika
» 2014-01-27 15:43:45
Nie chcąc zakładać nowego tematu, który byłby bardzo podobny w treści do tego, napiszę tutaj.

Co zrobić, gdy tym razem chcę zapisać coś np. w trzeciej od góry linijce pliku?
P-103318
alixir
» 2014-01-27 15:57:30
Wstawić się nie da. Musisz przepisać cały plik. Przepisujesz plik do linii w której chcesz coś dopisać, dopisujesz nową linię i kontynuujesz przepisywanie pliku.
P-103319
mikson
Temat założony przez niniejszego użytkownika
» 2014-01-27 16:20:01
Mój plik jest zbudowany na zasadzie:

string
numer
string
numer
string
numer  itd...

String mnie w tym momencie nie interesuje, chcę powiększyć liczbę w pliku o wartość zmiennej wyjscie.
Mam dany numer liczby do podmienienia. Robię to w ten sposób:

C/C++
for( int i = 0; i <= numer; i++ )
{
    getline( plik, buf );
   
    if( i == plik )
    {
        bufor = pom + wyjscie;
       
        plik << bufor;
       
        SendMessage( hComboBox, CB_ADDSTRING, 0,( LPARAM ) bufor );
    }
    else
    {
        plik << pom;
    }
}

W pliku się nic nie zmiena. Co jest źle?
P-103322
alixir
» 2014-01-27 17:17:31
Otwierasz plik w trybie do odczytu i zapisu. Jednoczesna operacja odczytu i zapisu nie jest możliwa. Dlatego napisałem, że musisz przepisać plik do jakiegoś tempa, a potem podmienić oryginalny tym nowo utworzonym.
P-103333
mikson
Temat założony przez niniejszego użytkownika
» 2014-01-27 19:12:41
Czyli jak to zrobić bo tak nie zbyt bardzo jarzę, poza pętlą zapisywać do pliku czy jak?
P-103347
alixir
» 2014-01-27 19:34:28
Otwierasz dwa pliki - jeden z którego czytasz, drugi tymczasowy do którego będziesz zapisywał.
Jedziesz w pętli, czytasz linie z pierwszego pliku i przepisujesz do drugiego. Gdy napotkasz linię którą chcesz zmienić, zmieniasz, a następnie kontynuujesz przepisywanie pliku. Na końcu kasujesz pierwszy plik, a drugiemu zmieniasz nazwę na taką jak miał pierwszy z nich.
P-103349
mikson
Temat założony przez niniejszego użytkownika
» 2014-01-28 15:59:25
Ok, to robię już tak

C/C++
for( int i = 0; i < numer; i++ )
{
    getline( plik, buf );
    plik >> pom;
    buforPlik << buf << endl;
    buforPlik << pom << endl;
    cin.sync();
}
getline( plik, buf );
buforPlik << buf << endl;
buforPlik << wyjscie << endl;

I mam dwa pytania:

1. Program nie wypisuje buf-ów (stringów) do pliku buforPlik
2. Jak przepisać resztę linijek?
P-103419
mikson
Temat założony przez niniejszego użytkownika
» 2014-01-29 10:10:58
?
P-103488
1 2 « 3 » 4
Poprzednia strona Strona 3 z 4 Następna strona