/* Output from p2c 1.21alpha-07.Dec.93, the Pascal-to-C translator */
/* From input file "baza.pas" */


#include <p2c/p2c.h>


/*create by Cez*/



typedef struct ZAPIS {
  Char IMIE[19];
  Char NAZ[29];
  Char UL[29];
} ZAPIS;


Static FILE *PLIK;
Static boolean koniec;
Static ZAPIS X[10];
Static long i;


Static Void TABELKA(nr, imie1, nazwisko1, ulica1)
unsigned short nr;
Char *imie1, *nazwisko1, *ulica1;
{
  long X, X1, X2;

  for (X = 2; X <= 79; X++) {
    gotoxy((int)X, 5);
    putchar(196);
  }
  for (X1 = 2; X1 <= 79; X1++) {
    gotoxy((int)X1, 9);
    putchar(196);
  }
  for (X2 = 2; X2 <= 79; X2++) {
    gotoxy(20, 6);
    putchar(179);
    gotoxy(20, 8);
    putchar(179);
    gotoxy(49, 6);
    putchar(179);
    gotoxy(49, 8);
    putchar(179);
    gotoxy(80, 6);
    putchar(179);
    gotoxy(80, 8);
    putchar(179);
    gotoxy(9, 6);
    printf("IMIE");
    gotoxy(3, 8);
    printf("%12u.%s", nr, imie1);
    gotoxy(31, 6);
    printf("NAZWISKO");
    gotoxy(22, 8);
    fputs(nazwisko1, stdout);
    gotoxy(51, 6);
    printf("ULICA, NR DOMU/NR MIESZKANIA");
    gotoxy(51, 8);
    fputs(ulica1, stdout);
    gotoxy(35, 1);
    printf("OSOBA WYSZUKANA: ");
    gotoxy(1, 10);
    printf("Press enter\n");
    do {
    } while (!kbhit());
  }
}


Static Void status()
{
  clrscr();
  for (i = 1; i <= 10; i++)
    printf("%12ld.%s %s %s\n", i, X[i-1].IMIE, X[i-1].NAZ, X[i-1].UL);
  do {
  } while (getch() == '\015');
}


Static Void WPISZ()
{
  long c;
  Char *TEMP;

  clrscr();
  printf("Podaj numer identyfikacyjny");
  scanf("%ld%*[^\n]", &c);
  getchar();
  printf("PODAJ IMIE ABONAMENTA: ");
  fgets(X[c-1].IMIE, 19, stdin);
  TEMP = strchr(X[c-1].IMIE, '\n');
  if (TEMP != NULL)
    *TEMP = 0;
  printf("PODAJ NAZWISKO ABONAMENTA: ");
  fgets(X[c-1].NAZ, 29, stdin);
  TEMP = strchr(X[c-1].NAZ, '\n');
  if (TEMP != NULL)
    *TEMP = 0;
  printf("PODAJ ADRES ABONAMENTA: ");
  fgets(X[c-1].UL, 29, stdin);
  TEMP = strchr(X[c-1].UL, '\n');
  if (TEMP != NULL)
    *TEMP = 0;
  TABELKA((int)c, X[c-1].IMIE, X[c-1].NAZ, X[c-1].UL);
}


Static Void SZUKAJ()
{
  long A, indeks;
  Char Z[16];
  boolean znalazlem = false;
  unsigned short odszukany;
  Char *TEMP;

  clrscr();
  printf("              OPCJE SZUKANIA :          \n");
  printf("                       1. wedlug imienia\n");
  printf("                       2. wedlug nazwiska\n");
  printf("                       3. wedlug numeru  \n");
  scanf("%ld%*[^\n]", &A);
  getchar();
  if (A == 1) {
    clrscr();
    printf("PODAJ IMIE ABONAMENTA: ");
    fgets(Z, 16, stdin);
    TEMP = strchr(Z, '\n');
    if (TEMP != NULL)
      *TEMP = 0;
    for (i = 1; i <= 10; i++) {
      if (!strcmp(Z, X[i-1].IMIE)) {
	znalazlem = true;
	odszukany = i;
      }
    }
  }
  if (A == 2) {
    clrscr();
    printf("PODAJ NAZWISKO ABONAMENTA: ");
    fgets(Z, 16, stdin);
    TEMP = strchr(Z, '\n');
    if (TEMP != NULL)
      *TEMP = 0;
    for (i = 1; i <= 10; i++) {
      if (!strcmp(Z, X[i-1].NAZ)) {
	znalazlem = true;
	odszukany = i;
      }
    }
  }
  if (A == 3) {
    printf("Podaj numer:\n");
    scanf("%ld%*[^\n]", &indeks);
    getchar();
    clrscr();
    if (*X[indeks-1].IMIE != '\0')
      TABELKA((int)indeks, X[indeks-1].IMIE, X[indeks-1].NAZ, X[indeks-1].UL);
    else
      printf("Nikt nie zostal znaleziony\n");
  }
  if (znalazlem == true)
    TABELKA(odszukany, X[odszukany-1].IMIE, X[odszukany-1].NAZ,
	    X[odszukany-1].UL);
  else
    printf("Nikt nie zostal znaleziony\n");
  do {
  } while (getch() != '\015');
}


Static Void KASUJ()
{
  Char pytanie;
  unsigned short n;

  clrscr();
  printf("Podaj numer");
  scanf("%hd%*[^\n]", &n);
  getchar();
  printf("Czy na pewno chcesz skasowac abonamenta %s(t/n)", X[n-1].IMIE);
  scanf("%c%*[^\n]", &pytanie);
  getchar();
  if (pytanie == '\n')
    pytanie = ' ';
  if (pytanie == 't' || pytanie == 'T') {
    printf("%s.......[skasowane]\n", X[n-1].IMIE);
    *X[n-1].IMIE = '\0';
    printf("%s.......[skasowane]\n", X[n-1].NAZ);
    *X[n-1].NAZ = '\0';
    printf("%s.......[skasowane]\n", X[n-1].UL);
    *X[n-1].UL = '\0';
  }
  do {
  } while (!kbhit());
}


Static Void zapisz_do_pliku()
{
/* p2c: baza.pas, line 153: Note: REWRITE does not specify a name [181] */
  if (PLIK != NULL)
    rewind(PLIK);
  else
    PLIK = tmpfile();
  if (PLIK == NULL)
    _EscIO(FileNotFound);
  for (i = 1; i <= 10; i++) {
    fprintf(PLIK, "%s\n", X[i-1].IMIE);
    fprintf(PLIK, "%s\n", X[i-1].NAZ);
    fprintf(PLIK, "%s\n", X[i-1].UL);
  }
  fclose(PLIK);
  PLIK = NULL;
}


Static Void odczytaj_z_pliku()
{
  Char *TEMP;

  rewind(PLIK);
  for (i = 1; i <= 10; i++) {
    fgets(X[i-1].IMIE, 19, PLIK);
    TEMP = strchr(X[i-1].IMIE, '\n');
    if (TEMP != NULL)
      *TEMP = 0;
    fgets(X[i-1].NAZ, 29, PLIK);
    TEMP = strchr(X[i-1].NAZ, '\n');
    if (TEMP != NULL)
      *TEMP = 0;
    fgets(X[i-1].UL, 29, PLIK);
    TEMP = strchr(X[i-1].UL, '\n');
    if (TEMP != NULL)
      *TEMP = 0;
  }
}


Static Void MENU()
{
  long y;

  /*clrscr;
GOTOXY(20,14-10);
WRITE('1. szukanie abonamneta');
GOTOXY(20,15-10);
WRITE('2. wpisywanie danych abonamneta');
GOTOXY(20,16-10);
WRITE('3. kasowanie danych abonamneta');
gotoxy(20,17-10);
write('4. zpisanie do pliku');
gotoxy(20,18-10);
write('5. wczytanie z pliku');
gotoxy(20,9);
write('6. wyswietlenie wszystkich komorkek bazy');
gotoxy(20,10);
write('7. wyswietlenie wolnych komorkek bazy');
gotoxy(20,19);
write('0. Wyjscie z programu');*/
/* p2c: baza.pas, line 192: Note: Characters >= 128 encountered [281] */
  printf(
    "\311\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\273\n");
/* p2c: baza.pas, line 193: Note: Characters >= 128 encountered [281] */
  printf("\272       tu Tomek bendze nazwa programu (wpisz ja)     \272\n");
/* p2c: baza.pas, line 194: Note: Characters >= 128 encountered [281] */
  printf(
    "\314\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\271\n");
/* p2c: baza.pas, line 195: Note: Characters >= 128 encountered [281] */
  printf("\272   1 - szukanie abonamneta                           \272\n");
/* p2c: baza.pas, line 196: Note: Characters >= 128 encountered [281] */
  printf("\272   2 - wpisywanie danych abonamneta                  \272\n");
/* p2c: baza.pas, line 197: Note: Characters >= 128 encountered [281] */
  printf("\272   3 - kasowanie danych abonamneta                   \272\n");
/* p2c: baza.pas, line 198: Note: Characters >= 128 encountered [281] */
  printf("\272   4 - zpisanie do pliku                             \272\n");
/* p2c: baza.pas, line 199: Note: Characters >= 128 encountered [281] */
  printf("\272   5 - wczytanie z pliku                             \272\n");
/* p2c: baza.pas, line 200: Note: Characters >= 128 encountered [281] */
  printf("\272   6 - wyswietlenie wszystkich komorkek bazy         \272\n");
/* p2c: baza.pas, line 201: Note: Characters >= 128 encountered [281] */
  printf("\272   7 - wyswietlenie wolnych komorkek bazy            \272\n");
/* p2c: baza.pas, line 202: Note: Characters >= 128 encountered [281] */
  printf("\272   0 - wyjscie z programu                            \272\n");
/* p2c: baza.pas, line 203: Note: Characters >= 128 encountered [281] */
  printf(
    "\310\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\274\n");
  gotoxy(2, 13);
  printf("Twoj wybor ??");
  scanf("%ld%*[^\n]", &y);
  getchar();
  switch (y) {

  case 1:
    SZUKAJ();
    break;

  case 2:
    WPISZ();
    break;

  case 3:
    KASUJ();
    break;

  case 4:
    zapisz_do_pliku();
    break;

  case 5:
    odczytaj_z_pliku();
    break;

  case 6:
    status();
    break;

  case 0:
    koniec = true;
    break;
  }
}


main(argc, argv)
int argc;
Char *argv[];
{
  PASCAL_MAIN(argc, argv);
  PLIK = NULL;
  clrscr();
/* p2c: baza.pas, line 221:
 * Note: Opening a file whose name contains a ':' [177] */
/* p2c: baza.pas, line 221: Warning:
 * Don't know how to ASSIGN to a non-explicit file variable [207] */
  assign(PLIK, "C:\\ABONAMEN.DAT");
  do {
    MENU();
  } while (koniec != true);

  if (PLIK != NULL)
    fclose(PLIK);
  exit(EXIT_SUCCESS);
}



/* End. */