Działanie na plikach (cpp).

0

Witam,

Nie wiem jak w stworzonym już pliku, np. txt. Zmienić treść w określonym miejscu np :

"Imię : xxx
Nazwisko : xxx"

Mając stworzony plik txt. z taką treścią zamienić xxx na wartość zawartą w tablicy char'ów. Jak powinienem to zrobić w c++ ?

1

Nie da się zmieniać nic w pliku. Można go wczytać, zmienić coś w pamięci i potem zapisać znów do pliku.

2

Będziesz musiał napisać parser tego co jest w pliku, albo to obejść: jeśli znasz strukturę pliku i jest ona jednorodna, to wczytujesz najpierw niepotrzebne słowa i nic z nimi nie robisz, a potem te potrzebne.

A potrzebne do tego będą zwyczajne operacje na plikach. Poczytaj o bibliotece fstream ze standardu.

0

Ja bym wczytal caly plik do tablicy znakow (biblioteka fstream sluzy do operacji na plikach) i wczytywal do struktury dane w sposob:

Po wykryciu ciagu "Imie:" zapisuje kazdy kolejny znak do struktury az do napotkania ciagu "Nazwisko: ". Nastepnie zczytuje do struktury kolejne znaki az do napotkania "Imie: ". Te kolejne znaki zapisuje do kolejnej struktury. Tak zczytujesz i zapisujesz az do zakonczenia pliku tekstowego.

Jak masz gotowa strukture osob (Imion i Nazwisk), zmieniasz sobie w stukturach co zechcesz. Jak juz ci sie odechcialo zmian i chcesz je zapisac w pliku, otwierasz go (fstream), czyscisz plik txt.
i wpisujesz do niego dane w kolejnosci:
wpisz tekst: "imie: ";
wpisz tekst: struktura[n].imie;
wpisz tekst: "\nNazwisko: ";
wpsiz tekst: struktura[n].nazwisko;
wpisz tekst: "\nimie: ";
wpisz tekst: struktura[n+1].imie;
wpisz tekst: "\nNazwisko: ";
wpisz tekst: struktura[n+1].nazwisko;

Tak wpisujesz do pliku az do ostatniej struktury i masz gotowy plik.
Proponuje ci wysilic sie troszke i sporzadzic sobie liste jednokierunkowa.

Tu masz kurs fstream:
http://cpp0x.pl/kursy/Kurs-C++/Obsluga-plikow/305

1 użytkowników online, w tym zalogowanych: 0, gości: 1