Val编程-读取汉字

Val编程-读取汉字

     Val编程中,对于汉字的读取不是很友好,利用fileget直接读取记事本产生的文件字符串会导致乱码的产生。因为Val只支持使用utf-8进行编码,因此读取的文本需要进行utf-8格式转换。
     在GBK中,汉字占两个字节。并且每个字节都大于128.可以通过直接读取位来进行转换来读取汉字。通过读取的两个数字来获得汉字的ASCII码。
     而在utf-8中具有自己的编码方式。模拟器中读取的是用GBK编码,而显示的是UTF-8.

 

                        

utf-8格式说明:
    这是为传输而设计的编码,其系列还有UTF-7和UTF-16

    其中UTF-16和Unicode编码大致一样, UTF-8就是以8位为单元对Unicode进行编码。从Unicode到UTF-8的编码方式如下:
     Unicode编码(16进制)      UTF-8 字节流(二进制) 
     0000 - 007F         0xxxxxxx 
     0080 - 07FF         110xxxxx 10xxxxxx 
     0800 - FFFF         1110xxxx 10xxxxxx 10xxxxxx 
  例如“汉”字的Unicode编码是6C49。6C49在0800-FFFF之间,所以肯定要用3字节模板了:1110xxxx 10xxxxxx 10xxxxxx。将6C49写成二进制是:0110 110001 001001, 用这个比特流依次代替模板中的x,得到:11100110 10110001 10001001,即E6 B1 89。

推荐使用UltraEdit进行编辑。

通过读取汉字文本实现效果:

代码:

begin//屏幕预处理cls()userPage()setTextMode(0)//关闭所有文件。  所有打开的文件都分配一个文件符,从0~9,最多10个。一个文件如果已经打开,再次打开则会出错。这个文件符是全局的,如果打开后没有关闭,即使应用程序关闭,在内存中关闭,文件也是处在打开状态。因此建议每个文件打开是互斥事件,文件打开之前把所有的文件符都关闭。</span>文件指示符必须是全局变量,不能为局部变量$fileClose(0)$fileClose(1)$fileClose(2)$fileClose(3)$fileClose(4)$fileClose(5)$fileClose(6)$fileClose(7)$fileClose(8)$fileClose(9)//检查文件是否存在if !$fileExists("Disk://Text.txt")popUpMsg("文件不存在!")returnendIf//打开文件nFileID=$fileOpen("Disk://Text.txt","r")if nFileID<0 or nFileID>9popUpMsg("文件打开错误!")returnendIf//读取文件resize(sData,1,1)while $fileGet(nFileID,l_sBuff,1)==1if l_sBuff!=""sData[size(sData)-1]=l_sBuffappend(sData)endIfendWhile//去掉最后一行空白resize(sData,1,size(sData)-1)//  关闭文件$fileClose(0)$fileClose(1)$fileClose(2)$fileClose(3)$fileClose(4)$fileClose(5)$fileClose(6)$fileClose(7)$fileClose(8)$fileClose(9)//显示文件title("诗歌鉴赏")//诗歌名for l_nIndex=0 to 1gotoxy((39-getDisplayLen(sData[l_nIndex]))/2,l_nIndex)put(sData[l_nIndex])endFor//轮流显示while truefor l_nIndex=0 to 9gotoxy(0,l_nIndex+3)l_nNum=l_nNum+1if l_nNum==size(sData)l_nNum=2endIfl_nNum=max(2,l_nNum)put(left(sData[l_nNum]+"                                                        ",35))endFor delay(0.4)endWhileend<span style="font-size:12px;">
</span>


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/255356.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【pyqt5学习】——菜单栏(QMenu())、工具栏QToolBar学习

目录 1、菜单栏&#xff08;QMenu()&#xff09;——一般在窗口顶部 1&#xff09;创建菜单栏步骤 2&#xff09;信号与方法 3&#xff09;实操 2、工具栏——一般在菜单栏下方 1&#xff09;创建步骤 2&#xff09;方法与信号 信号&#xff1a; 方法&#xff1a; 3&am…

【pyqt5学习】——利用Pyqt5连接打印机(QtPrintSupport、QPrintDialog、QPageSetupDialog)

目录 1、利用QtPrintSupport直接连接打印机——不常用 1&#xff09;基本知识 2&#xff09;完整代码案例 3&#xff09;结果 2、 打印对话框QPrintDialog、打印设置对话框QPageSetupDialog 1&#xff09;弹出打印设置对话框 2&#xff09;弹出打印对话框 注&#xff1a…

Exchange Server 2016管理系列课件39.新建本地移动请求

场景通过新建本地移动请求&#xff0c;可以很方便的将用户邮箱从一个数据库迁移到另外一个数据库。1&#xff09;跨平台邮件迁移&#xff1b;&#xff08;低exchange迁移到高版本exchange&#xff09;2&#xff09;数据库平衡与优化&#xff1b;&#xff08;企业当中&#xff0…

【数据库学习】——【汇总】MySQL数据库下载与安装(Msi文件安装和免安装版本)、Navicat下载与安装

目录 1、MySQL数据库下载与安装 1&#xff09;MySQL数据库下载 MySQL官网 MySQL数据库下载 2&#xff09;MySQL 通过msi文件安装 3&#xff09;MySQL免安装版本使用 1&#xff09;将免安装包移动到安装的文件夹位置&#xff1b; 2&#xff09;新建data文件夹 3&#xff…

【数据库学习】——纠错:mysql Authentication plugin ‘caching_sha2_password‘ is not supported

目录 1、环境介绍 2、问题描述 3、原因分析 4、 解决方案 1&#xff09;方法一&#xff1a;直接改成mysql_native_password验证方式 2&#xff09;方案二&#xff1a; 利用sql命令将验证机制修改 ① 打开命令行窗口——cmd ② 登录mysql数据库 ③ 查看不同用户名的身份…

xcode中用pods管理第三方库转

安装pods &#xff1a;http://www.cnblogs.com/wangluochong/p/5567082.html 史上最详细的CocoaPods安装教程 --------------------------------------------- 第一步&#xff1a;Cmmand&#xff0b;空格&#xff0c;搜索"终端"&#xff0c;使用cd命令进入到我们项目…

Val编程-界面编程

由于示教盒是一个黑白的分辨率为&#xff08;14*40&#xff09;的液晶屏&#xff0c;用户交互不是很好&#xff0c;界面不友好。而且没有鼠标导航与触摸屏。 界面编程函数 1.void cls() 2.void title(string sText) 3.void put(string sText), void put(num nValue) 4.void put…

【机器学习笔记四】分类算法 - 逻辑回归

参考资料 【1】 Spark MLlib 机器学习实践 【2】 统计学习方法 1、Logistic分布 设X是连续随机变量&#xff0c;X服从Logistic分布是指X具有下列分布函数和密度函数 &#xff0c;。其中u为位置参数&#xff0c;γ为形状参数。如下图&#xff1a; 分布函数以(u,1/2)为中心…

FPFH+ICP点云配准

A, UniformSampling降噪B, ISS计算关键点, FPFH特征在FeatureCloud::setInputCloud中读入点云,并调用processInput进行处理:processInput处理包括: 1, computeSurfaceNormals () 使用NormalEstimation计算得到表面法向量2, computeLocalFeatures () FPFHEstimationKdTreeIS…

【python 学习】——pycharm终端解释器和Python解释器配置

目录 1、pycharm终端运行的时候前面带有PS&#xff0c;是什么意思&#xff0c;怎么变成cmd? 1&#xff09;File——settings 2&#xff09;tools——terminal——shellPath 2、pycharm怎么切换不同的Python解释器&#xff1f; 1&#xff09;File——settings 2&#xff09…

Plotclock

调试程序&#xff0c;运行调试程序&#xff0c;舵机会移动两只悬臂分别停留在一只水平另一只垂直的位置上。如果差距非常大&#xff0c;可拆下悬臂调节&#xff0c;如果比较接近了&#xff0c;就修改程序第3~6行的四个参数 SERVOFAKTORLEFT 左悬臂垂直位置&#xff0c;SERVOFAK…

【数据库学习】——Python实现mysql数据库SQL文件生成和导入

目录 1、将mysql数据导出到SQL文件中&#xff08;数据库存在的情况&#xff09; 2、将现有的sql文件数据导入到数据库中&#xff08;前提数据库存在&#xff09; 3、利用Navicat导出SQL文件和导入SQL文件 1&#xff09;从数据库导出SQL文件 2&#xff09;导入SQL文件到数据…

【重磅】Google官方推出了免费的、中文的、机器学习初级课程。

2019独角兽企业重金招聘Python工程师标准>>> 机器学习(Machine Learning, ML)是一门多领域交叉学科&#xff0c;涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。它是人工智能的核心&#xff0c;是使计算机具有智能的根本途径&#xff0c;其应用遍及…

市面上常见arduino版本比较

http://arduino.cc/en/Main/Products 详细链接 如果是入门&#xff0c;那么首选UNO R3&#xff0c;方便又省心 如果不是特殊要求&#xff0c;不建议购买2560&#xff0c;因为贵啊 nano是块很好的控制器&#xff0c;买不买随你咯 非特殊场合使用不建…

HALCON示例程序autobahn高速公路车道识别程序剖析

HALCON示例程序autobahn高速公路车道识别程序剖析 小哥哥小姐姐觉得有用点个赞呗&#xff01; 示例程序源码&#xff08;加注释&#xff09; *关闭halcon窗口的实时更新 dev_update_window (‘off’) *关闭halcon图形窗口 dev_close_window () *打开图形窗口 *dev_open_win…

CSS中的未定义行为,浏览器的差异(一)

今天看了张鑫旭大佬的新书的有感吧&#xff0c;记录一下。 Web标准未对一些场景做出明确规范&#xff0c;所以各大浏览器厂家只能根据自己的理解和喜好去实现&#xff0c;表现差异不是浏览器的bug&#xff0c;用计算机领域的术语描述为"未定义行为"。 比如一个例子&a…

Atmel megaAVR控制器 串行引导Bootloader

开始研究下Bootloader的代码结构 2015.1.9 粗略看了下&#xff0c;Bootloader主要做了下板卡的初始化 -----> 然后进入for( ; ; )死循环 -----> 循环刷新串口数据 -----> 根据数据做出不同应答 -----> 如果有写数据&#xff0c;则将数据存入buffer …

MapReduce入门2-流量监控

3、流量监控汇总&#xff08;使用LongWritable实现&#xff09; hdfs文件路径&#xff1a;/tmp/flow.txt 查看文件内容&#xff1a; 13770759991 50 100 25 400 13770759991 800 600 500 100 13770759992 400 300 250 1400 13770759992 800 1200 600 900字符串含义&#xff1a;…

【fiddler学习问题记录】——手机端证书下载页打不开、无法将此证书安装(已解决)

目录 1、手机端下载页打不开 解决方法1&#xff09;电脑端——将网络设置成公用&#xff08;亲测有效&#xff09; 解决方法2&#xff09;手机端将fiddler设置为信任应用&#xff0c;不被拦截 &#xff08;未试&#xff09; 2、无法将此证书安装 方法一&#xff1a;修改证书…

舵机的原理和控制

控制信号由接收机的通道进入信号调制芯片&#xff0c;获得直流偏置电压。它内部有一个基准电路&#xff0c;产生周期为20ms&#xff0c;宽度为1.5ms的基准信号&#xff0c;将获得的直流偏置电压与电位器的电压比较&#xff0c;获得电压差输出。最后&#xff0c;电压差的正负输出…