『原创』一个基于Win CE 5.0的Txt文件阅读器

最近,拿到一台亲戚送的GPS导航仪,其系统是基于WinCE5.0的,所以我觉得可以写点小程序上去,上网一搜,还附带破解方法,把GPS破解后就变成一台屏幕超大的PDA了,于是我想用它看电子书,无奈,WinCE的软件少之又少,而且下载到的txt阅读软件居然不能正常缩放字体,实在不爽,于是我打算自己写个简单的阅读器,下面是我的开发过程:

 

开发工具:Visual Studio 2008

开发语言:c#,还是这个好用

开发平台:Windows CE设备

开发过程:

首先我们先打开vs,然后建立一个c#语言的智能设备项目,记得平台选择.net cf 3.5,你也可以用2.0,这里只是方便我的叙述而已,其是一样的!

然后拖三个按钮,一个openFileDialog,一个textBox,和一个NumericUpDown控件到窗体上,如下图:

具体的设置你们可以下载参照源代码中的进行设置,这里不再赘述了。

然后添加如下代码给Open按钮:

 

OpenBUtton
openFileDialog1.ShowDialog();
            FilePath 
= openFileDialog1.FileName;
            Thread myThread 
= new Thread(new ThreadStart(ReadText));
            myThread.IsBackground 
= true;
            myThread.Start();

 

再在窗体代码中加入如下代码:

这里使用了回调,来启动一个后台线程读取文档。

CallBack
 public Form1()
        {
            InitializeComponent();
            addToText 
= new AddToContentCallBack(AddToTextContent);
         
        }
        
delegate void AddToContentCallBack(string Texts);
        AddToContentCallBack addToText;
        
private void AddToTextContent(string content)
        {
            
if (txtContent.InvokeRequired)
            {
                
this.Invoke(addToText, content);
            }
            
else
            {
                txtContent.Text 
= content;
            }
        }

  

        
private void ReadText()
        {
            StreamReader objReader 
= new StreamReader(FilePath, System.Text.Encoding.Default);
            
string strLine = "";
            
string strLine1 = "";
            ArrayList al 
= new ArrayList();
            
try
            {
               strLine 
= objReader.ReadToEnd();
               
                    
if (strLine != null)
                    {
                        AddToTextContent(strLine);
                    }
            
                
            }
            
catch(Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            
finally
            {
                objReader.Close();
            }
        }
        
private string FilePath;

 

至此,主要功能就完成了,下面再给字体设置按钮Change设置如下代码:

 

Code
int iSize=Convert.ToInt32(numericUpDown1.Value);

            txtContent.Font 
= new Font("Tahoma", iSize, FontStyle.Regular);

 

ok,大功告成!

现在你就可以把这个程序拿到设备上运行了,呵呵,现在唯一的问题是读取速度过慢,不知道是c#的效率问题,还是我的代码问题或者是Wince设备本身的问题。

 这里是项目代码下载:点击下载

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

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

相关文章

ARM Cortex-A系列(A53、A57、A73等)处理器性能分类与对比

在如今这个电子产品泛滥的年代,仅仅靠品牌或是外观已经不足以辨别产品的优劣,其内置的处理器自然也就成为了分辨产品是否高端的标准之一。那么我们今天就不妨好好了解一下近几年来电子产品中较为主流的RAM处理器。 在这之前让我们先简单认识一下处理器的…

.NET 3.5 - DLINQ(LINQ to SQL)之面向对象的添加、查询、更新和删除

步步为营VS 2008 .NET 3.5(8) - DLINQ(LINQ to SQL)之面向对象的添加、查询、更新和删除作者&#xff1a;webabcd介绍以Northwind为示例数据库&#xff0c;DLINQ(LINQ to SQL)之完全面向对象的添加操作、查询操作、更新操作和删除操作示例Sample.aspx <% Page Language&quo…

ARM版本系列及家族成员梳理

ARM公司简介 ARM是Advanced RISC Machines的缩写&#xff0c;它是一家微处理器行业的知名企业&#xff0c;该企业设计了大量高性能、廉价、耗能低的RISC &#xff08;精简指令集&#xff09;处理器。 1985年第一个ARM原型在英国剑桥诞生。 公司的特点是只设计芯片&#xff0c…

tomcat源码阅读之StandardHost和StandardEngine

StandardHost及UML类图&#xff1a; 1、StandardHost类是Host接口的默认实现&#xff1b;其继承自ContainerBase类&#xff0c;说明他也是一个容器类&#xff0c;既然是容器类&#xff0c;那肯定也有管道对象PipeLine和阀门&#xff0c;其基础阀门&#xff08;Basic Valve&…

安防监控产业链全景梳理

安防行业是随着现代社会安全需求应运而生的产业&#xff0c;围绕着视频监控技术的改革创新&#xff0c;行业从“看得见、看得远、看得清到看得懂”&#xff0c;一共经历模拟监控、数字监控、网络高清监控和智能监控4个阶段&#xff0c;每一阶段的突破&#xff0c;都由上游技术的…

Vue项目搭建步骤

一&#xff0e; vue-cli初始化1. 全局安装 vue-cli  npm install --global vue-cli2. 创建一个基于 webpack 模板的新项目  vue init webpack my-project3. 安装依赖  cd my-project  npm install (换源安装: npm install --registry https://registry.npm.taobao.org …

Python tutor 简介

Python tutor 能够直观显示object 引用关系。 网址是 http://www.pythontutor.com/visualize.html 先分享一下我的一个Python tutor&#xff1a; 点我出现神奇&#xff1a; 1&#xff09; 编辑code。 2&#xff09; 运行&#xff0c; 能够看到以下界面。 这个工具是很酷的&…

光学镜头行业发展现状及趋势,智能手机应用领域占比最高

一、光学镜头分类 光学镜头也叫摄像镜头或摄影镜头&#xff0c;简称镜头&#xff0c;其功能就是光学成像。光学镜头是光学成像系统中的必备组件&#xff0c;直接影响到成像质量的好坏&#xff0c;影响算法的实现和效果。从结构来看&#xff0c;光学镜头一般由精密五金、塑胶零…

关于_vmvare workstation装32ubuntu的问题

刚开始启动的时候是黑屏&#xff0c;没有任何反应 1.bios也设置BIOS intel virtual technology 设置了enabled(开启硬件虚拟化:要运行一些操作系统&#xff0c;虚拟化软件和虚拟机&#xff0c;硬件虚拟化就需要启用。大多数情况下&#xff0c;不需要虚拟化技术的操作系统可以正…

360°环视(全景影像)系统发展趋势

360环视系统&#xff0c;系统同时采集车辆四周的影像&#xff0c;经过图像处理单元一系列的智能算法处理&#xff0c;最终形成一幅车辆四周的全景俯视图显示在屏幕上&#xff0c;直观地呈现出车辆所处的位置和周边情况。系统大大地拓展了驾驶员对周围和环境的感知能力&#xff…

数学之路(3)-机器学习(3)-机器学习算法-SVM[7]

SVM是新近出现的强大的数据挖掘工具&#xff0c;它在文本分类、手写文字识别、图像分类、生物序列分析等实际应用中表现出非常好的性能。SVM属于监督学习算法&#xff0c;样本以属性向量的形式提供&#xff0c;所以输入空间是Rn的子集。 图1 如图1所示&#xff0c;SVM的目标是找…

CPU、GPU、FPGA、ASIC等AI芯片特性及对比

1、前言 目前&#xff0c;智能驾驶领域在处理深度学习AI算法方面&#xff0c;主要采用GPU、FPGA 等适合并行计算的通用芯片来实现加速。同时有部分芯片企业开始设计专门用于AI算法的ASIC专用芯片&#xff0c;比如谷歌TPU、地平线BPU等。在智能驾驶产业应用没有大规模兴起和批量…

人工智能Ai芯片层出不穷,GPU、FPGA、ASIC用于人工智能的优势和劣势对比

人工智能&#xff08;AI&#xff09;主要包括三大要素&#xff0c;分别是数据、算法和算力。其中数据是基础&#xff0c;正是因为在实际应用当中的数据量越来越大&#xff0c;使得传统计算方式和硬件难以满足要求&#xff0c;才催生了AI应用的落地。而算法是连接软件、数据、应…

全景视频拼接关键技术

一、原理介绍 图像拼接(Image Stitching)是一种利用实景图像组成全景空间的技术&#xff0c;它将多幅图像拼接成一幅大尺度图像或360度全景图&#xff0c;图像拼接技术涉及到计算机视觉、计算机图形学、数字图像处理以及一些数学工具等技术。图像拼接其基本步骤主要包括以下几…

相关类以及常用方法

1、system&#xff1a;(系统相关类&#xff09; 常用方法&#xff1a; a) : system.arraycopy(制定数组&#xff0c;开始复制的位置&#xff0c;目标数组&#xff0c;开始粘贴的位置&#xff0c;需要复制的长度) 。 将指定源数组中的数组从指定位置复制到目标数组的指定位…

2021-11-15

本文将重点围绕国产CPU的发展历程与当前产业链各领军企业的布局情况作详尽解读&#xff08;并包含特大号独家整理的最新进展&#xff09;&#xff0c;具体如下&#xff1a; 1、国产CPU发展历程回溯 2、飞腾&#xff1a;PK生态的主导者 3、鲲鹏&#xff1a;快速崛起的领导者 …

关于在ubuntu下配置AMD显卡驱动的总结

同样先卸载先前版本 代码:sudo sh /usr/share/ati/fglrx-uninstall.sh代码:sudo apt-get remove --purge fglrx fglrx_* fglrx-amdcccle* fglrx-dev*重启 代码:sudo reboot下载驱动&#xff0c;右边直接有ubuntu32位和64位驱动链接&#xff1a;http://support.amd.com/en-us/do…

计算机结构简图

北桥,南桥是主板上芯片组中最重要的两块了.它们都是总线控制器.他们是总线控制芯片.相对的来讲,北桥要比南桥更加重要.北桥连接系统总线,担负着cpu访问内存的重任.同时连接这AGP插口,控制PCI总线,割断了系统总线和局部总线,在这一段上速度是最快的.南桥不和CPU连接通常用来作I/…

Servlet 与 Ajax 交互一直报status=parsererror

Servlet 与 Ajax 交互一直报statusparsererror 原因&#xff1a;servlet 返回的数据不是 Json 格式 1、JS代码为&#xff1a; 1 var jsonStr {clusterNum:2,iterationNum:3,runTimes:4};2 $.ajax({3 type: "post",4 //http://172.2…

25LINQ拾遗及实例

投影 □ 遍历数组索引&#xff0c;Select获取 int[] indexes {0, 2}; string[] strs {"a", "b", "c", "d"}; var result from i in indexes select strs[i]; foreach (string str in result) { Console.Write(str " &quo…