Chudy22 Opublikowano 3 Lutego 2007 Udostępnij Opublikowano 3 Lutego 2007 Witam ponownie :) Mam problem posluguje sie przykladem Zawieja (tylko do celow edukacyjnych zeby nie bylo :D ) i jak raz zapisze notatke to sie ona pokazuje, ale chcialbym zrobic tak zeby po napisaniu nowej notki poprzednia sie nie kasowala a zapisala pod stara..... Ma ktos jakies pomysly?? :D Ponizej dla przypomnienia kod Zawieja ® ;) #include <iostream> #include <fstream> #include <string> /* Program: Pamietnik Autor: Zawiej */ using namespace std; int main() { struct dane { char data[35], notatka[35], podpis[10]; } w; int wybor; string linia, zawartosc; poczatek: cout<<" ########################\n"; cout<<" # Pamietnik #\n"; cout<<" ########################\n\n"; cout<<" 1. Dodaj notatke\n"; cout<<" 2. Wczytaj notatke\n"; cout<<" 3. Exit\n"; cin>>wybor; cin.ignore(); switch (wybor) { case 1: goto dodaj; break; case 2: goto wczytaj; break; case 3: goto koniec; break; default: cout<<" Wybrales numer z poza zakresu dostepnych"; getchar(); goto poczatek; } dodaj: { system("cls"); ofstream plik; plik.open("pamietnik.txt"); cout<<" Podaj date: \n"; cin>>w.data; cin.ignore(); plik<<"######################\n"; plik<<"# Data: "<<w.data<<"\n"; cout<<" Podaj twoja notatke: \n"; cin>>w.notatka; cin.ignore(); plik<<"# Notatka: "<<w.notatka<<"\n"; cout<<" Podpis: \n"; cin>>w.notatka; cin.ignore(); plik<<"# Podpis: "<<w.podpis<<"\n"; plik.close(); getchar(); system("cls"); goto poczatek; } wczytaj: { ifstream plik; plik.open("pamietnik.txt"); if (!plik.is_open()) throw-1; while (getline(plik, linia)) { zawartosc+=linia + "\n"; } cout<<zawartosc; plik.close(); getchar(); system("cls"); goto poczatek; } koniec: system("PAUSE"); return 0; } P.S Zawiej to uzytkownik innego forum :D Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 3 Lutego 2007 Udostępnij Opublikowano 3 Lutego 2007 Wczytaj starą, dodaj do niej nową i zapisz. Proste :P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Chudy22 Opublikowano 3 Lutego 2007 Autor Udostępnij Opublikowano 3 Lutego 2007 Heh to nie takie proste zwlaszcza ze bede musial dodawac tu okolo 300 wpisow ;) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 3 Lutego 2007 Udostępnij Opublikowano 3 Lutego 2007 Eh, ale to przecież będzie w jednym pliku, nie? :) Więc to będzie się sprowodzało do tego co napisałem. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Chudy22 Opublikowano 3 Lutego 2007 Autor Udostępnij Opublikowano 3 Lutego 2007 Tyle ze to kompletnie nie zadziala bo jesli tak, to musialbym zrobic zeby zapisalo sie to pod STARĄ notatką a nie nadpisywalo..... Abysmy sie lepiej zrozumiali moze zaprezenutj to w kodzie :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 3 Lutego 2007 Udostępnij Opublikowano 3 Lutego 2007 Heh, nie chce mi się kodu teraz pisać :P Ale w punktach: 1. Wczytaj całą zawartość pliku do zmiennej. 2. Dopisz do zmiennej nową notkę. 3. Zapisz wszystko do pliku. Jednak i tak to rozwiązanie uważam za niewydajne. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Chudy22 Opublikowano 3 Lutego 2007 Autor Udostępnij Opublikowano 3 Lutego 2007 Niewiem dzieki za checi ale nie wychodzi moze nie mam juz dzisiaj do tego głowy ;) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 3 Lutego 2007 Udostępnij Opublikowano 3 Lutego 2007 O ludzie, o ludzie. #include <iostream> #include <fstream> #include <string> /* Program: Pamietnik Autor: Zawiej */ using namespace std; int main() { struct dane { char data[35], notatka[35], podpis[10]; } w; int wybor; string linia, zawartosc; poczatek: cout<<" ########################\n"; cout<<" # Pamietnik #\n"; cout<<" ########################\n\n"; cout<<" 1. Dodaj notatke\n"; cout<<" 2. Wczytaj notatke\n"; cout<<" 3. Exit\n"; cin>>wybor; cin.ignore(); switch (wybor) { case 1: goto dodaj; break; case 2: goto wczytaj; break; case 3: goto koniec; break; default: cout<<" Wybrales numer z poza zakresu dostepnych"; getchar(); goto poczatek; } dodaj: { ifstream plik; plik.open("pamietnik.txt"); zawartosc = ""; if (!plik.is_open()) throw-1; while (getline(plik, linia)) { zawartosc+=linia + "\n"; } plik.close(); system("cls"); ofstream plikOpen; plikOpen.open("pamietnik.txt"); plikOpen<<zawartosc; cout<<" Podaj date: \n"; cin>>w.data; cin.ignore(); plikOpen<<"######################\n"; plikOpen<<"# Data: "<<w.data<<"\n"; cout<<" Podaj twoja notatke: \n"; cin>>w.notatka; cin.ignore(); plikOpen<<"# Notatka: "<<w.notatka<<"\n"; cout<<" Podpis: \n"; cin>>w.notatka; cin.ignore(); plikOpen<<"# Podpis: "<<w.podpis<<"\n"; plik.close(); getchar(); system("cls"); goto poczatek; } wczytaj: { ifstream plik; plik.open("pamietnik.txt"); zawartosc = ""; if (!plik.is_open()) throw-1; while (getline(plik, linia)) { zawartosc+=linia + "\n"; } cout<<zawartosc; plik.close(); getchar(); system("cls"); goto poczatek; } koniec: system("PAUSE"); return 0; } Zrobiłem to tak na bezczelnego, więc nadaje się do poprawy xP Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Chudy22 Opublikowano 3 Lutego 2007 Autor Udostępnij Opublikowano 3 Lutego 2007 eeee jakby ci to powiedzdiec.... \ \ \ \ \ \ \ \ \ DZIAŁA JESTEŚ WIELKI dzieki :D:D:D Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Chudy22 Opublikowano 7 Lutego 2007 Autor Udostępnij Opublikowano 7 Lutego 2007 Nie chce zakladac nowego tematu a potrzebuje tych danych otóz czy jest jakiś skrypt powodujący Wylaczenie/Zresetowanie komputera?? P.S Sorki za moje pytania, mam nadzije ze wybaczycie ;) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
blackmaul Opublikowano 7 Lutego 2007 Udostępnij Opublikowano 7 Lutego 2007 WinAPI: ExitWindowsEx (EWX_REBOOT | EWX_FORCE, 0) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 7 Lutego 2007 Udostępnij Opublikowano 7 Lutego 2007 execute_shell( 'shutdown', '/s /t 0' ); Zamyka system. execute_shell( 'shutdown', '/r /t 0' ); Restartuje. Pisałem już gdzieś o tym :) EDIT Sry, myślałem że dla GMa xD EDIT[ http://msdn2.microsoft.com/en-us/library/aa376868.aspx #include<windows.h> #include<iostream> int main() { ExitWindowsEx( akcja, 0); } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Chudy22 Opublikowano 7 Lutego 2007 Autor Udostępnij Opublikowano 7 Lutego 2007 Black a nie da sie bez WinApi?? :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
blackmaul Opublikowano 7 Lutego 2007 Udostępnij Opublikowano 7 Lutego 2007 Co za różnica, w C++ zawsze możesz gdzieś pierdyknąć kod z WinApi :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Chudy22 Opublikowano 7 Lutego 2007 Autor Udostępnij Opublikowano 7 Lutego 2007 Dalem tak i nic :( int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { ExitWindowsEx (EWX_REBOOT | EWX_FORCE, 0); keybd_event(VK_MENU,0x38,0,0); keybd_event(VK_RETURN,0x1c,0,0); keybd_event(VK_RETURN,0x1c,KEYEVENTF_KEYUP,0); keybd_event(VK_MENU,0x38,KEYEVENTF_KEYUP,0); Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Filar Społeczności Ranmus Opublikowano 7 Lutego 2007 Filar Społeczności Udostępnij Opublikowano 7 Lutego 2007 A ja jeszcze powrócę do problemu z pierwszego tematu. Otóż Tymon podał rozwiązanie, którego tak naprawdę nie powinno się stosować. Po to można otwierać pliki w trybie APPEND by właśnie dodawać zawartość bez utraty poprzedniej. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Zychu Opublikowano 7 Lutego 2007 Udostępnij Opublikowano 7 Lutego 2007 a dales return 0; i zamknales nawias?? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Chudy22 Opublikowano 8 Lutego 2007 Autor Udostępnij Opublikowano 8 Lutego 2007 Tak ;) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Solmis Opublikowano 12 Lutego 2007 Udostępnij Opublikowano 12 Lutego 2007 WinExec("tsshutdn 0 /POWERDOWN /DELAY:0", SW_HIDE); - mi to zawsze pomagało (wyłącza system), ale to jest w winapi :boxed: Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Marmot Opublikowano 12 Lutego 2007 Udostępnij Opublikowano 12 Lutego 2007 Do wyłączenia komputera można wywołać funkcję ExitWindowsEx w user32.dll który jest w systemie :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się