VB_NET语言操作txt文件代码
- 格式:docx
- 大小:14.52 KB
- 文档页数:3
读写文本文件,终于有点明白了以前vb6的读写老写错,进入vb2010终于有些明白了。
好,正戏开场:主演: puter.filesystemsystem.io.streamReadersystem.io.streamWriter配角:OpenFileDialogSaveFileDialog剧情一般都是OpenFileDialog或SaveFileDialog跟龙套,提供路径和文件名后,由主演们操作。
先调戏一下,,小演一下:[vb] view plaincopyprint?1.Private Sub Button1_Click(ByVal sender As System.Objec t, ByVal e As System.EventArgs) Handles Button1.Click2.If OpenFileDialog1.showdialog = DialogResult.OK Thenputer.FileSystem.WriteAllText(OpenFileDialog1.Fil eName, TextBox1.T ext, False)4.End If5.End Submy命名空间具有快速访问特性,常见的:puter 当前(本地)计算机硬件、软件、文件信息。
my.application 当前应用程序的信息:标题、目录、版本号。
my.forms 当前项目窗体信息my.resources 应用程序资源的相关信息(只读),允许用户动态获取应用程序的资源。
my.setting 应用程序设置的相关程序。
存储或设置er 当前机器上激活的用户信息my.webservices 当前机器激活的WEB服务信息,也可用于访问新的WEB服务器。
比如: 当前机器上的用户名puter.clock.location 当前机器上的当地日期与时间正式调戏:对于my[vb] view plaincopyprint?puter.FileSystem.ReadAllText(OpenFileDialog1.File Name, System.Text.ASCIIEncoding.Default)puter.FileSystem.WriteAllText(OpenFileDialog1.Fil eName, TextBox1.T ext, False)注1:读时,容易乱码,加上后面参数部分注2:写时false表示不追加,即覆盖式写入。
vb操作txt(VB operation TXT)细胞(1,1)代表A1细胞(2,C)代表C2 = COUNTIF(“”)+ COUNTIF(“”)+ COUNTIF(“”)1。
怎么通过代码创建一个文本文件,并读取,更新内容以上为随即方式打开的文本文件昏暗的gfilenum为整数gfilenum = FreeFile随机gfilenum len = 3打开“文件路径及文件名”“以随即方式打开一文件如果文件不存在就新建用得到# gfilenum,记录在文件中位置,要放取得的数据的变量”读取操作用把# gfilenum,记录在文件中位置,要放着要写入数据的变量”写操作近# filenum”关闭文件以下为顺序方式打开的文件昏暗的gfilenum为整数gfilenum = FreeFile打开输出”文件路径及文件名”gfilenum”以写入方式打开文本打印# gfilenum,要写入的文本写#文件号,要写入的文本昏暗的gfilenum为整数gfilenum = FreeFile打开“文件路径及文件名“输入”以读出方式打开文本gfilenum输入# gfilenum,用来放读取的内容的内存变量名还可用线路输入#,等读取更详细的查MSDN()2。
VB读取文本文件时,调用对象中使用报错了文本中去。
如果是集F = fs。
中去(“E:\表格\痕迹。
txt”,读书,真的,TristateUseDefault)出现错误:运行时错误格”:无效的过程调用或参数如果是集F = fs。
中去(“E:\表格\痕迹。
txt)”则不会报错。
用文件对象啊filesystemcontrol操作就好了啊再加上一个文本读取文件第一行就好了啊。
3。
VB通过FileSystemObject,可以读取文本文件(.txt)。
对于。
蝙蝠文件,VB可否直接读取?蝙蝠也属于文本类文件可以读取不用FSO也行:把文本文件内容读取文本框:朦胧的TempFile As Long昏暗的loadbytes()字节tempfile = FreeFile二开文件名作为# tempfileRedim LoadBytes(1~LOF(TempFile))为字节得到# tempfile,,LoadBytes关闭tempfiletext1。
这一部分,你将找到更多常用的文件操作的代码实例。
最常用、最基本的操作就是把text写入文件和读回来。
现在的应用程序通常不用二进制文件作存储简单的变量,而用它来存储对象,对象集合以及其他机器代码。
下面,将看到具体操作的例子。
读写文本文件为了把text保存到文件,创建一个基于FileStream的StreamReader对象,然后调用Write方法把需要保存的text写入文件。
下面的代码用SaveFileDialog 提示用户指定一个文件,用于保存TextBox1的内容。
同样采用类似的语句,我们读取一个文本文件,并把内容显示在TextBox控件中。
StreamReader的ReadToEnd方法返回文件的全部内容。
各种对象的存储采用BinaryFormatte以二进制的形式,或者用SoapFormatter类以XML格式都可以序列化一个具体的对象。
只要把所有BinaryFormatter的引用改为SoapFormatter,无需改变任何代码,就可以以XML格式序列化对象。
首先创建一个BinaryFormatter实例:然后创建一个用于存储序列化对象的FileStream对象:接着调用BinFormatter的Serialize方法序列化任何可以序列化的framework 对象:加一个Serializable属性使得自定义的对象可以序列化下面代码创建一个Person对象实例,然后调用BinFormatter的Serialize方法序列化自定义对象:你也可以在同一个Stream中接着序列化其他对象,然后以同样的顺序读回。
例如,在序列化Person对象之后接着序列化一个Rectangle对象:创建一个BinaryFormatter对象,调用其Deserialize方法,然后把返回的值转化为正确的类型,就是整个反序列化过程。
然后接着发序列化Stream的其他对象。
假定已经序列化了Person和Rectangle两个对象,以同样的顺序,我们反序列化就可以得到原来的对象:大多数程序处理对象集合而不是单个的对象。
vb读取txt文件1.怎么通过代码创建一个文本文件,并读取,更新内容以上为随即方式打开的文本文件dim gfilenum as integergfilenum = FreeFileOpen "文件路径及文件名" For Random As gfilenum len=3\'以随即方式打开一文件如果文件不存在就新建用get #gfilenum ,记录在文件中位置,要放取得的数据的变量\'读取操作用put #gfilenum ,记录在文件中位置,要放着要写入数据的变量\'写操作close #filenum\'关闭文件以下为顺序方式打开的文件dim gfilenum as integergfilenum = FreeFileOpen "文件路径及文件名" For output As gfilenum \'以写入方式打开文本print #gfilenum,要写入的文本write #filenum,要写入的文本dim gfilenum as integergfilenum = FreeFileOpen "文件路径及文件名" For input As gfilenum \'以读出方式打开文本input #gfilenum ,用来放读取的内容的内存变量名还可用line input#,input()等读取更详细的查msdn2.VB读取文本文件时,调用TextStream 对象中使用OpenTextFile报错了。
如果是Set f = fs.OpenTextFile("E:\\table\\trace.txt", forreading, True, TristateUseDefault)出现错误:Run-time error \'5\':Invalid procedure call or argument如果是Set f = fs.OpenTextFile("E:\\table\\trace.txt)"则不会报错。
是一种基于VB语言的面向对象程序设计语言,它是微软推出的一种用于开发Windows评台应用程序的工具。
在中,文件的读写是非常常见的操作,我们可以通过一些API来实现文件的读写操作。
在本文中,我将介绍如何在中进行文件的读写操作,包括文件的打开、读取、写入和关闭等操作。
希望通过本文的介绍,能够帮助大家更好地掌握中文件读写的用法。
一、文件的打开在中,我们可以使用FileStream类来打开一个文件。
FileStream类是用于提供文件的读写操作的一个类,通过它我们可以打开一个文件,并进行读写操作。
下面是一个打开文件的示例代码:Dim fs As FileStream = New FileStream("C:\test.txt", FileMode.Open)在上面的代码中,我们首先创建了一个FileStream对象,并以"test.txt"为文件名,以FileMode.Open的方式来打开了这个文件。
通过这个代码,我们就可以在中打开一个文件了。
二、文件的读取在中,我们可以使用StreamReader类来进行文件的读取操作。
StreamReader类是用于读取文件内容的一个类,通过它我们可以方便地读取文件的内容。
下面是一个读取文件的示例代码:Dim sr As StreamReader = New StreamReader("C:\test.txt")Dim content As Stringcontent = sr.ReadToEnd()Console.WriteLine(content)在上面的代码中,我们首先创建了一个StreamReader对象,并以"test.txt"为文件名来创建了这个对象。
然后我们通过sr.ReadToEnd()方法来将整个文件的内容读取到content变量中,并最后将content的内容输出到控制台上。
VB2010自己动手做记事本源码Imports System.IOPublic Class Form1Dim TempPath As StringPrivate Sub打开OToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles打开OToolStripMenuItem.ClickTryOpenFileDialog1.FileName = ""OpenFileDialog1.Filter = "文本文档|*.txt"OpenFileDialog1.InitialDirectory = "C:\"OpenFileDialog1.ShowDialog()TextBox1.Text = File.ReadAllText(OpenFileDialog1.FileName, System.Text.Encoding.Default)TempPath = OpenFileDialog1.FileNameCatch ex As ExceptionMsgBox(ex.Message)End TryEnd SubPrivate Sub保存SToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles保存SToolStripMenuItem.ClickTryFile.WriteAllText(TempPath, TextBox1.Text, System.Text.Encoding.Default) Catch ex As Exception MsgBox(ex.Message)End TryEnd SubPrivate Sub另存为AToolStripMenuItem_Click(ByVal senderAToolStripMenuItem.ClickTrySaveFileDialog1.ShowDialog()Catch ex As ExceptionMsgBox(ex.Message)End TryEnd SubPrivate Sub新建NToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles新建NToolStripMenuItem.Click'TextBox1.Text = ""TextBox1.Clear()End SubPrivate Sub撤消UToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles撤消UToolStripMenuItem.ClickTextBox1.Undo()End SubPrivate Sub重复RToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles重复RToolStripMenuItem.ClickTextBox1.Undo()End SubPrivate Sub剪切TToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles剪切TToolStripMenuItem.ClickTextBox1.Cut()End SubPrivate Sub复制CToolStripMenuItem_Click(ByVal sender AsCToolStripMenuItem.ClickTextBox1.Copy()End SubPrivate Sub粘贴PToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles粘贴PToolStripMenuItem.ClickTextBox1.Paste()End SubPrivate Sub全选AToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles全选AToolStripMenuItem.ClickTextBox1.SelectAll()End SubPrivate Sub自动换行CT oolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles自定义CToolStripMenuItem.ClickIf TextBox1.WordWrap = True ThenTextBox1.WordWrap = FalseElseTextBox1.WordWrap = TrueEnd IfEnd SubPrivate Sub退出XToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles退出XToolStripMenuItem.ClickMe.Close()End SubPrivate Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load End SubEnd Class。
Imports System.TextImports System.IOImports System.ThreadingPublic Class Form1Dim openFileDialog As OpenFileDialogDim saveFileDialog As SaveFileDialogDim filePath As String = ""Dim byteString As String = ""Dim textString As String = ""Dim bytecode() As ByteDim inputFilePath As String = ""Dim optionList1 As List(Of String)Private Property tempDragPath As StringPrivate Sub ComboBox1_SelectedIndexChanged(ByVal sender AsSystem.Object, ByVal e As System.EventArgs) HandlesComboBox1.SelectedIndexChangedEnd SubPrivate Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.LoadControl.CheckForIllegalCrossThreadCalls = False'false为a能¨¹跨?进?程¨¬'Dim fromEncod As Encoding = Encoding.GetEncoding("")' MsgBox()'MsgBox("Form1_Load")btnOpenDialog.Visible = FalseComboBox1.BeginUpdate()ComboBox2.BeginUpdate()'MessageBox.Show(optionArray(0).ToString)' MsgBox("123456")optionList1 = ConvertUtil.getEncodingsFromSystem()Dim i As StringFor Each i In optionList1ComboBox1.Items.Add(i)ComboBox2.Items.Add(i)NextComboBox2.EndUpdate()ComboBox1.EndUpdate()ComboBox1.SelectedIndex = optionList1.Count - 1ComboBox2.SelectedIndex = optionList1.Count - 1End SubPrivate Sub btnOpen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOpen.ClickTry'GC.Collect()openFileDialog = New OpenFileDialogopenFileDialog.Filter = "txt files(*.txt)|*.txt|log(*.log)|*.log|All files (*.*)|*.*"If openFileDialog.ShowDialog() = Windows.Forms.DialogResult.OK ThenfilePath = openFileDialog.FileNamefilePathTextBox.Text = filePath'C:\Users\Administrator\Documents\ipmsg.logopenFileDialog.Dispose()'textString = IO.File.ReadAllText(filePath,System.Text.Encoding.GetEncoding("GB2312")) '得Ì?到Ì?文?本À?可¨¦以°?读¨¢取¨?ANSI文?本À?'经-测a算?IO.File.ReadAllText(filePath)只?能¨¹区?分¤?unicode,utf8,不?能¨¹区?分¤?ANSI'MsgBox(textString)' byteTextBox.Text = IO.File.ReadAllText(filePath) '得Ì?到Ì?文?本À?' byteTextBox.Text =IO.File.ReadAllBytes(filePath).ToArray.ToString' byteTextBox.Text =System.Text.Encoding.Default.GetString(IO.File.ReadAllBytes(filePath))textString = IO.File.ReadAllText(filePath)bytecode = IO.File.ReadAllBytes(filePath)'MsgBox("bytecode " + bytecode.Length.ToString + "\r\n" + textString)byteString = BitConverter.ToString(bytecode).Replace("-", " ")byteTextBox.Text = byteString'System.Text.Encoding.Default'Dim str1 As String = System.BitConverter.ToString(System.Text.Encoding.UTF8.Ge tBytes("要°a转Áa换?的Ì?文?字Á?可¨¦以°?是º?任¨?何?数ºy字Á?"))'System.Text.Encoding.Convert()'IO.File.ReadAllBytes("c:/123.txt")' IO.File.ReadAllLines("c:/123.txt")' IO.File.ReadAllText("c:/123.txt")' 上¦?面?是º?读¨¢取¨?()'' IO.File.CreateText("c:/123.txt")' IO.File.WriteAllText("c:/123.txt", "")' IO.File.WriteAllLines("c:/123.txt", New String() {})' IO.File.WriteAllBytes("c:/123.txt", New Byte() {})' 这a几?个?都?可¨¦创ä¡ä建¡§()End IfCatch ex As ExceptionEnd TryEnd SubPrivate Sub filePathText_MouseDoubleClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles filePathTextBox.MouseDoubleClickTryopenFileDialog = New OpenFileDialogIf openFileDialog.ShowDialog() = Windows.Forms.DialogResult.OK ThenfilePath = openFileDialog.FileNamefilePathTextBox.Text = filePath'C:\Users\Administrator\Documents\ipmsg.logopenFileDialog.Dispose()textString = IO.File.ReadAllText(filePath) '得Ì?到Ì?文?本À?bytecode = IO.File.ReadAllBytes(filePath)byteString = BitConverter.ToString(bytecode).Replace("-", " ")byteTextBox.Text = byteStringEnd IfCatch ex As ExceptionEnd TryEnd SubPrivate Sub filePathTextBox_KeyUp(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles filePathTextBox.KeyUp If e.KeyCode = Keys.Enter Then'MessageBox.Show("filePathTextBox.Enter")inputFilePath = filePathTextBox.Text' Dim s As String = "C:\Users\Administrator\Documents"' If File.Exists(s) Then'MessageBox.Show("文?件t")' ElseIf Directory.Exists(s) Then' MessageBox.Show("路¡¤径?")' Else' MessageBox.Show("什º2么¡ä都?不?是º?")' End IfIf File.Exists(Trim(inputFilePath)) Then'C:\Users\Administrator\Documents\ipmsg.logfilePath = inputFilePathtextString = IO.File.ReadAllText(inputFilePath) '得Ì?到Ì?文?本À?bytecode = IO.File.ReadAllBytes(filePath)byteString = BitConverter.ToString(bytecode).Replace("-", " ")byteTextBox.Text = byteString' Dim tempStr As String' tempStr = UTF8Encoding.Convert(U, )'Encoding.UTF8 .GetBytes ()'Encoding.Unicode.GetBytes("你?的Ì?串ä?")'Encoding.ASCII.GetString()ElseMsgBox("文?件t不?存ä?在¨²,ê?请?重?新?输º?入¨?路¡¤径?!ê?")filePathTextBox.Text = ""End IfEnd IfEnd SubPrivate Sub filePathTextBox_DragDrop(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles filePathTextBox.DragDropDim Files As String() = DirectCast(e.Data.GetData(DataFormats.FileDrop), String())For Each File As String In FilestempDragPath = File' MsgBox("tempDragPath:" + tempDragPath)filePathTextBox.Text = tempDragPathbytecode = IO.File.ReadAllBytes(tempDragPath)byteString = BitConverter.ToString(bytecode).Replace("-", " ")byteTextBox.Text = byteStringNextEnd SubPrivate Sub filePathTextBox_DragEnter(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles filePathTextBox.DragEnter' 確ä_定¡§使º1用®?者?抓Á£¤進M來¨ª的Ì?是º?檔n案ã?If e.Data.GetDataPresent(DataFormats.FileDrop, False) = True Then' 允¨º許S拖ª?拉¤-動¨®作Á¡Â繼¤^續¤m (這@時r滑?鼠º¨®游®?標?應a該?會t顯@示º? +)e.Effect = DragDropEffects.AllEnd If' MsgBox("filePathTextBox_DragEnter")' If e.Data.GetDataPresent(DataFormats.FileDrop) Then' e.Effect = DragDropEffects.Link' Else' e.Effect = DragDropEffects.None' End IfEnd SubPrivate Sub btnOpenDialog_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOpenDialog.ClickTryDim myThread As New Thread(AddressOf showProgressDialog)myThread.Start()Thread.Sleep(2000)myThread.Abort()Catch ex As ExceptionMsgBox(ex.Message)End TryEnd SubPrivate Sub showProgressDialog()Dim test As testDialog = New testDialog()test.ShowDialog()End SubPrivate Sub btnConvert_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnConvert.ClickDim ComboBox1Text As String = ComboBox1.Text.TrimDim strArray() As String = ComboBox1Text.Split(" ") '将?文?本À?分¤?割?获?取¨?'strArray(0)=""Dim getEncoingText As String = strArray(0).Trim'MsgBox("bytecode: " + bytecode.Length.ToString + ",encoding :" + encoding + "," + textString)'判D断?原-来¤¡ä的Ì?编À¨¤码?Dim bytecode1(bytecode.Length) As Byte' Array.Copy(bytecode, 0, bytecode1, 0, bytecode.Length)If (optionList1.Contains(ComboBox1Text)) ThenIf (bytecode(0) = 255 And bytecode(1) = 254) Or (bytecode(1) = 255 And bytecode(0) = 254) Then'去¨£¤文?件t头ª¡¤Unicode UnicodeBigEndian ff fe,fe ff'MsgBox("Unicode")Dim fromEncod As Encoding = Encoding.Unicode'Array.Copy(bytecode, 2, bytecode1, 0, bytecode.Length - 2)TryDim targetEncod As Encoding =Encoding.GetEncoding(getEncoingText)Dim targetBytes As Byte() = Encoding.Convert(fromEncod, targetEncod, bytecode)DimtargetEncodChars(targetEncod.GetCharCount(targetBytes, 0, targetBytes.Length) - 1) As ChartargetEncod.GetChars(targetBytes, 0, targetBytes.Length, targetEncodChars, 0)Dim targetString As New String(targetEncodChars)decodeTextBox.Text = targetStringCatch ex As ExceptionMsgBox(ex.Message)End TryElseIf bytecode(0) = Convert.ToInt32("EF", 16) And bytecode(1) = Convert.ToInt32("bb", 16) And bytecode(2) = Convert.ToInt32("bf", 16) Then'ef bb bf UTF-8' MsgBox("UTF8")Dim fromEncod As Encoding = Encoding.UTF8'Array.Copy(bytecode, 2, bytecode1, 0, bytecode.Length - 2)TryDim targetEncod As Encoding =Encoding.GetEncoding(getEncoingText)Dim targetBytes As Byte() = Encoding.Convert(fromEncod, targetEncod, bytecode)DimtargetEncodChars(targetEncod.GetCharCount(targetBytes, 0, targetBytes.Length) - 1) As ChartargetEncod.GetChars(targetBytes, 0, targetBytes.Length, targetEncodChars, 0)Dim targetString As New String(targetEncodChars)decodeTextBox.Text = targetStringCatch ex As ExceptionMsgBox(ex.Message)End TryElse' MsgBox("ANSI")Dim fromEncod As Encoding = Encoding.Default 'ANSI'Array.Copy(bytecode, 2, bytecode1, 0, bytecode.Length - 2)TryDim targetEncod As Encoding =Encoding.GetEncoding(getEncoingText)Dim targetBytes As Byte() = Encoding.Convert(fromEncod, targetEncod, bytecode)DimtargetEncodChars(targetEncod.GetCharCount(targetBytes, 0, targetBytes.Length) - 1) As ChartargetEncod.GetChars(targetBytes, 0, targetBytes.Length, targetEncodChars, 0)Dim targetString As New String(targetEncodChars)decodeTextBox.Text = targetStringCatch ex As ExceptionMsgBox(ex.Message)End TryEnd IfElseMsgBox("请?重?新?输º?入¨?!ê?")ComboBox1.Text = ""End IfEnd SubPrivate Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click'MsgBox(ComboBox1.Text.Trim + "," + ComboBox2.Text.Trim)Dim ComboBox1Text As String = ComboBox1.Text.TrimDim strArray() As String = ComboBox1Text.Split(" ") '将?文?本À?分¤?割?获?取¨?'strArray(0)=""Dim getEncoingText1 As String = strArray(0).TrimDim ComboBox2Text As String = ComboBox2.Text.TrimstrArray = ComboBox1Text.Split(" ") '将?文?本À?分¤?割?获?取¨?Dim getEncoingText2 As String = strArray(0).Trim'MsgBox("bytecode: " + bytecode.Length.ToString + ",encoding :" + encoding + "," + textString)'判D断?原-来¤¡ä的Ì?编À¨¤码?Dim bytecode1(bytecode.Length) As Byte' Array.Copy(bytecode, 0, bytecode1, 0, bytecode.Length)Dim targetString As StringDim targetEncod As EncodingIf (optionList1.Contains(ComboBox1Text)) And(optionList1.Contains(ComboBox1Text)) ThenDim fromEncod As Encoding =Encoding.GetEncoding(getEncoingText1)TrytargetEncod = Encoding.GetEncoding(getEncoingText2)Dim tempByteCode() As Byte =fromEncod.GetBytes(decodeTextBox.Text)Dim targetBytes As Byte() = Encoding.Convert(fromEncod, targetEncod, tempByteCode)Dim targetEncodChars(targetEncod.GetCharCount(targetBytes, 0, targetBytes.Length) - 1) As ChartargetEncod.GetChars(targetBytes, 0, targetBytes.Length, targetEncodChars, 0)targetString = New String(targetEncodChars)' MsgBox(targetString)Catch ex As ExceptionMsgBox(ex.Message)End TryElseMsgBox("请?重?新?输º?入¨?!ê?")ComboBox2.Text = ""ReturnEnd IfIf String.IsNullOrEmpty(targetString) ThenReturnEnd IfsaveFileDialog = New SaveFileDialogsaveFileDialog.Title = "保À¡ê存ä?文?字Á?"saveFileDialog.Filter = "Test files(*.txt)|*.txt|All Files|*.*"saveFileDialog.AddExtension() = TruesaveFileDialog.CheckPathExists() = TruesaveFileDialog.FilterIndex = 0Dim ioStream As System.IO.StreamIf saveFileDialog.ShowDialog() = DialogResult.OK ThenioStream = saveFileDialog.OpenFileDim SW As New StreamWriter(ioStream, targetEncod)'SNSISystem.Text.Encoding.DefaultIf Not (ioStream Is Nothing) Then'以°?byte形?式º?保À¡ê存ä?' Dim a(10) As Byte' a(0) = &HA4' a(1) = &HB5'创ä¡ä建¡§FileStream对?象¨®' Dim w As New FileStream("D:\00.aa", FileMode.Create)'创ä¡ä建¡§BinaryWriter对?象¨®' Dim b_Write As BinaryWriter = New BinaryWriter(w)' b_Write.Write(a(0))' b_Write.Write(a(1))' b_Write.Close()' w.Close()SW.Write(targetString)'puter.FileSystem.WriteAllBytes("D:\00.aa", a, True) 'true为a添¬¨ª加¨®方¤?式º?End IfSW.Close()ioStream.Close()End IfEnd SubEnd ClassImports SystemImports System.TextImports Microsoft.VisualBasicPublic Class ConvertUtilPublic Shared Sub convertByteCode(ByVal fromEncoding As String, ByVal targetEncoding As String, ByVal src() As Byte)Dim fromEncod As Encoding =Encoding.GetEncoding(fromEncoding.Trim)Dim targetEncod As Encoding =Encoding.GetEncoding(targetEncoding.Trim)Dim unicodeString As String = "This string contains the unicode character Pi(" & ChrW(&H3A0) & ")"' Create two different encodings.Dim ascii As Encoding = Encoding.ASCIIDim [unicode] As Encoding = Encoding.Unicode' Convert the string into a byte[].Dim unicodeBytes As Byte() = [unicode].GetBytes(unicodeString)' Perform the conversion from one encoding to the other.Dim asciiBytes As Byte() = Encoding.Convert([unicode], ascii, unicodeBytes)' Convert the new byte[] into a char[] and then into a string.' This is a slightly different approach to converting to illustrate' the use of GetCharCount/GetChars.Dim asciiChars(ascii.GetCharCount(asciiBytes, 0, asciiBytes.Length) - 1) As Charascii.GetChars(asciiBytes, 0, asciiBytes.Length, asciiChars, 0)Dim asciiString As New String(asciiChars)' Display the strings created before and after the conversion.Console.WriteLine("Original string: {0}", unicodeString)Console.WriteLine("Ascii converted string: {0}", asciiString) End SubPublic Shared Function getEncodingsFromSystem() As List(Of String) ' For every encoding, compare the name properties with .' Display only the encodings that have one or more different names.Dim ei As EncodingInfoDim encodingList As New List(Of String)For Each ei In Encoding.GetEncodings()Dim e As Encoding = ei.GetEncoding()encodingList.Add(e.BodyName + " " + e.EncodingName) Next eiReturn encodingListEnd FunctionPublic Shared Function byteCodeToString(ByVal targetEncoding As String, ByVal src() As Byte) As StringDim targetEncod As Encoding =Encoding.GetEncoding(targetEncoding.Trim)Dim byteCode() As Byte'If byteCode (0)=Return targetEncod.GetString(src)End FunctionEnd Class。
[]文件操作文件操作实例说明在本实例中,我们制作一个能够对文件进行操作的应用程序。
程序运行后,可以新建一个文件和删除一个文件;同时可以显示文件的属性如文件类型、建立时间、更改时间和访问时间等。
还可以更改这些属性。
程序运行结果如图89-1所示。
图89-1 运行结果<script type="text/javascript" src="/pagead/show_ads.js"> </script>技术要点l 新建和删除文件l 获得文件属性l 更改文件属性实现过程■ 新建项目打开Visual ,选择"新建项目",在项目类型窗口中选择"Visual Basic项目",在模板窗口中选择"Windows应用程序",在名称域中输入"FileOperate",然后选择保存路径。
单击"确认"。
■ 添加控件在窗体上添加六个Button控件,一个GroupBox控件,并在GroupBox控件上放置八个Label控件。
■ 更改属性将说明性的Label控件和Button控件的Text属性设置为和界面一致。
其余属性保持不变。
■ 添加代码Dim fileexam As System.IO.File'新建文件Private Sub Button1_Click(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles Button1.ClickIf fileexam.Exists("c:/abc.txt") = True ThenMsgBox("这个文件已经存在了!")Exit SubEnd Iffileexam.Create("c:/abc.txt")MsgBox("成功建立文件!")Button3.Enabled = TrueEnd Sub'删除文件Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.ClickIf fileexam.Exists("c:/abc.txt") = True Thenfileexam.Delete("c:/abc.txt")MsgBox("成功删除文件!")Button3.Enabled = FalseElseMsgBox("这个文件不存在")End IfEnd Sub'得到文件的相关信息Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.ClickLabel1.Text = fileexam.GetAttributes("c:/abc.txt").ToStringLabel2.Text = fileexam.GetCreationTime("c:/abc.txt").ToStringLabel3.Text = fileexam.GetLastWriteTime("c:/abc.txt").ToStringLabel4.Text = fileexam.GetLastAccessTime("c:/abc.txt").ToStringEnd Sub'更改文件的属性(只读、隐藏、系统或文档)Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Clickfileexam.SetAttributes("c:/abc.txt",IO.FileAttributes.ReadOnly)End Sub'更改文件的建立时间Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Clickfileexam.SetCreationTime("c:/abc.txt", Now)End Sub'更改最后访问时间Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Clickfileexam.SetLastAccessTime("c:/abc.txt", Now)End Sub■ 运行程序单击菜单"调试|启动"或单击图标运行程序。
做二次开发过程中的一些代码搜集和个人的试错及注释:
Dim str_File_1 As String = puter.FileSystem.ReadAllText("E:\Visual Studio\Visual Basic\GUI\WindowsApplication2\Resources\1.tcl", System.Text.Encoding.ASCII) '根据实际的编码读第一个文件
Dim str_File_2 As String = puter.FileSystem.ReadAllText("E:\Visual Studio\Visual Basic\GUI\WindowsApplication2\Resources\2.tcl", System.Text.Encoding.ASCII) '根据实际的编码读第二个文件
FileOpen(1, "E:\Visual Studio\Visual Basic\GUI\WindowsApplication2\Resources\1.tcl", OpenMode.Input, OpenAccess.Default, OpenShare.Shared) '以读方式打开文件
FileOpen(2, "E:\Visual Studio\Visual Basic\GUI\WindowsApplication2\Resources\2.tcl", OpenMode.Output, OpenAccess.Default, OpenShare.Shared) '以写方式打开文件
Print(2, str_File_1) '将1文件写入2中
FileClose(1)
FileClose(2)
Imports System.IO
Public Class TXTClass
'为了能够操作txt文本文档,需要在类的前面加入“System.IO”空间的引用;
'然后定义3个变量sw(用于write操作,变量类型StreamWriter)、
'sr(用于read操作,变量类型StreamReader)、
'strRead()(用于保存从文本文档中读入的数据,变量类型String数组);
'然后写一个空的sub New()过程(类必须有的)。
Private swAsStreamWriter
Private srAsStreamReader
Public strRead() As String
Public Sub New()
End Sub
'写操作
'写入一行数据到文本文件
'以追加的形式写入一行数据
Public Sub ZhuiJiaSingle(ByValParth As String, ByValstrline As String)
sw = New StreamWriter(Parth, True, System.Text.Encoding.Default)
sw.WriteLine(strline)
sw.Flush()
sw.Close()
sw = Nothing
End Sub
'以覆盖的形式写入一行数据
Public Sub FuGaiSingle(ByValParth As String, ByValstrline As String) sw = New StreamWriter(Parth, False, System.Text.Encoding.Default)
sw.WriteLine(strline)
sw.Flush()
sw.Close()
sw = Nothing
End Sub
'写入多行数据到文本文件
'以追加的形式写入多行数据
Public Sub ZhuiJiaDuoHang(ByValParth As String, ByValstr() As String) Dim iAs Integer
sw = New StreamWriter(Parth, True, System.Text.Encoding.Default) For i = 0 Tostr.Length - 1
sw.WriteLine(str(i))
sw.Flush()
Next
sw.Close()
sw = Nothing
End Sub
'以覆盖的形式写入多行数据
Public Sub FuGaiDuoHang(ByValParth As String, ByValstr() As String) Dim iAs Integer
sw = New StreamWriter(Parth, False, System.Text.Encoding.Default) For i = 0 Tostr.Length - 1
sw.WriteLine(str(i))
sw.Flush()
Next
sw.Close()
sw = Nothing
End Sub
'读操作
Public Function DuWenBen(ByValParth As String)
Dim iAs Integer = 0
Dim s As String
strRead = Nothing
sr = New StreamReader(Parth, System.Text.Encoding.Default)
Do While sr.Peek() <> -1
s = sr.ReadLine()
ReDim Preserve strRead(i)
i = i + 1
Loop
sr.Close()
sr = Nothing
If i = 0 Then
ReDim Preserve strRead(0)
strRead(0) = "null"
Return strRead
Else
Return strRead
End If
End Function
'删除文本文档的某一行内容
Public Sub deleteonerow(ByValParth As String, ByValRowindex As Integer) Static strNew() As String
Dim iAs Integer = 0
Dim s As String
sr = New StreamReader(Parth, System.Text.Encoding.Default)
Do While sr.Peek() <> -1
s = sr.ReadLine()
If i<>Rowindex Then
ReDim Preserve strNew(i)
strNew(i) = s
i = i + 1
End If
Loop
sr.Close()
FuGaiDuoHang(Parth, strNew)
strNew = Nothing
End Sub
End Class
错误1“Public Sub New(s As String)”的参数太多。