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

Poruszanie się po pliku tekstowym oraz jego edycja

Ostatnio zmodyfikowano 2011-03-12 10:34
Autor Wiadomość
elradziu
Temat założony przez niniejszego użytkownika
Poruszanie się po pliku tekstowym oraz jego edycja
» 2011-03-11 21:47:37
Witam mam mały problem.
Otóż muszę stworzyć bazę danych.
I teraz tak potrzebuję zrealizować jak przesunąć wskaźnik pliku o jedną linię w górę lub w dół. Oraz jak edytować daną linię?

Oto przykład istniejącego pliku

Marcin
Kamil
Łukasz
Marek
Agnieszka
Frania
Weronika
...

I jeżeli np przeszukuję plik w poszukiwaniu imienia Marek to wskaźnik ustawia się zaraz po tym do początku następnej linii (Agnieszka).
Wie ktoś może jak to zrealizować przesunięcie tego wskaźnika o jeden wiersz w górę lub w dół a także edycje danego wiersza?
P-29083
malan
» 2011-03-11 22:46:47
Skoro to ma być baza danych to zapoznaj się z SQLite. Jeżeli to rozwiązanie Ci nie odpowiada to pozostaje Ci wczytać dane do programu, np. do jakieś struktury, czy klasy. Skąd pomysł żeby cały czas pracować na pliku?
P-29085
dmx81
» 2011-03-11 23:31:59
nie wiem, czy to wydajny pomysl, ale powinien bys skuteczny:

- szukajac konkretnego imienia uzyc np funkcji get() - wcztujacej po jednym znaku z pliku az do napotkania nowej linii
- zapisywac te znaki np do stringa (lub tablicy char) i porownywac z docelowym szukanym wyrazeniem
- gcount() powie, ile znakow zostalo wczytanych (bajtow)
- dzieki liczbie powyzej mozemy dowolnie ustalic wskaznik w pliku przez seekg(), albo sprawdzic pozycje wskaznika przez tellg()
- mozna zrobic np "mape" pliku, wczytujac kazde imie az do eof() - po wczytaniu kazdego imienia tworzyc int z zapisana wartoscia pozycji wskaznika dla poczatku imienia, a pozniej uzywajac tych wartosci ustawiac wskaznik w danym miejscu w pliku
to takie moje podpowiedzi "na sucho", pewnie wglebiajac sie dalej w temat cos wiecej by sie zrodzilo

P-29087
elradziu
Temat założony przez niniejszego użytkownika
» 2011-03-12 09:18:10
Ok a jak z edytowaniem danej linii pliku?
P-29091
ThudPoland
» 2011-03-12 09:30:30
Edytowaniem w jakim sensie pliku - dodawanie plików czy modyfikacja istniejących?

//Edit:
Wróć, danej. Nie przeczytałem porządnie. Zara napiszę.

//Edit:
Zasada jest taka - można zastąpić jakiś wpis. Przykładowo znając jakiś wpis (np. "Frania") możemy go zedytować wpis w oto taki sposób:
1. Wczytujemy gdzieś całą zawartość plyku.
2. Wyszukujemy w zmiennej miejsca gdzie zaczyna się dany wpys ("Frania").
3. Przechodzimy do miejsca w plyku gdzie dany wpis się zaczyna i usuwamy dany wpis ("Frania").
4. W tym samym miejscu piszemy to co chcemy napisać (np. "Kunegunda").
P-29093
elradziu
Temat założony przez niniejszego użytkownika
» 2011-03-12 10:08:36
Ok...

Tylko czytam i czytam o usuwaniu wpisów z pliku. I nie znalazłem innego jak przepisanie istniejącego pliku z pominięciem danego wpisu....

Da się to inaczej wykonać??
P-29094
ThudPoland
» 2011-03-12 10:34:15
Żeby pominąć trzeba usunąć. Bynajmniej w najprostszej wersji. Zawsze można wczytywać do strumienia i kiedy znajdziemy w tekście dany fragment nie wczytywać go do strumienia.
P-29096
« 1 »
  Strona 1 z 1