Operacje na plikach txt. Usuwanie fragmentu tekstu i zarazem pliku.
Ostatnio zmodyfikowano 2015-11-15 19:08
oliwierr Temat założony przez niniejszego użytkownika |
Operacje na plikach txt. Usuwanie fragmentu tekstu i zarazem pliku. » 2015-11-15 16:51:29 Są trzy przykładowe pliki:
ListaPracownikow.txt PracownikAgata.txt PracownikJan.txt
Mam funkcję dodającą nowego pracownika i tworzy plik o nazwie ("pracownik" + 'imie pracownika").txt (np. PracownikJan.txt). W tym pliku są zawarte o nim informacje. A plik ListaPracownikow zawiera imiona które są automatycznie dodawane po dodaniu nowego pracownika. Zawartość ListaPracownikow.txt:
Agata Jan
I mój problem jest taki. Chciałbym zrobić funkcję którą będę usuwać pracowników. Co mam na myśli? Otóż ta funckja powinnna usunąć imie pracownika z pliku ListaPracownikow oraz usunac plik z informacjami o nim czyli ("pracownik" + 'imie pracownika").txt.
Help mi :x |
|
oliwierr Temat założony przez niniejszego użytkownika |
» 2015-11-15 17:01:00 Aha! Jezscze dodatkowo chciałbym wspomnieć że ta funkcja powinna usunąć pracownika którego imie wpiszę CINEM. Przykładowo cin >> imie;
A z klawiatury wpisuje Jan.
I wtedy z listy pracowników powinien się usunąć wiersz ze słowem "Jan" a dodatkowo usunąć pracownikjan.txt. |
|
carlosmay |
» 2015-11-15 17:51:29 Dorzuć kod. Jak zapisujesz do pliku? Jak przechowujesz dane w programie? |
|
michal11 |
» 2015-11-15 18:07:10 A co jak będzie 2 pracowników o tym samym imieniu ? Używanie z pliku listaPracownikow najłatwiej chyba będzie zrealizować w ten sposób, że tworzysz nowy plik do którego kopiujesz wszystkich pracowników oprócz tego do usunięcia, usuwasz oryginalny plik i zmienisz nazwę tymczasowego, oczywiście to będzie bardzo nieefektywne dla wielu operacji usuwania pracownika w krótkim czasie. |
|
oliwierr Temat założony przez niniejszego użytkownika |
» 2015-11-15 18:12:58 Plik pracownik + imie.txt to zlepka stringów. Imie wpisane cinem z klawiatury, nastepnie zmienna description która pobiera stringa z osobnego pliku, wpisany tekst w apostrofach + do tego endl; Tak wygląda wpisywanie danych do pracownikjan.txt {
filee.open(pracownik.c_str(), ios::out);
filee << imie << description[0] << "czlonkiem druzyny" << endl;
filee << imie << description[1] << "uzytkownikiem komputera" << endl;
filee << imie << description[2] << "wladajacy mieczem" << endl;
filee << imie << description[3] << "graczem" << endl;
filee.close(); }
Tak zostają wprowadzane dane do pliku np. pracownik + "imie" .txt. Są to pełne zdania w pliku i każde zapisane w osobnej liniijce. Gdzie i imie i desctiption są stringami.
Imie zostało wprowadzone cinem w osobnej funkcji a description[n] kryją pod sobą "jest" lub "nie jest".
W przypadku description[n] wygląda to tak że pobiera osobna funkcja pobiera z osobnego pliku tekstowego zera i jedynki. 0 1 1 0
Następnie gdy pierwsza linijka jest równa 0, to desctiption = nie jest a gdy 1 desctiption = nie jest, i tak z drugą linikją, trzecią i czwartą.
if (liczba == 0) file << " nie jest " << endl; else if (liczba == 1) file << " jest " << endl;
----------------------------------------------------------------------------------------------------------------- Jezu wiem że pewnie masę amatorskich błędów porobiłem i można było łatwiej i krócej ale pls nie krzyczcie już ;_; |
|
oliwierr Temat założony przez niniejszego użytkownika |
» 2015-11-15 18:14:45 @michał
Jak wprowadzę pracownika o imieniu który już istnieje to poprzedni plik z danymi pracownika zostanie podmieniony danymi nowo wprowadzonymi. Ale to jest celowe i nie chcę tego zmieniać. |
|
carlosmay |
» 2015-11-15 18:53:24 |
|
oliwierr Temat założony przez niniejszego użytkownika |
» 2015-11-15 19:08:30 Bardzo dziękuję za pomoc :) Zamkykam temat.
Swoją drogą to kocham to forum i bez niego jechałbym na jedynkach w szkole. Dzięki <3 |
|
« 1 » |