Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- unsigned char ctob(char *tab) {
- unsigned char wynik=0;
- for (int i = 0; i < 4; i++) {
- switch (tab[i])
- {
- case 'A':
- wynik <<= 2;
- break;
- case 'C':
- wynik <<= 2;
- wynik |= 1;
- break;
- case 'G':
- wynik <<= 2;
- wynik |= 2;
- break;
- case 'T':
- wynik <<= 2;
- wynik |= 3;
- break;
- default:
- break;
- }
- }
- return wynik;
- }
- void btoc(unsigned char wynik, char *wynik2) {
- int Tp[] = { 6, 4, 2, 0 };
- char Tw[] = { 'A', 'C', 'G', 'T' };
- for (int i = 0; i < 4; i++) {
- wynik2[i] = Tw[(wynik >> Tp[i]) & 3];
- }
- wynik2[4] = '\n';
- }
- void Z7_14() {
- FILE *I;
- FILE *O;
- char plik1[16];
- char plik2[16];
- char tab[5];
- unsigned char wynik = 0;
- int wyb;
- printf_s("Podaj nazwe pliku wejscia \n");
- scanf_s("%s", &plik1, 15);
- printf_s("Podaj nazwe pliku wyjsciowego \n");
- scanf_s("%s", &plik2, 15);
- printf_s("Wybierz opcje: \n");
- printf_s("1 - Koduj \n");
- printf_s("2 - Dekoduj \n");
- scanf_s("%d", &wyb);
- if (wyb == 1) { // kodowanie
- fopen_s(&I, plik1, "rt");
- fopen_s(&O, plik2, "wb");
- fscanf_s(I, "%s", tab, 5);
- while (feof(I) == 0)
- {
- wynik = ctob(tab);
- fputc(wynik, O);
- fscanf_s(I, "%s", tab, 5);
- };
- }
- else if (wyb == 2) { // dekodowanie
- fopen_s(&I, plik1, "rb");
- fopen_s(&O, plik2, "wt");
- wynik = fgetc(I);
- while (feof(I) == 0)
- {
- btoc(wynik, tab);
- fprintf(O, "%s", tab);
- wynik = fgetc(I);
- };
- }
- else {
- printf_s("Nie ma takiej opcji");
- }
- fclose(I);
- fclose(O);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement