如何用记事本编程

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用记事本编程相关的知识,希望对你有一定的参考价值。


那里有下简单的编程程序,和代码资源

  跟我学做记事本-编程实例
  用VB做一个记事本实在不很复杂,我们完全可以通过向导来很方便地做出来。但本文只打算讨论用手动方法制作记事本,旨在向VB初学者展示:学VB原来是如此容易!
  通过阅读、研究本文并按本文所述进行尝试,初学者将学到很多东西,如怎样使用RichText控件来打开和保存文件,怎样制作菜单、工具栏和状态栏以及如何对其编写代码等。

  第一章 让我们的记事本马上运行

  急于求成是初学者共有的心愿。那好,请按如下三个步骤做,我们的愿望立即就可以实现!

  步骤一:绘制界面。

  新建一个标准EXE工程,将其Caption属性改为“超级记事本”,点击Icon属性给它找个合适的Icon图标。单击菜单“工程”-“部件”,在弹出的“部件”对话框里找到Microsoft

  RichText Box 6.0和公共对话框Microsoft Common Dialog 6.0并选中它们,单击“确定”按钮。这时左边的工具栏上出现了我们刚才新添的两个控件了。在窗体上绘制RichText

  Box和Commn Dialog,其中RichText Box的大小和位置可不用理睬,我们将在代码中处理它,当然,有必要把它的ScrollBar属性设为2-rtfVertical,这样在打开和编辑文件时垂直滚动条才可用。

  步骤二:编辑菜单。

  按Ctrl+E调出菜单编辑器,我们来做如下几个菜单:

  一.文件菜单:

  文件(第一层) mnuFile

  新建(第二层) mnuNew

  打开(第二层) mnuOpen

  保存(第二层) mnuSave

  - (第二层) mnuFileSep (分隔线)

  退出(第二层) mnuExit

  二.编辑菜单:

  编辑(第一层) mnuEdit

  复制(第二层) mnuCopy

  剪切(第二层) mnuCut

  粘贴(第二层) mnuPaste

  - (第二层) mnuEditSep (分隔线)

  全选(第二层) mnuSelecAll

  三.搜索菜单:

  搜索(第一层) mnuSearch

  查找(第二层) mnuFind

  查找下一个(第二层) mnuFindOn

  四.帮助菜单:

  帮助(第一层) mnuHelp

  使用说明(第二层) mnuUsage

  关于(第二层) mnuAbout

  (注:各菜单项的快捷键请自行设置)

  好了,其它的菜单项以后再根据需要添加。现在进入:

  步骤三:编写代码。

  '声明查找变量

  Dim sFind As String

  '声明文件类型

  Dim FileType, FiType As String

  '初始化程序

  Private Sub Form_Load()

  '设置程序启动时的大小

  Me.Height = 6000

  Me.Width = 9000

  End Sub

  '设置编辑框的位置和大小

  Private Sub Form_Resize()

  On Error Resume Next '出错处理

  RichTextBox1.Top=20

  RichTextBox1.Left=20

  RichTextBox1.Height = ScaleHeight-40

  RichTextBox1.Width = ScaleWidth-40

  End Sub

  '新建文件

  Private Sub mnuNew_Click()

  RichTextBox1.Text = "" '清空文本框

  FileName = "未命名"

  Me.Caption = FileName

  End Sub

  '打开文件

  Private Sub mnuOpen_Click()

  CommonDialog1.Filter = "文本文档(*.txt)|*.txt|RTF文档(*.rtf)|*.rtf|所有文件(*.*)|*.*"

  CommonDialog1.ShowOpen

  RichTextBox1.Text = "" '清空文本框

  FileName = CommonDialog1.FileName

  RichTextBox1.LoadFile FileName

  Me.Caption = "超级记事本:" & FileName

  End Sub

  '保存文件

  Private Sub mnuSave_Click()

  CommonDialog1.Filter = "文本文档(*.txt)|*.txt|RTF文档(*.rtf)|*.rtf|所有文件(*.*)|*.*"

  CommonDialog1.ShowSave

  FileType = CommonDialog1.FileTitle

  FiType = LCase(Right(FileType, 3))

  FileName = CommonDialog1.FileName

  Select Case FiType

  Case "txt"

  RichTextBox1.SaveFile FileName, rtfText

  Case "rtf"

  RichTextBox1.SaveFile FileName, rtfRTF

  Case "*.*"

  RichTextBox1.SaveFile FileName

  End Select

  Me.Caption = "超级记事本:" & FileName

  End Sub

  '退出

  Private Sub mnuExit_Click()

  End

  End Sub

  '复制

  Private Sub mnuCopy_Click()

  Clipboard.Clear

  Clipboard.SetText RichTextBox1.SelText

  End Sub

  '剪切

  Private Sub mnuCut_Click()

  Clipboard.Clear

  Clipboard.SetText RichTextBox1.SelText

  RichTextBox1.SelText = ""

  End Sub

  '全选

  Private Sub mnuSelectAll_Click()

  RichTextBox1.SelStart = 0

  RichTextBox1.SelLength = Len(RichTextBox1.Text)

  End Sub

  '粘贴

  Private Sub mnuPaste_Click()

  RichTextBox1.SelText = Clipboard.GetText

  End Sub

  '查找

  Private Sub mnuFind_Click()

  sFind = InputBox("请输入要查找的字、词:", "查找内容",

  sFind)

  RichTextBox1.Find sFind

  End Sub

  '继续查找

  Private Sub mnuFindOn_Click()

  RichTextBox1.SelStart = RichTextBox1.SelStart + RichTextBox1.SelLength + 1

  RichTextBox1.Find sFind, , Len(RichTextBox1)

  End Sub

  '使用说明

  Private Sub mnuReadme_Click()

  On Error GoTo handler

  RichTextBox1.LoadFile "Readme.txt", rtfText '请写好Readme.txt文件并存入程序所在文件夹中

  Me.Caption = "超级记事本:" & "使用说明"

  Exit Sub

  handler:

  MsgBox "使用说明文档可能已经被移除,请与作者联系。",

  vbOKOnly, " 错误信息"

  End Sub

  '关于

  Private Sub mnuAbout_Click()

  MsgBox "超级记事本 Ver1.0 版权所有(C) 2001 土人",vbOKOnly,"关于"

  End Sub

  '设置弹出式菜单(即在编辑框中单击鼠标右键时弹出的动态菜单)

  Private Sub RichTextBox1_MouseDown(Button As Integer, Shift As Integer, X As

  Single, Y As Single)

  If Button = 2 Then

  PopupMenu mnuEdit, vbPopupMenuLeftAlign

  Else

  Exit Sub

  End If

  End Sub

  '防止在切换输入法时字体自变(感谢王必成先生提供此方案)

  Private Sub RichTextBox1_KeyUp(KeyCode As Integer, Shift As Integer)

  If KeyCode = vbKeySpace Then

  RichTextBox1.SelFontName = CommonDialog1.FontName

  End If

  End Sub

  至此,我们的记事本可以编译使用了。点击菜单“文件”-“生成XXX.EXE”,回到桌面运行我们的记事本看看,是不是颇有成就感?

  当然,这样的记事本还比较粗糙,我们还需要做些工作,请看下一章。

  第二章 美化程序界面

  多数字处理软件都有工具栏和状态栏。工具栏和状态栏除了能美化我们的程序使其更具有专业性质外,还给用户带来操作上的便利。现在我们就来做一做这两样东西。

  一.工具栏

  (一)制作工具栏

  单击“工程”-“部件”,选中Microsoft Windows Common Control 6.0并确定。这时,我们要用到的控件就出现在左边的工具栏上了。

  要做工具栏,首先需要一个叫ImageList的控件来装载图像。在程序界面上添加它,然后右键单击此控件,左键单击“属性”,弹出“属性页”对话框的“图像”,再单击“插入图片”就可以一次性装载图片了(如不满意,以后还可以添加)。图片可在C:Microsoft

  Visual StudioCommonGraphicsBitmapsTlBr_W95下选择(这里假设你的VB安装在C盘下)。注意了:在插入图片时给每一张图片注明关键字,以便在引用图片时不至于混乱。如插入“新建”的图片,我们在“关键字”栏注明“New”。

  图片有了,接下来在程序界面添加工具栏(ToolBar)。添加后工具栏就出现在菜单下面,右键单击它,选择“属性”,在弹出的“属性页”对话框中的“通用”项作些设置,主要如下两项:

  1.“图像列表”:选择ImageList1

  2.“样式”:根据喜爱选择1-trbStandard或者2-trbFlat

  继续点击“属性页”的“按钮”选项,插入若干按钮。按钮有多种样式,请根据需要设置。这里请一定注意:每一个与用户操作有关的按钮都必须注明关键字、装载图片,如“新建”按钮,在“关键字”项注明“新建”,在“图像”项键入“New”(即ImageList1中的图片关键字),需要的话还可以在“工具提示文本”项填入适当的提示语。

  (二)编写工具栏的按钮代码

  工具栏按钮的代码编辑很简单,可以按照下面的格式去编写:

  Private Sub ToolBar1_ButtonClick(ByVal Button As MSComctlLib.Button)

  On Error Resume Next '出错处理

  Select Case Button.Key '按关键字选择

  Case "新建"

  mnuNew_Click '等于菜单项“新建”被单击

  Case "打开" '等于菜单项“打开”被单击

  mnuOpen_Click

  '......(继续编写其它按钮的代码)

  End Select

  End Sub

  完成后试运行一下我们的程序,我们发现,有了工具栏之后,程序变得漂亮多了,只是有一个问题:打开一个较长的文档后,编辑框的下拉滚动条向上的箭头不见了。原因是:工具条占用一定的空间。解决方法:将“设置编辑框的位置和大小”中的RichTextBox1.Top

  = 20 和 RichTextBox1.Height = Me.ScaleHeight - 40分别改为RichTextBox1.Top =

  380,RichTextBox1.Height = Me.ScaleHeight - 400即可。

  二.状态栏

  (一)制作状态栏

  状态栏的英文名字叫StatusBar,在窗体上添加它后会默认出现在窗体的最下方。用鼠标右键点击它,调出“属性页”对话框,单击“窗格”项,插入一些窗格,可以将各个窗格的“样式”设置为:

  0-sbrText 显示文本,需编写代码

  1-sbrCaps 显示大小写状态,无需编程

  2-sbrNum 显示NumLock键开关状态,无需编程

  3-sbrIns 显示Insert键状态,无需编程

  4-sbrScr1

  5-sbrTime 显示时间,不编程时时间不会随系统时钟变化

  6-sbrDate 显示日期,无需编程

  注意:加进状态栏后需将Form_Resze中的RichTextBox1.Height =

  Me.ScaleHeight - 400改为RichTextBox1.Height = Me.ScaleHeight - 600。

  (二)状态栏根据其“样式”属性决定用不用编写代码(如上文所述)。下面举些例子,读者可以认真揣摩,从而达到举一反三的效果。

  例一:用户选取了“新建”后,让第一个窗格显示:“目前状态:正在打开文件《……》”。请将下面代码写进“打开”菜单里面:

  StatusBar1.Panels(1).Text = "目前状态:正在打开文件"

  & "《" &CommonDialog1.FileTitle & "》"

  例二:让第三个窗格显示时间并让时间跟随系统时钟变化。

  首先,给程序加一个Timer控件,将其Interval属性设为1000。然后:

  在Form_Load过程加入:StatusBar1.Panels(1).Text = Time;然后给Timer控件编写代码:

  Private Sub Timer1_Timer()

  If StatusBar1.Panels(3).Text <> CStr(Time) Then

  StatusBar1.Panels(3).Text = Time

  End If

  End Sub

  例三:当编辑框的文本发生变化时让第一个窗格显示:“正在编辑文档:文件名”。

  Private Sub RichTextBox1_Chang()

  StatusBar1.Panels(1).Text = "正在编辑文档:" &

  CommonDialog1.FileName

  End Sub

  辛苦了那么久,我们现在已经拥有一个象模象样的记事本了。这个记事本由于用了RichText控件,理论上它能打开和编辑任意大的文档,使用起来的确比Windows自带的记事本方便得多。当然,还有一些其它的功能需要添加和完善,这就靠你慢慢去完成了。
参考技术A 别去考虑用“记事本编程”,个人理解,所谓的“记事本编程”,无非是指两方面的意思:
其一,指所写的程序非常简单、也很短。比如一些脚本代码、批处理代码等,没有很复杂的流程等,用记事本可以快速写就的一些程序或代码。
其二,说自己用“记事本编程”,显示一下自己对某门语言的精通,根本不需要助记环境就能写出来。
至于如何用记事本编程,很简单了,打开记事本,在里面写上几句程序(当然是指脚本程序,比如ASP等),保存并执行。
如:在记事本里写上这么一行:
----------
现在是:<%=now%>
----------
保存为test.asp,然后放到IIS目录下,从浏览器访问,就能得到现在的时间。
这就是所谓的记事本编程,没什么神秘。
事实上,没必要强调用记事本编程,每种语言都有各自最适合的开发编程环境,如VC/C++,VB等最合适的工具是VS6,.net最合适的工具是vs2005等。
对ASP、php等,因为语法不复杂,倒是经常用一些文本编辑器来写代码,比如EDITPLUS、ULTRAEDIT等,这些工具虽然没有助记功能,但编辑功能非常强大,而且运行快速方便,倒近似于记事本编程的说法,只不过也绝非简单的记事本。
呵呵~~~
胡谄这几句:)
参考技术B 用记事本只能编辑程序
构建(builde)或者编译(compile)的时候就必须要有编译器了。根据你编程语言不同,需要有不同的编译器
C++的编译器有很多种,windows环境下Borland C++ Builder和Microsoft Visual C++都有免费下载版本。

用记事本编辑后,把文件按编译器要求的后缀名保存到某个目录下,然后使用编译器对该文件进行编译,就可以了
具体步骤和命令,根据你使用的程序语言有所不同
参考技术C 关键问题是不要用中文码来代替英文码,例如双引号,分号等.编程语言,特别是起语法作用的词,应是英文,输出语句可能用中文.

存放,通常是ANSI txt. 混有中文时,如果是网页,存为unicode. 如果是c程序,混有中文时,存ANSI, 中文会丢失,只好试试unicode.

编c,最好用VC++带的Visual Studio. 用 word pad 也比notepad好.
参考技术D 在记事本里写下相应的代码(视具体语言而定)。然后将后缀名改成相关的后缀名,用命令编译即可。(因不同语言不一样,建议楼主说出要写什么语言的程序)

如何用C#编写文本编辑器

这个问题比较大,其实看你写什么样的文本编辑器。
做法:
1.
简单记事本:用winform
或者
wpf
放一个
textbox
控件,实现一下多行,放置几个菜单,添加上保存等功能就可以了。
2.
富文本编辑器,用 richtextbox
控件,实现编辑、剪贴、撤销等操作。
3.
特定的编辑器,比如说实现一个
markdown
编辑器,你就需要对特定描述语言的解析了。
参考技术A 这个问题比较大,其实看你写什么样的文本编辑器。
做法:
简单记事本:用WinForm
或者
WPF
放一个
TextBox
控件,实现一下多行,放置几个菜单,添加上保存等功能就可以了。
富文本编辑器,用
RichTextBox
控件,实现编辑、剪贴、撤销等操作。
特定的编辑器,比如说实现一个
MarkDown
编辑器,你就需要对特定描述语言的解析了。

以上是关于如何用记事本编程的主要内容,如果未能解决你的问题,请参考以下文章

如何用浏览器打开用记事本编写的代码

如何用java编写函数?

如何用delphi6编记事本的步骤

如何用记事本编写Java代码?

如何用记事本编写Java代码?

如何用命令打开记事本