纪念:
X k = ∑ n = 0 N − 1 x n ⋅ e − 2 π j k N n X_k=\sum_{n=0}^{N-1}x_n \cdot e^{-2\pi j\frac{k}{N}n} Xk=n=0∑N−1xn⋅e−2πjNkn
x n = 1 N ∑ k = 0 N − 1 X k ⋅ e 2 π j k N n x_n=\frac{1}{N}\sum_{k=0}^{N-1}X_k\cdot e^{2\pi j \frac{k}{N}n} xn=N1k=0∑N−1Xk⋅e2πjNkn
注:以上内容与博文无关。
零、Visual BASIC 学习笔记
初学VB(其实也不算是初学了),想写一篇“小巧玲珑”的学习笔记,就是这样。博客的内容比较片面、不够完善,这主要是受笔者水平限制。本文旨在泛泛地介绍一些VB中比较实用,而且简单的功能。
一、获取程序的运行参数
Command
函数返回一个字符串,其内容为命令行调用当前程序时的参数。
Private Sub Command1_Click()
MsgBox Command()
End Sub
二、ListBox的使用
写个程序一目了然:
程序写成这样:
Private Sub 选中元素行号_Click() '显示被鼠标选中的行的编号
Dim LineNum As Long
LineNum = List1.ListIndex
Text1.Text = "第" + Str(LineNum) + "行被选中"
End Sub
Private Sub 检查元素选中_Click() '检查某一行现在是否正被选中
Dim LineNum As Long
LineNum = Val(Text1.Text)
If LineNum < List1.ListCount And LineNum >= 0 Then
If List1.Selected(LineNum) Then
Text1.Text = "第" + Str(LineNum) + "行被选中"
Else
Text1.Text = "第" + Str(LineNum) + "行未被选中"
End If
Else
MsgBox "行号不合法"
End If
End Sub
Private Sub 清空所有内容_Click() '清空列表框中的所有内容
List1.Clear
End Sub
Private Sub 删除一行内容_Click() '删除列表框中的一行内容
Dim LineNum As Long
LineNum = Val(Text1.Text)
If LineNum < List1.ListCount And LineNum >= 0 Then
List1.RemoveItem LineNum
Else
MsgBox "行号不合法"
End If
End Sub
Private Sub 添加一行内容_Click()
List1.AddItem Text1.Text
End Sub
Private Sub 显示选中内容_Click()
Text1.Text = List1.Text
MsgBox "第" + Str(List1.ListIndex) + " 行:" + List1.List(List1.ListIndex)
End Sub
Private Sub 显示元素个数_Click()
Text1.Text = "共计" + Str(List1.ListCount) + " 个元素"
End Sub
ListBox
中如果存有若干行内容,其中第一行内容的编号为"0",第二行内容的编号为"1",以此类推。
简单介绍一下上面用到的函数:
List1.Selected(Integer) As Boolean
判断某一行内容是否正在被选中(选中,即当前颜色为蓝色),这个函数在列表框开启了简单多选模式(MultiSelect = 1 - Simple) 或 拓展多选模式(MultiSelect = 2 - Extended ) 时有奇效,但在 单选模式(MultiSelect = 0 - None) 下用处不大。
List1.ListIndex
返回当前被选中行的编号,如果没有任何一行被选中,其返回值为-1。(在简单多选模式(MultiSelect = 1 - Simple) 或 拓展多选模式(MultiSelect = 2 - Extended ) 下,其含义有所不同。表示最后一次被点击的行(即虚线框圈出的行)的编号。程序开始时,虚线框会默认圈中表中编号为“0”的那一行,这时,List1.ListIndex
的返回值为0,而不是-1。)
List1.ListCount
返回列表框中的元素个数。
List1.Clear
清空列表框。
List1.AddItem
表示在列表框中追加元素,语法为AddItem Item As String, [Index]
。如果参数Index
被省略,则会默认在列表框的末尾追加元素,否则元素Item
会被插入到编号为Index
的位置,该行原有的内容以及该行以下的全部内容都会依次向后移动一行。(注:Index
的值非法可能导致程序崩溃)
List1.RemoveItem (Index As Integer)
删除列表框中的一行内容,并将被删除的行后面的所有内容依次向前移动一行。
List1.Text
被选中的那一行中所储存的文本。
List1.List (Integer) As String
该函数用于获得列表框中某一行的内容,所以,在单选模式(MultiSelect = 0 - None) 下,List1.Text
与 List1.List(List1.ListIndex)
可视为等价。
三、文本框的使用
Text1.MultiLine = True / False
设置文本框中是否可以写入多行内容(Tab的使用好像也与此属性有关)。
Text1.PasswordChar
如果该属性值不为空,Text1就会被视为密码输入框,输入的信息不在屏幕上显示,只显示与文本字节数相同的替代符号。
Text1.ScrollBars = 0 - None / 1 - Horizontal / 2 - Vertical / 3 - Both
用来控制是否显示滑动条(只在MultiLine = True
情况下被启用)。
Text1.IMEMode = 0 - No Operation
不是很清楚这是干什么的,但是这个属性不设置成零可能会对汉字以及一些语言的输入有影响。
没事闲的写了一个及其简单的文本编辑器。
Private Sub Form_Load()
List1.AddItem "微软雅黑"
List1.AddItem "Consolas"
List1.AddItem "Fixedsys"
List2.AddItem "小三"
List2.AddItem "小四"
List2.AddItem "小五"
文件路径.Text = App.Path
End Sub
Private Sub List1_Click()
Text1.FontName = List1.Text
End Sub
Private Sub List2_Click()
Text1.FontSize = 15 - List2.ListIndex * 3
End Sub
Sub WriteFile(FilePath As String)
Open FilePath For Output As #1
Print #1, Text1.Text;
Close #1
End Sub
Private Sub 保存_Click()
Dim FilePath As String
FilePath = 文件路径.Text
If Dir(FilePath) <> "" Then
'文件存在
Dim Flag As Integer
Flag = MsgBox("该文件已经存在,是否覆盖?", vbOKCancel, "文本编辑器")
If Flag = vbOK Then
'确认覆盖
WriteFile (FilePath)
End If
Else
If Dir(FilePath, vbDirectory) = "" Then
WriteFile (FilePath)
Else
Flag = MsgBox("路径不合法!", vbOKOnly, "文本编辑器")
End If
End If
End Sub