全屏幕编辑软件的编写(C语言)04
2008-03-08 12:44:19 来源:WEB开发网核心提示: ss[ss_x][yy]=z2; /* 将字符读入编辑数组 */ y++; /* 屏幕光标后移一列 */ yy++; /* 后移一字节 */ ser++; /* 字序号增 1 */ if(QQ) { /* 如为全角制表符 */ qq=0; /* 表格线标志变量置 0 */ cc.ch[0]=
ss[ss_x][yy]=z2; /* 将字符读入编辑数组 */
y++; /* 屏幕光标后移一列 */
yy++; /* 后移一字节 */
ser++; /* 字序号增 1 */
if(QQ) { /* 如为全角制表符 */
qq=0; /* 表格线标志变量置 0 */
cc.ch[0]=two; /* 暂存在two中的表格线第二字节放入cc.ch[0] */
goto AA; /* 返回 AA,进行排版,并写入第二字节 */
}
if(vs(yy-1)) return; /* 如为前半字节,再读入一字节 */
if(y>=ZS) { /* 如到本屏行尾 */
m++; /* 后移一屏 */
disp_t(); /* 显示后一屏 */
}
else disp(ss_x,x); /* 否则重显本行 */
}
} int punc1(unsigned char z) /* 检查是否是指定的半角标点或空格 */
{
if(z==33z==41z==44z==46z==58z==59z==63z==93z==32)
return 1; /* 如是指定标点,返回 1 */
else return 0; /* 否则返回 0 */
} int punc2(unsigned char z1,unsigned char z2) /* 检查是否是指定的全角标点 */
{
if((z1==161&&(z2==162z2==163z2==164z2==175z2==177z2==179
z2==181z2==183z2==185z2==187z2==189z2==191z2==195))
(z1==163&&(z2==161z2==169z2==172z2==174z2==186z2==187
z2==191z2==221))) return 1; /* 如是,返回 1 */
else return 0; /* 否则返回 0 */
}
make_tab() /* 形成表格线 */
{
if(tab && cc.ch[1]>70 && cc.ch[1]<82 && cc.ch[0]) {
/* 如为表格线状态,并是小键盘的数字键 */
switch(cc.ch[0]) { /* 判定按键低位码 */
case 45: two=0xA5; /* 如为“-”键,定“━”的第二字节 */
break; /* 跳出开关语句 */
case 43: two=0xEF; /* 如为“+”键,定“╋”的第二字节 */
break; /* 跳出开关语句 */
case 49: two=0xBB; /* 如为“1”键,定“┗”的第二字节 */
break; /* 跳出开关语句 */
case 50: two=0xDF; /* 如为“2”键,定“┻”的第二字节 */
break; /* 跳出开关语句 */
case 51: two=0xBF; /* 如为“3”键,定“┛”的第二字节 */
break; /* 跳出开关语句 */
case 52: two=0xC7; /* 如为“4”键,定“┣”的第二字节 */
break; /* 跳出开关语句 */
case 53: two=0xA7; /* 如为“5”键,定“┃”的第二字节 */
break; /* 跳出开关语句 */
case 54: two=0xCF; /* 如为“6”键,定“┫”的第二字节 */
break; /* 跳出开关语句 */
case 55: two=0xB3; /* 如为“7”键,定“┏”的第二字节 */
break; /* 跳出开关语句 */
case 56: two=0xD7; /* 如为“8”键,定“┳”的第二字节 */
break; /* 跳出开关语句 */
case 57: two=0xB7; /* 如为“9”键,定“┓”的第二字节 */
break; /* 跳出开关
y++; /* 屏幕光标后移一列 */
yy++; /* 后移一字节 */
ser++; /* 字序号增 1 */
if(QQ) { /* 如为全角制表符 */
qq=0; /* 表格线标志变量置 0 */
cc.ch[0]=two; /* 暂存在two中的表格线第二字节放入cc.ch[0] */
goto AA; /* 返回 AA,进行排版,并写入第二字节 */
}
if(vs(yy-1)) return; /* 如为前半字节,再读入一字节 */
if(y>=ZS) { /* 如到本屏行尾 */
m++; /* 后移一屏 */
disp_t(); /* 显示后一屏 */
}
else disp(ss_x,x); /* 否则重显本行 */
}
} int punc1(unsigned char z) /* 检查是否是指定的半角标点或空格 */
{
if(z==33z==41z==44z==46z==58z==59z==63z==93z==32)
return 1; /* 如是指定标点,返回 1 */
else return 0; /* 否则返回 0 */
} int punc2(unsigned char z1,unsigned char z2) /* 检查是否是指定的全角标点 */
{
if((z1==161&&(z2==162z2==163z2==164z2==175z2==177z2==179
z2==181z2==183z2==185z2==187z2==189z2==191z2==195))
(z1==163&&(z2==161z2==169z2==172z2==174z2==186z2==187
z2==191z2==221))) return 1; /* 如是,返回 1 */
else return 0; /* 否则返回 0 */
}
make_tab() /* 形成表格线 */
{
if(tab && cc.ch[1]>70 && cc.ch[1]<82 && cc.ch[0]) {
/* 如为表格线状态,并是小键盘的数字键 */
switch(cc.ch[0]) { /* 判定按键低位码 */
case 45: two=0xA5; /* 如为“-”键,定“━”的第二字节 */
break; /* 跳出开关语句 */
case 43: two=0xEF; /* 如为“+”键,定“╋”的第二字节 */
break; /* 跳出开关语句 */
case 49: two=0xBB; /* 如为“1”键,定“┗”的第二字节 */
break; /* 跳出开关语句 */
case 50: two=0xDF; /* 如为“2”键,定“┻”的第二字节 */
break; /* 跳出开关语句 */
case 51: two=0xBF; /* 如为“3”键,定“┛”的第二字节 */
break; /* 跳出开关语句 */
case 52: two=0xC7; /* 如为“4”键,定“┣”的第二字节 */
break; /* 跳出开关语句 */
case 53: two=0xA7; /* 如为“5”键,定“┃”的第二字节 */
break; /* 跳出开关语句 */
case 54: two=0xCF; /* 如为“6”键,定“┫”的第二字节 */
break; /* 跳出开关语句 */
case 55: two=0xB3; /* 如为“7”键,定“┏”的第二字节 */
break; /* 跳出开关语句 */
case 56: two=0xD7; /* 如为“8”键,定“┳”的第二字节 */
break; /* 跳出开关语句 */
case 57: two=0xB7; /* 如为“9”键,定“┓”的第二字节 */
break; /* 跳出开关
更多精彩
赞助商链接