Практика программирования (Бейсик, Си, Паскаль)



         

Задачи, советы и ответы - часть 2


FOR J=128 TO 175: Т01251{J)=J+64: NEXT J

' Заменяем все символы псевдографики знаком "+"

FOR J=176 TO 223: Т01251(J)=ASC("+"): NEXT J

' Заменяем одинарную вертикальную черту

t01251(179)=ASC("|")

' Заменяем двойную вертикальную черту

t01251(186)=ASC("|")

' Заменяем одинарную горизонтальную черту

t01251(196)=ASC("-")

' Заменяем двойную горизонтальную черту

t01251(205)=ASC("=")

' Увеличиваем на 16 коды букв от "р" до "я"

FOR J=224 TO 239: Т01251(J)=J+16: NEXT J

t01251(240)=168: ' Заменяем код буквы "ё"

t0125К241) =184: ' Заменяем код буквы "Ё"

END SUB

Программа 7_05.с

#include <stdio.h>

#include <conio.h>

#include <string.h>

void to_win(void);

unsigned char to!251[256];

main(int narg, char **argv) {

FILE *fin,*fout;

unsigned char str[80],source[80];

int j,len;

if(narg==2) strcpy(source,argv[l]);

else {

printf("\n Задайте имя исходного файла - ");

scanf("%s",source); }

to_win();

fin=fopen(source,"rt");

fout=fopen("tmpwin.txt","wt");

while (Ifeof(fin)) {

fgets(str,80,fin);

len=strlen(str);

for(j=0; j<len; j++)

str[j]=to!251[str[j]];

fputs(str,fout);

}

fcloseall() ;

}

/*------------------------------------*/

void to_win(void) {

/* Формирование словаря перекодировки из MS-DOS в Windows */

int i ; /* Сохраняем первую половину таблицы ASCII */

for (i=0; i<128; i++) to1251[i]=i;

/* Увеличиваем на 64 коды букв от "А" до "n" */

for(1=128; i<176; i++)

to1251[i]=i+64;

/* Заменяем все символы псевдографики знаком "+" */

for(1=176; i<224; i++) to1251 [!] = ' + ';

и

/* Заменяем одинарную вертикальную черту */

to1251[179]='|'; /* Заменяем двойную вертикальную черту */

to1251[186]='|'; /* Заменяем одинарную горизонтальную черту */

to1251[196]='-'; /* Заменяем двойную горизонтальную черту */




Содержание  Назад  Вперед