一个简单的VB算行器
后台程序
设计程序
目前只用于VB,准备开发一个多种语言的,并支持自定义语言和计算模板的,大的东西没时间做,这种小东东还是能搞滴.
后台程序
Imports Microsoft.VisualBasic
Public Class Form1
Private totalLines As Integer = 0
Private codeLines As Integer = 0
Private remLines As Integer = 0
Private emptyLines As Integer = 0
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Me.OpenFileDialog1.ShowDialog()
Me.TextBox1.Text = Me.OpenFileDialog1.FileName
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim fs As System.IO.StreamReader
Try
fs = New System.IO.StreamReader(Me.TextBox1.Text, System.Text.Encoding.ASCII)
Catch ex As Exception
MessageBox.Show("请输入正确的文件名")
Exit Sub
End Try
Dim str As String = String.Empty
str = fs.ReadToEnd()
LineCount(str)
fs.Close()
End Sub
Private Sub LineCount(ByVal str As String)
totalLines = 0
codeLines = 0
remLines = 0
emptyLines = 0
If CutEnd(str + vbCrLf) = True Then
Me.Label2.Text = totalLines
Me.Label6.Text = codeLines
Me.Label8.Text = remLines
Me.Label11.Text = emptyLines
End If
End Sub
Private Function CutEnd(ByVal str As String) As Boolean
Dim tempStr As String = String.Empty
For i As Integer = 0 To str.Length - 1
If str.Chars(i) = Chr(13) Then
tempStr = Strings.Left(str, i + 1)
totalLines += 1
' ',# 开头是注释
If Strings.Left(Strings.Trim(tempStr), 1) = "'" Or Strings.Left(Strings.Trim(tempStr), 1) = "#" Then
remLines += 1
ElseIf Trim(Strings.Left(tempStr, tempStr.Length - 1)) = String.Empty _
Or Strings.Right(Trim(Strings.Left(tempStr, tempStr.Length - 1)), 2) = " _" Then
' 空行 ,换行也算空行
emptyLines += 1
Else
'其他是代码行
codeLines += 1
End If
CutEnd(Strings.Right(str, str.Length - tempStr.Length - 1)) : Exit For
End If
Next
Return True
End Function
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End Sub
End Class
Public Class Form1
Private totalLines As Integer = 0
Private codeLines As Integer = 0
Private remLines As Integer = 0
Private emptyLines As Integer = 0
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Me.OpenFileDialog1.ShowDialog()
Me.TextBox1.Text = Me.OpenFileDialog1.FileName
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim fs As System.IO.StreamReader
Try
fs = New System.IO.StreamReader(Me.TextBox1.Text, System.Text.Encoding.ASCII)
Catch ex As Exception
MessageBox.Show("请输入正确的文件名")
Exit Sub
End Try
Dim str As String = String.Empty
str = fs.ReadToEnd()
LineCount(str)
fs.Close()
End Sub
Private Sub LineCount(ByVal str As String)
totalLines = 0
codeLines = 0
remLines = 0
emptyLines = 0
If CutEnd(str + vbCrLf) = True Then
Me.Label2.Text = totalLines
Me.Label6.Text = codeLines
Me.Label8.Text = remLines
Me.Label11.Text = emptyLines
End If
End Sub
Private Function CutEnd(ByVal str As String) As Boolean
Dim tempStr As String = String.Empty
For i As Integer = 0 To str.Length - 1
If str.Chars(i) = Chr(13) Then
tempStr = Strings.Left(str, i + 1)
totalLines += 1
' ',# 开头是注释
If Strings.Left(Strings.Trim(tempStr), 1) = "'" Or Strings.Left(Strings.Trim(tempStr), 1) = "#" Then
remLines += 1
ElseIf Trim(Strings.Left(tempStr, tempStr.Length - 1)) = String.Empty _
Or Strings.Right(Trim(Strings.Left(tempStr, tempStr.Length - 1)), 2) = " _" Then
' 空行 ,换行也算空行
emptyLines += 1
Else
'其他是代码行
codeLines += 1
End If
CutEnd(Strings.Right(str, str.Length - tempStr.Length - 1)) : Exit For
End If
Next
Return True
End Function
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End Sub
End Class
设计程序
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class Form1
Inherits System.Windows.Forms.Form
'Form 重写 Dispose,以清理组件列表。
<System.Diagnostics.DebuggerNonUserCode()> _
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing AndAlso components IsNot Nothing Then
components.Dispose()
End If
MyBase.Dispose(disposing)
End Sub
'Windows 窗体设计器所必需的
Private components As System.ComponentModel.IContainer
'注意: 以下过程是 Windows 窗体设计器所必需的
'可以使用 Windows 窗体设计器修改它。
'不要使用代码编辑器修改它。
<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
Me.OpenFileDialog1 = New System.Windows.Forms.OpenFileDialog
Me.Button1 = New System.Windows.Forms.Button
Me.Label1 = New System.Windows.Forms.Label
Me.Label2 = New System.Windows.Forms.Label
Me.TextBox1 = New System.Windows.Forms.TextBox
Me.Label3 = New System.Windows.Forms.Label
Me.Label4 = New System.Windows.Forms.Label
Me.Button2 = New System.Windows.Forms.Button
Me.Label5 = New System.Windows.Forms.Label
Me.Label6 = New System.Windows.Forms.Label
Me.Label7 = New System.Windows.Forms.Label
Me.Label8 = New System.Windows.Forms.Label
Me.Label9 = New System.Windows.Forms.Label
Me.Label11 = New System.Windows.Forms.Label
Me.SuspendLayout()
'
'OpenFileDialog1
'
Me.OpenFileDialog1.FileName = "OpenFileDialog1"
Me.OpenFileDialog1.Filter = "VB 文件|*.vb"
Me.OpenFileDialog1.Title = "请选择文件"
'
'Button1
'
Me.Button1.Location = New System.Drawing.Point(208, 64)
Me.Button1.Name = "Button1"
Me.Button1.Size = New System.Drawing.Size(39, 21)
Me.Button1.TabIndex = 1
Me.Button1.Text = "浏览"
Me.Button1.UseVisualStyleBackColor = True
'
'Label1
'
Me.Label1.AutoSize = True
Me.Label1.Location = New System.Drawing.Point(85, 170)
Me.Label1.Name = "Label1"
Me.Label1.Size = New System.Drawing.Size(29, 12)
Me.Label1.TabIndex = 2
Me.Label1.Text = "总行"
'
'Label2
'
Me.Label2.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D
Me.Label2.Location = New System.Drawing.Point(147, 170)
Me.Label2.Name = "Label2"
Me.Label2.Size = New System.Drawing.Size(100, 12)
Me.Label2.TabIndex = 3
Me.Label2.Text = "Label2"
'
'TextBox1
'
Me.TextBox1.Location = New System.Drawing.Point(87, 64)
Me.TextBox1.Name = "TextBox1"
Me.TextBox1.Size = New System.Drawing.Size(100, 21)
Me.TextBox1.TabIndex = 4
'
'Label3
'
Me.Label3.AutoSize = True
Me.Label3.Location = New System.Drawing.Point(87, 46)
Me.Label3.Name = "Label3"
Me.Label3.Size = New System.Drawing.Size(0, 12)
Me.Label3.TabIndex = 5
'
'Label4
'
Me.Label4.AutoSize = True
Me.Label4.Location = New System.Drawing.Point(85, 34)
Me.Label4.Name = "Label4"
Me.Label4.Size = New System.Drawing.Size(29, 12)
Me.Label4.TabIndex = 6
Me.Label4.Text = "路径"
'
'Button2
'
Me.Button2.Location = New System.Drawing.Point(87, 286)
Me.Button2.Name = "Button2"
Me.Button2.Size = New System.Drawing.Size(143, 19)
Me.Button2.TabIndex = 1
Me.Button2.Text = "计算"
Me.Button2.UseVisualStyleBackColor = True
'
'Label5
'
Me.Label5.AutoSize = True
Me.Label5.Location = New System.Drawing.Point(85, 198)
Me.Label5.Name = "Label5"
Me.Label5.Size = New System.Drawing.Size(41, 12)
Me.Label5.TabIndex = 2
Me.Label5.Text = "代码行"
'
'Label6
'
Me.Label6.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D
Me.Label6.Location = New System.Drawing.Point(147, 197)
Me.Label6.Name = "Label6"
Me.Label6.Size = New System.Drawing.Size(100, 12)
Me.Label6.TabIndex = 3
Me.Label6.Text = "Label2"
'
'Label7
'
Me.Label7.AutoSize = True
Me.Label7.Location = New System.Drawing.Point(85, 225)
Me.Label7.Name = "Label7"
Me.Label7.Size = New System.Drawing.Size(41, 12)
Me.Label7.TabIndex = 2
Me.Label7.Text = "注释行"
'
'Label8
'
Me.Label8.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D
Me.Label8.Location = New System.Drawing.Point(147, 224)
Me.Label8.Name = "Label8"
Me.Label8.Size = New System.Drawing.Size(100, 12)
Me.Label8.TabIndex = 3
Me.Label8.Text = "Label2"
'
'Label9
'
Me.Label9.AutoSize = True
Me.Label9.Location = New System.Drawing.Point(85, 258)
Me.Label9.Name = "Label9"
Me.Label9.Size = New System.Drawing.Size(29, 12)
Me.Label9.TabIndex = 2
Me.Label9.Text = "空行"
'
'Label11
'
Me.Label11.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D
Me.Label11.Location = New System.Drawing.Point(147, 259)
Me.Label11.Name = "Label11"
Me.Label11.Size = New System.Drawing.Size(100, 12)
Me.Label11.TabIndex = 3
Me.Label11.Text = "Label2"
'
'Form1
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 12.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(369, 347)
Me.Controls.Add(Me.Label4)
Me.Controls.Add(Me.Label3)
Me.Controls.Add(Me.TextBox1)
Me.Controls.Add(Me.Label11)
Me.Controls.Add(Me.Label8)
Me.Controls.Add(Me.Label6)
Me.Controls.Add(Me.Label2)
Me.Controls.Add(Me.Label9)
Me.Controls.Add(Me.Label7)
Me.Controls.Add(Me.Label5)
Me.Controls.Add(Me.Label1)
Me.Controls.Add(Me.Button2)
Me.Controls.Add(Me.Button1)
Me.Name = "Form1"
Me.Text = "Form1"
Me.ResumeLayout(False)
Me.PerformLayout()
End Sub
Friend WithEvents OpenFileDialog1 As System.Windows.Forms.OpenFileDialog
Friend WithEvents Button1 As System.Windows.Forms.Button
Friend WithEvents Label1 As System.Windows.Forms.Label
Friend WithEvents Label2 As System.Windows.Forms.Label
Friend WithEvents TextBox1 As System.Windows.Forms.TextBox
Friend WithEvents Label3 As System.Windows.Forms.Label
Friend WithEvents Label4 As System.Windows.Forms.Label
Friend WithEvents Button2 As System.Windows.Forms.Button
Friend WithEvents Label5 As System.Windows.Forms.Label
Friend WithEvents Label6 As System.Windows.Forms.Label
Friend WithEvents Label7 As System.Windows.Forms.Label
Friend WithEvents Label8 As System.Windows.Forms.Label
Friend WithEvents Label9 As System.Windows.Forms.Label
Friend WithEvents Label11 As System.Windows.Forms.Label
End Class
由于折叠了后和标了行号后,复制会多出东西来,所以......Partial Class Form1
Inherits System.Windows.Forms.Form
'Form 重写 Dispose,以清理组件列表。
<System.Diagnostics.DebuggerNonUserCode()> _
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing AndAlso components IsNot Nothing Then
components.Dispose()
End If
MyBase.Dispose(disposing)
End Sub
'Windows 窗体设计器所必需的
Private components As System.ComponentModel.IContainer
'注意: 以下过程是 Windows 窗体设计器所必需的
'可以使用 Windows 窗体设计器修改它。
'不要使用代码编辑器修改它。
<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
Me.OpenFileDialog1 = New System.Windows.Forms.OpenFileDialog
Me.Button1 = New System.Windows.Forms.Button
Me.Label1 = New System.Windows.Forms.Label
Me.Label2 = New System.Windows.Forms.Label
Me.TextBox1 = New System.Windows.Forms.TextBox
Me.Label3 = New System.Windows.Forms.Label
Me.Label4 = New System.Windows.Forms.Label
Me.Button2 = New System.Windows.Forms.Button
Me.Label5 = New System.Windows.Forms.Label
Me.Label6 = New System.Windows.Forms.Label
Me.Label7 = New System.Windows.Forms.Label
Me.Label8 = New System.Windows.Forms.Label
Me.Label9 = New System.Windows.Forms.Label
Me.Label11 = New System.Windows.Forms.Label
Me.SuspendLayout()
'
'OpenFileDialog1
'
Me.OpenFileDialog1.FileName = "OpenFileDialog1"
Me.OpenFileDialog1.Filter = "VB 文件|*.vb"
Me.OpenFileDialog1.Title = "请选择文件"
'
'Button1
'
Me.Button1.Location = New System.Drawing.Point(208, 64)
Me.Button1.Name = "Button1"
Me.Button1.Size = New System.Drawing.Size(39, 21)
Me.Button1.TabIndex = 1
Me.Button1.Text = "浏览"
Me.Button1.UseVisualStyleBackColor = True
'
'Label1
'
Me.Label1.AutoSize = True
Me.Label1.Location = New System.Drawing.Point(85, 170)
Me.Label1.Name = "Label1"
Me.Label1.Size = New System.Drawing.Size(29, 12)
Me.Label1.TabIndex = 2
Me.Label1.Text = "总行"
'
'Label2
'
Me.Label2.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D
Me.Label2.Location = New System.Drawing.Point(147, 170)
Me.Label2.Name = "Label2"
Me.Label2.Size = New System.Drawing.Size(100, 12)
Me.Label2.TabIndex = 3
Me.Label2.Text = "Label2"
'
'TextBox1
'
Me.TextBox1.Location = New System.Drawing.Point(87, 64)
Me.TextBox1.Name = "TextBox1"
Me.TextBox1.Size = New System.Drawing.Size(100, 21)
Me.TextBox1.TabIndex = 4
'
'Label3
'
Me.Label3.AutoSize = True
Me.Label3.Location = New System.Drawing.Point(87, 46)
Me.Label3.Name = "Label3"
Me.Label3.Size = New System.Drawing.Size(0, 12)
Me.Label3.TabIndex = 5
'
'Label4
'
Me.Label4.AutoSize = True
Me.Label4.Location = New System.Drawing.Point(85, 34)
Me.Label4.Name = "Label4"
Me.Label4.Size = New System.Drawing.Size(29, 12)
Me.Label4.TabIndex = 6
Me.Label4.Text = "路径"
'
'Button2
'
Me.Button2.Location = New System.Drawing.Point(87, 286)
Me.Button2.Name = "Button2"
Me.Button2.Size = New System.Drawing.Size(143, 19)
Me.Button2.TabIndex = 1
Me.Button2.Text = "计算"
Me.Button2.UseVisualStyleBackColor = True
'
'Label5
'
Me.Label5.AutoSize = True
Me.Label5.Location = New System.Drawing.Point(85, 198)
Me.Label5.Name = "Label5"
Me.Label5.Size = New System.Drawing.Size(41, 12)
Me.Label5.TabIndex = 2
Me.Label5.Text = "代码行"
'
'Label6
'
Me.Label6.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D
Me.Label6.Location = New System.Drawing.Point(147, 197)
Me.Label6.Name = "Label6"
Me.Label6.Size = New System.Drawing.Size(100, 12)
Me.Label6.TabIndex = 3
Me.Label6.Text = "Label2"
'
'Label7
'
Me.Label7.AutoSize = True
Me.Label7.Location = New System.Drawing.Point(85, 225)
Me.Label7.Name = "Label7"
Me.Label7.Size = New System.Drawing.Size(41, 12)
Me.Label7.TabIndex = 2
Me.Label7.Text = "注释行"
'
'Label8
'
Me.Label8.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D
Me.Label8.Location = New System.Drawing.Point(147, 224)
Me.Label8.Name = "Label8"
Me.Label8.Size = New System.Drawing.Size(100, 12)
Me.Label8.TabIndex = 3
Me.Label8.Text = "Label2"
'
'Label9
'
Me.Label9.AutoSize = True
Me.Label9.Location = New System.Drawing.Point(85, 258)
Me.Label9.Name = "Label9"
Me.Label9.Size = New System.Drawing.Size(29, 12)
Me.Label9.TabIndex = 2
Me.Label9.Text = "空行"
'
'Label11
'
Me.Label11.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D
Me.Label11.Location = New System.Drawing.Point(147, 259)
Me.Label11.Name = "Label11"
Me.Label11.Size = New System.Drawing.Size(100, 12)
Me.Label11.TabIndex = 3
Me.Label11.Text = "Label2"
'
'Form1
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 12.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(369, 347)
Me.Controls.Add(Me.Label4)
Me.Controls.Add(Me.Label3)
Me.Controls.Add(Me.TextBox1)
Me.Controls.Add(Me.Label11)
Me.Controls.Add(Me.Label8)
Me.Controls.Add(Me.Label6)
Me.Controls.Add(Me.Label2)
Me.Controls.Add(Me.Label9)
Me.Controls.Add(Me.Label7)
Me.Controls.Add(Me.Label5)
Me.Controls.Add(Me.Label1)
Me.Controls.Add(Me.Button2)
Me.Controls.Add(Me.Button1)
Me.Name = "Form1"
Me.Text = "Form1"
Me.ResumeLayout(False)
Me.PerformLayout()
End Sub
Friend WithEvents OpenFileDialog1 As System.Windows.Forms.OpenFileDialog
Friend WithEvents Button1 As System.Windows.Forms.Button
Friend WithEvents Label1 As System.Windows.Forms.Label
Friend WithEvents Label2 As System.Windows.Forms.Label
Friend WithEvents TextBox1 As System.Windows.Forms.TextBox
Friend WithEvents Label3 As System.Windows.Forms.Label
Friend WithEvents Label4 As System.Windows.Forms.Label
Friend WithEvents Button2 As System.Windows.Forms.Button
Friend WithEvents Label5 As System.Windows.Forms.Label
Friend WithEvents Label6 As System.Windows.Forms.Label
Friend WithEvents Label7 As System.Windows.Forms.Label
Friend WithEvents Label8 As System.Windows.Forms.Label
Friend WithEvents Label9 As System.Windows.Forms.Label
Friend WithEvents Label11 As System.Windows.Forms.Label
End Class
目前只用于VB,准备开发一个多种语言的,并支持自定义语言和计算模板的,大的东西没时间做,这种小东东还是能搞滴.