Zapis do określonej linii w pliku? Jak zrobić.

Odpowiedz Nowy wątek
2012-06-09 22:50
0

Witam

W jaki sposób mogę zapisać dane do pliku tekstowego do wybranej linii? Szukałem, ale nic nie znalazłem. Czy znajdzie się ktoś, kto choć naprowadzi mnie na rozwiązanie.

Z góry dziękuję za pomoc.

Pozostało 580 znaków

2012-06-09 22:55
0

Nie możesz nic wstawić do środka pliku, nie możesz nic skasować. Możesz jedynie zastąpić jeden fragment drugim o ile są takiej samej długości.
Można jednak dokonać usunięć lub podmian przez pamięć lub inny plik.
Czyli robisz kopię, kopie wpisujesz z powrotem "modyfikując" w locie.


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.

Pozostało 580 znaków

2012-06-09 23:15
0

Pseudo kod:

Wczytać pustą linie X razy.
Wczytać reszte pliku (X+1) do zmiennej / zamknąć plik.

Wczytać puste linie kolejne X razy.
Dopisać co chcesz dopisać.
Wrzucić reszte pliku ze zmiennej / zamknąć plik.


"Jeśli udoskonalasz coś dostatecznie długo – na pewno to zepsujesz."
edytowany 1x, ostatnio: pret0rian, 2012-06-09 23:18

Pozostało 580 znaków

2012-06-10 07:21
0

Aha rozumiem. A jeżeli z pomocą getline wczytam sobie linijką, to w jaki sposób sprawdzić 1 znak w danym wierszu (bo jeżeli miałbym tam cyfrę poniekąd rozwiązał bym problem, bo jeżeli ktoś wpisałby 7, to wyświetliło by 7 linijką).

Pozostało 580 znaków

2012-06-10 08:22
sig
0

Zależy do czego tą linię wczytałeś, jak do string-a to 1 znak będzie w nazwa_stringa[0].

ps jak do czegoś innego to nie wczytałeś całej linijki.

Pozostało 580 znaków

2012-06-10 11:05
0

A jak ktoś wpiszę A przy pierwszej a 99 przy drugiej, to ...


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.

Pozostało 580 znaków

2012-06-10 13:21
sig
0

W sumie to w celu liczenia linijek najprościej było by liczyć getline-y w jakimś while-u.

Pozostało 580 znaków

2012-06-10 14:56
0

Liczenie linijek:

do
{
     getline(plik, temp);
     licznik++;
}
while(!plik.eof());

licznik - ilość linii


"Jeśli udoskonalasz coś dostatecznie długo – na pewno to zepsujesz."
edytowany 1x, ostatnio: pret0rian, 2012-06-10 14:56

Pozostało 580 znaków

2012-06-10 15:03
0

Używać getline do liczenia wierszy? Barbarzyństwo!

int licznik=0,ch,last=0;
while((ch=file.get())!=EOF) if((last=ch)=='\n') ++licznik;
licznik+=(last!='\n');

Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.
edytowany 1x, ostatnio: _13th_Dragon, 2012-06-10 15:03
a ja tak zawsze robiłem ;/ - pret0rian 2012-06-10 15:09
przynajmniej ignore zamiast getline. - _13th_Dragon 2012-06-10 16:21

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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