不明白你為什么要二進(jìn)制讀取聲音文件,VB可以直接調(diào)用API播放聲音文件,不需要你二進(jìn)制來讀取聲音文件的。
為普蘭店等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及普蘭店網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、普蘭店網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!
Private
Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA"
(ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Sub PlayWavFile(strFileName As String, PlayCount As Long, JianGe As Long)
'strFileName 要播放的文件名(帶路徑)
'playCount 播放的次數(shù)
'JianGe 多次播放時(shí),每次的時(shí)間間隔
If Len(Dir(strFileName)) = 0 Then Exit Sub
If PlayCount = 0 Then Exit Sub
If JianGe 1000 Then JianGe = 1000
DoEvents
sndPlaySound strFileName, 16 + 1
Sleep JianGe
Call PlayWavFile(strFileName, PlayCount - 1, JianGe)
End Sub
Private Sub Form_Click()
PlayWavFile "C:\aaa.wav", 1, 1000 '參數(shù):播放文件,播放次數(shù),播放間隔
End Sub
臨時(shí)文件通常用于臨時(shí)性的數(shù)據(jù)存儲(chǔ)和操作,比如在存儲(chǔ)用戶數(shù)據(jù)、參數(shù)選擇、會(huì)話信息、應(yīng)用程序緩存等類型的信息。
為了在VB.NET中獲取臨時(shí)文件的文件名,我建議使用Path類的GetTempFileName方法,盡管創(chuàng)建臨時(shí)文件的方法有很多種,但是最佳的方案是使用System.IO.Path,因?yàn)樗梢栽诋?dāng)前用戶的臨時(shí)目錄中返回唯一的文件名,您可以使用該文件名命名的文件來存儲(chǔ)臨時(shí)信息。
需要注意的是,如果多次調(diào)用該方法,那么每次都會(huì)生成不同的文件名,即使您沒有使用這些文件名。這樣做是為了防止不同的應(yīng)用軟件之間的沖突。
在列表A的示例代碼中,我定義了字符串變量sTempFileName,并將System.IO.Path.GetTempFileName方法的返回值賦值給該變量,這樣我就擁有了一個(gè)可以使用的臨時(shí)文件名,然后我創(chuàng)建一個(gè)FileStream對(duì)象——fsTemp,同時(shí)向系統(tǒng)發(fā)出請(qǐng)求來創(chuàng)建文件,這個(gè)臨時(shí)文件使用的正是sTempFileName中所存儲(chǔ)的文件名。文件創(chuàng)建完成之后,我就開始向文件中添加數(shù)據(jù)(例子中沒有展示這部分代碼),然后將這個(gè)文件關(guān)閉。
根本不用那么麻煩!
界面中添加一個(gè)Button和RichTextBox控件(自帶的),雙擊后添加以下代碼:
RichTextBox1.LoadFile("F:\臨時(shí)文件\123.txt", RichTextBoxStreamType.PlainText)
就這么簡單的一句,比用什么EOF去判斷文件尾巴好多了
一般放在你的可執(zhí)行文件的目錄下,也有放在系統(tǒng)的路徑下,
還可放在任意目錄下,不過要在path中設(shè)置路徑。
使用了VB.NET開發(fā)一個(gè)訪問excel讀取數(shù)據(jù)并修改的小程序,有一些經(jīng)驗(yàn)性的東西和大家共享,如果有誤還請(qǐng)大家指正。
大致分為這樣幾個(gè)部分來說明:
1、 準(zhǔn)備部分:
準(zhǔn)備部分我們需要添加excel library的引用到工程中:我使用office2003,它的庫文件為 Microsoft excel 11.0 object library。如果使用excel2000,那么它使用的是Microsoft excel 9.0 object library。
有需要時(shí),我們添加Imports 命名空間。
我在這個(gè)程序中只是訪問了excel的數(shù)據(jù),不需要命名空間了哈。
2、 聲明一些對(duì)象:
這些對(duì)象并不是都需要,前面三個(gè)應(yīng)該有,后面的,你需要什么對(duì)象就聲明:
Dim excelapp As Excel.Application ‘聲明一個(gè)application對(duì)象
Dim excelworkbook As Excel.Workbook ‘聲明一個(gè)工作簿對(duì)象
Dim excelsheet As Excel.Worksheet ‘聲明一個(gè)工作表對(duì)象
等等…如:
Dim excelrange As Excel.Range ‘聲明一個(gè)范圍對(duì)象
3、 訪問一個(gè)excel文件:
excelapp = New Excel.Application
excelworkbook = excelapp.Workbooks.Open(strfile) ‘訪問到工作簿:這個(gè)strfile 是文件的路徑,我從打開文件對(duì)話框中得到的。
excelsheet = excelworkbook.Sheets.Item(1) ‘訪問到工作表:item使用索引值來得到sheet對(duì)象的引用
excelsheet.activate
我們可以得到此文件中的值:
定義一個(gè)string變量:
Dim strcellvalue as string
Strcellvalue=excelsheet.cells(1,1).value ‘得到A1單元格的內(nèi)容。
修改的時(shí)候反過來就可以了:
excelsheet.cells(1,1).value= Strcellvalue
4、 善后:
在程序的每一個(gè)退出口操作excel對(duì)象,保存或者不保存:
Excelworkbook.save
Excelworkbook.close
Excelapp=nothing
5其它:
需要注意~上面的代碼需要一些容錯(cuò)機(jī)制,比如:
If Not excelworkbook Is Nothing Then 這樣的話來達(dá)到程序的正確運(yùn)行
需要判斷現(xiàn)在excel又沒有打開。如果有excel進(jìn)程正在運(yùn)行。你的代碼很可能會(huì)影響到打開的excel,像Excelworkbook.close這樣的語句雖然前面已經(jīng)很好的唯一指定了工作簿,但不能很武斷的進(jìn)行魯莽的操作,我們需要判斷現(xiàn)在excel的運(yùn)行情況。
另外,VB.NET 讀取Excel 2007的xlsx文件和讀取老的.xls文件是一樣的,都是用Oledb讀取,僅僅連接字符串不同而已。讀取xlsx 用的是Microsoft.Ace.OleDb.12.0;具體操作方法如下:
Public Shared Function GetExcelToDataTableBySheet(ByVal FileFullPath As String, ByVal SheetName As String) As DataTable
'string strConn = "Provider=Microsoft.Jet.OleDb.4.0;" + "data source=" + FileFullPath + ";Extended Properties='Excel 8.0; HDR=NO; IMEX=1'"; //此連接只能操作Excel2007之前(.xls)文件
Dim strConn As String = ("Provider=Microsoft.Ace.OleDb.12.0;" "data source=") + FileFullPath ";Extended Properties='Excel 12.0; HDR=NO; IMEX=1'"
'此連接可以操作.xls與.xlsx文件
Dim conn As New OleDbConnection(strConn)
conn.Open()
Dim ds As New DataSet()
Dim odda As New OleDbDataAdapter(String.Format("SELECT * FROM [{0}]", SheetName), conn)
'("select * from [Sheet1$]", conn);
odda.Fill(ds, SheetName)
conn.Close()
Return ds.Tables(0)
End Function
讀取Excel文件時(shí),可能一個(gè)文件中會(huì)有多個(gè)Sheet,因此獲取Sheet的名稱是非常有用的。根據(jù)Excel物理路徑獲取Excel文件中所有表名的具體操作方法如下:
Public Shared Function GetExcelSheetNames(ByVal excelFile As String) As [String]()
Dim objConn As OleDbConnection = Nothing
Dim dt As System.Data.DataTable = Nothing
Try
'string strConn = "Provider=Microsoft.Jet.OleDb.4.0;" + "data source=" + excelFile + ";Extended Properties='Excel 8.0; HDR=NO; IMEX=1'"; //此連接只能操作Excel2007之前(.xls)文件
Dim strConn As String = ("Provider=Microsoft.Ace.OleDb.12.0;" "data source=") + excelFile ";Extended Properties='Excel 12.0; HDR=NO; IMEX=1'"
'此連接可以操作.xls與.xlsx文件
objConn = New OleDbConnection(strConn)
objConn.Open()
dt = objConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, Nothing)
If dt Is Nothing Then
Return Nothing
End If
Dim excelSheets As [String]() = New [String](dt.Rows.Count - 1) {}
Dim i As Integer = 0
For Each row As DataRow In dt.Rows
excelSheets(i) = row("TABLE_NAME").ToString()
i += 1
Next
Return excelSheets
Catch
Return Nothing
Finally
If objConn IsNot Nothing Then
objConn.Close()
objConn.Dispose()
End If
If dt IsNot Nothing Then
dt.Dispose()
End If
End Try
End Function
分享題目:包含vb.net臨時(shí)文件的詞條
轉(zhuǎn)載源于:http://m.kartarina.com/article2/hjgpoc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈、ChatGPT、網(wǎng)站制作、營銷型網(wǎng)站建設(shè)、全網(wǎng)營銷推廣、網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)