int main() { float tab[6]; wczytaj(tab); posortuj(tab); wyszukaj(tab); return 0; }
void wybierz(wezel *wsk,unsigned int *znakNumer,unsigned int *wierszNumer, int wybor,char *zapis,char *odczyt,int *flaga) //przechodzimy do funcji która wskaże jaka opcja w menu została wybrana //argumenty funkcji to adres listy,licznik kolumn-znakNumer, licznik wierszy,sciezka zapisu pliku, odczytu pliku i flaga określająca zmianae tekstu z nowy plik na kontynułuj edycje { wezel *adresPrzejsciaDoWybranejListy,*AdresPomocniczy=wsk; int nrWiersza; int nrKol=0,znaleziono=0;//znaleziono- licznik do wypisywania wyników w kolejnym wierszu przy wyszukiwaniu char tekstWyszukaj[30],znakWybor=80,pozycjaStrz=-1;//pozycjaStr wykorzystywane w menu opcji CONSOLE_CURSOR_INFO ci;//urywanie kursora HANDLE hC=GetStdHandle(STD_OUTPUT_HANDLE); GetConsoleCursorInfo(hC, &ci); ci.bVisible=0; SetConsoleCursorInfo(hC, &ci); switch(wybor) { case 0://EDYCJA { nrWiersza=-1;//przejscie do ostatniej lini /* AdresPomocniczy=wsk->glowa; while(AdresPomocniczy->nast!=NULL) AdresPomocniczy=AdresPomocniczy->nast;*/ adresPrzejsciaDoWybranejListy=przejdDoWiersza(wsk,nrWiersza,znakNumer,wierszNumer); //nr wierszza okresla do którego wiersza ma przejść -1 oznacza przejscie do ostatniego wiersza, reszta to polozenie kursora system("cls"); OpcjeWEdycji(); pobierzZnakWsrodkuListy(wsk,adresPrzejsciaDoWybranejListy,znakNumer,wierszNumer,flaga);//pobiera znaki break; } case 1://ZAPIS { PasekOpcjiGorny(); if(zapiszPlik(zapis,wsk)) gprintf("Plik zapisany poprawnie!",WysrodkujTekst("Plik zapisany poprawnie!"),7); else gprintf("Plik nie zostal zapisany!",WysrodkujTekst("Plik nie zostal zapisany!"),7); break; } case 2://WCZYTANIE { if ((wsk->nast!=NULL)||(wsk->nrKolumny!=0)) { gprintf("Nie mozna wczytywac pliku podczas edycji!",WysrodkujTekst("Nie mozna wczytywac pliku podczas edycji!"),7); break; } else if(odczytZpliku(odczyt,wsk,znakNumer,wierszNumer)) gprintf("Plik wczytany poprawnie!",WysrodkujTekst("Plik wczytany poprawnie!"),7); else gprintf("Plik nie zostal wczytany!",WysrodkujTekst("Plik nie zostal wczytany!"),7); break; } case 3://USUNIECIE { zapiszPlik("temp.txt",wsk);//zapisanie do pliku tymczasowego gprintf("Edycje zakonczono, praca zostala usunieta!",WysrodkujTekst("Edycje zakonczono, praca zostala usunieta!"),7); wyczyscListe(wsk,znakNumer,wierszNumer,flaga);//czyszczenie listy break; } case 4://PRZEJDZ DO WIERSZA { ci.bVisible=1;//widocznosc kursora SetConsoleCursorInfo(hC, &ci); gprintf("PRZEJDZ DO WIERSZA",WysrodkujTekst("Przejd do wiersza"),5); gprintf("Zatwierdz - ENTER",0,WYSOKOSC_MENU_GORNEGO-2); AdresPomocniczy=wsk->glowa; gprintf("Zakres wierszy ",WysrodkujTekst("Zakres wierszy: od %i do %i "),7); while(AdresPomocniczy->nast!=NULL)//liczy ile wierszow sie znajduje na liscie AdresPomocniczy=AdresPomocniczy->nast; printf("od 1 do %i",AdresPomocniczy->nrWiersza+1); gprintf("Ustaw kurosor na koniec wiersza nr: ",WysrodkujTekst("Ustaw kurosor na koniec wiersza i wcisnij ENTER: "),8); scanf("%i",&nrWiersza); nrWiersza--;//zmiejszamy o 1 bo indeksowanie jest od 0 if ((nrWiersza>AdresPomocniczy->nrWiersza)||(0==AdresPomocniczy->nrWiersza)) //wlaczenie zwyklej edycji { if (AdresPomocniczy->nrWiersza!=nrWiersza+1) //brak wyswietlania komunikatu przy ostatni wersie { gotoxy(WysrodkujTekst("Brak wiersza nr: %i za 3 sek przejscie do ostatniego wiersza"),21); printf("Brak wiersza nr: %i za 3 sek przejscie do ostatniego wiersza!!!",nrWiersza+1); Sleep(3000); } system("cls"); OpcjeWEdycji(); adresPrzejsciaDoWybranejListy=przejdDoWiersza(wsk,nrWiersza,znakNumer,wierszNumer); pobierzZnakWsrodkuListy(wsk,adresPrzejsciaDoWybranejListy,znakNumer,wierszNumer,flaga); break; } else { adresPrzejsciaDoWybranejListy=przejdDoWiersza(wsk,nrWiersza,znakNumer,wierszNumer); system("cls"); PasekOpcjiGorny(); OpcjeWEdycji(); pobierzZnakWsrodkuListy(wsk,adresPrzejsciaDoWybranejListy,znakNumer,wierszNumer,flaga); } break; } case 5://WYSUKAJ { ci.bVisible=1; SetConsoleCursorInfo(hC, &ci); gprintf("WYSUKAJ",WysrodkujTekst("WYSZUKAJ"),5); gprintf("Zatwierdz - ENTER",0,WYSOKOSC_MENU_GORNEGO-2); gotoxy(WysrodkujTekst("Podaj tekst jaki chcesz wyszukac max 30 znakow: "),7); printf("Podaj tekst jaki chcesz wyszukac max 30 znakow: "); // fscanf(stdin,"%s",tekstWyszukaj); gets(tekstWyszukaj);//pobieranie ze spacja wsk=wsk->glowa; nrWiersza=0; gotoxy(0,WYSOKOSC_MENU_GORNEGO); while (wsk!=NULL) { nrKol=wyszukaj(wsk->tabZnak,tekstWyszukaj,30); if (nrKol>-1) { printf("Znaleziony wyraz znajduje sie w kolumnie: %i w wierszu: %i\n",nrKol,wsk->nrWiersza); znaleziono++; } wsk=wsk->nast; } if (znaleziono==0) gprintf("Nie znaleziono frazy!",WysrodkujTekst("Nie znaleziono frazy!"),14+znaleziono); gprintf("Wcisnij jakis klawisz...",WysrodkujTekst("Wcisnij jakis klawisz..."),16+znaleziono); getch();//przytrzymuje widok wyików system("cls"); break; } case 6://OPERACJE { system("cls"); ruchKursorOperacje(wsk,znakNumer,wierszNumer);//ruch kursorem przy operacjach break; } case 7://OPCJE { system("cls"); PasekOpcjiGorny(); gprintf("OPCJE",WysrodkujTekst("OPCJE"),5); MENU_OPCJE while (znakWybor!=27) { gprintf(" ",31,21+pozycjaStrz); switch(znakWybor) { case 80: { if (pozycjaStrz<ROZMIAR_MENU_OPCJE-1) pozycjaStrz++;//zmiana pozyji w menu na dół break; }//end 80: case 72: { if (pozycjaStrz>0) pozycjaStrz--;//zmiana pozycji w menu na górę break; }//end 72: case 13: { system("cls"); PasekOpcjiGorny(); gprintf("OPCJE",WysrodkujTekst("OPCJE"),5); gprintf("Zatwierdz i wyjdz - ENTER",0,WYSOKOSC_MENU_GORNEGO-2); switch(pozycjaStrz) { case 0: { ci.bVisible=1; SetConsoleCursorInfo(hC, &ci); gprintf("Bierzaca sciezka zapisu: ",WysrodkujTekst("Bierzaca sciezka zapisu "),7); printf("%s",zapis); gprintf("Podaj nowa sciezke: ",WysrodkujTekst("Podaj nowa sciezke "),WYSOKOSC_MENU_GORNEGO+7); gets(zapis); system("cls"); PasekOpcjiGorny(); gprintf("OPCJE",WysrodkujTekst("OPCJE"),5); ci.bVisible=0; SetConsoleCursorInfo(hC, &ci); MENU_OPCJE//wypisanie tekstu przez makrodefinicje break; } case 1: { ci.bVisible=1; SetConsoleCursorInfo(hC, &ci); gprintf("Bierzaca sciezka odczytu: ",WysrodkujTekst("Bierzaca sciezka odczytu "),7); printf("%s",odczyt); gprintf("Podaj nowa sciezke: ",WysrodkujTekst("Podaj nowa sciezke "),WYSOKOSC_MENU_GORNEGO+7); gets(odczyt); system("cls"); PasekOpcjiGorny(); gprintf("OPCJE",WysrodkujTekst("OPCJE"),5); ci.bVisible=0; SetConsoleCursorInfo(hC, &ci); MENU_OPCJE//wypisanie tekstu przez makrodefinicje break; } case 2: { ci.bVisible=1; SetConsoleCursorInfo(hC, &ci); gprintf("Bierzacy rozmiar bufora: ",WysrodkujTekst("Bierzacy rozmiar bufora:"),7); printf("%i",ROZMIAR_BUF_KOPIOWANIA); gprintf("Podaj nowa rozmiar bufora: ",WysrodkujTekst("Podaj nowa rozmiar bufora:"),WYSOKOSC_MENU_GORNEGO+7); scanf("%i",&ROZMIAR_BUF_KOPIOWANIA); fflush(stdin); system("cls"); PasekOpcjiGorny(); gprintf("OPCJE",WysrodkujTekst("OPCJE"),5); ci.bVisible=0; SetConsoleCursorInfo(hC, &ci); MENU_OPCJE//wypisanie tekstu przez makrodefinicje }//end case 2 }//end switch break; }//end 13: }//end switch gotoxy(0,7); printf(ZAMARZTESKST); gotoxy(0,8); printf(ZAMARZTESKST); gprintf("Bierzaca sciezka zapisu: ",WysrodkujTekst("Bierzaca sciezka zapisu "),7); printf("%s",zapis); gprintf("Bierzaca sciezka zapisu: ",WysrodkujTekst("Bierzaca sciezka zapisu "),8); printf("%s",odczyt); gprintf(STEROWANIE_MENU_OPIS,0,WYSOKOSC_MENU_GORNEGO-2); gprintf("===>",31,21+pozycjaStrz); znakWybor=getch(); }//end while gprintf(" ",31,21+pozycjaStrz); gprintf(ZAMARZTESKST,0,7); gprintf(ZAMARZTESKST,0,8); gprintf(ZAMARZTESKST,0,5); gprintf(ZAMARZTESKST,0,21+0); gprintf(ZAMARZTESKST,0,21+1); break; } case 8: { gprintf("Dziekujemy za korzystanie z naszego programu.",WysrodkujTekst("Dziekujemy za korzystanie z naszego programu."),15); Sleep(1500); exit(0); break; } default: { break; } }//end switch }//end wybierz