コード例 #1
0
ファイル: main.c プロジェクト: tsott/c
int main()
{
    float tab[6];
    wczytaj(tab);
    posortuj(tab);
    wyszukaj(tab);
    return 0;
}
コード例 #2
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