
vb问题 考试题
多选题:1.在引用二维数组的元素时,正确的格式是?aA(0to15)bA(2,3*5)cA(i,A(j))dA(i+5,j*5)2.关于顺序文件的概念,一下说法正确的是?...
多选题:1.在引用二维数组的元素时,正确的格式是?
a A(0 to 15)
b A(2,3*5)
c A(i,A(j))
d A(i+5,j*5)
2.关于顺序文件的概念,一下说法正确的是?
a可以用记事本程序查看文件
b文件为文本格式或ACSII格式
c记录长度必须相同
d可以读取随机数据
填空题:以下一段程序,输出结果为246,请在print方法表达式中添加合适的运算符号()
private sub command1_click()
e="123"
f=123
print e____f
end sub
选择题:下列叙述错误的是?
a事件过程是影响特定事件的一段程序
b不同的对象可以使用相同名称的方法
c对象的方法是执行指定操作的过程
d对象的事件名称可以由编程者指定
关于驱动器列表框,下列错误的是()
a驱动器列表框是一种能显示所有有效磁盘驱动器的列表框
b从驱动器列表框选择驱动器能自动的变更系统当前的工作驱动器
c要变更系统当前的工作驱动器要使用chdrive语句
d驱动器列表框的drive属性只能在运行时被设计
多选题:要是过程调用后连个参数的值都发生变化,正确的定义格式有?
a sub test(byval x, byref y)
b sub test(byval x,byval y)
c sub test(byref x,byref y)
d sub test(x as integer,y)
关于随机文件的记录,下列错误的有?
a记录长度固定
b可以用记事本编辑
c字段个数不固定
d写入时记录号可以不连续
在vb中若没有事先定义,则变量的默认类型是____ 展开
a A(0 to 15)
b A(2,3*5)
c A(i,A(j))
d A(i+5,j*5)
2.关于顺序文件的概念,一下说法正确的是?
a可以用记事本程序查看文件
b文件为文本格式或ACSII格式
c记录长度必须相同
d可以读取随机数据
填空题:以下一段程序,输出结果为246,请在print方法表达式中添加合适的运算符号()
private sub command1_click()
e="123"
f=123
print e____f
end sub
选择题:下列叙述错误的是?
a事件过程是影响特定事件的一段程序
b不同的对象可以使用相同名称的方法
c对象的方法是执行指定操作的过程
d对象的事件名称可以由编程者指定
关于驱动器列表框,下列错误的是()
a驱动器列表框是一种能显示所有有效磁盘驱动器的列表框
b从驱动器列表框选择驱动器能自动的变更系统当前的工作驱动器
c要变更系统当前的工作驱动器要使用chdrive语句
d驱动器列表框的drive属性只能在运行时被设计
多选题:要是过程调用后连个参数的值都发生变化,正确的定义格式有?
a sub test(byval x, byref y)
b sub test(byval x,byval y)
c sub test(byref x,byref y)
d sub test(x as integer,y)
关于随机文件的记录,下列错误的有?
a记录长度固定
b可以用记事本编辑
c字段个数不固定
d写入时记录号可以不连续
在vb中若没有事先定义,则变量的默认类型是____ 展开
展开全部
BD(注:A是用于定义的,C是维数错误)
AB(注:C顺序文件不要求记录长度相同,D顺序文件不允许随机读取)
+
D(可由编程者指定名称的是通用过程,事件过程都是程序给定的)
B
CD(题目连个,可能是两个打错了吧?byval是传值的,byref是传址的,默认传址,只有传址的才会把参数的值都改变了)
CD(随机文件的字段个数必须固定,记录号也必须连续,不然会出问题)
变体类型(即Variant)
AB(注:C顺序文件不要求记录长度相同,D顺序文件不允许随机读取)
+
D(可由编程者指定名称的是通用过程,事件过程都是程序给定的)
B
CD(题目连个,可能是两个打错了吧?byval是传值的,byref是传址的,默认传址,只有传址的才会把参数的值都改变了)
CD(随机文件的字段个数必须固定,记录号也必须连续,不然会出问题)
变体类型(即Variant)
展开全部
提供一个 VB 遍历指定文件夹下 文件的 代码
'查找第一个文件的API
Public Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA" (ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long
'查找下一个文件的API
Public Declare Function FindNextFile Lib "kernel32" Alias "FindNextFileA" (ByVal hFindFile As Long, lpFindFileData As WIN32_FIND_DATA) As Long
'获取文件属性的API
Public Declare Function GetFileAttributes Lib "kernel32" Alias "GetFileAttributesA" (ByVal lpFileName As String) As Long
'关闭查找文件的API
Public Declare Function FindClose Lib "kernel32" (ByVal hFindFile As Long) As Long
'以下为调用浏览文件夹窗口的API
Public Declare Sub CoTaskMemFree Lib "ole32.dll" (ByVal hMem As Long)
Public Declare Function lstrcat Lib "kernel32" Alias "lstrcatA" (ByVal lpString1 As String, ByVal lpString2 As String) As Long
Public Declare Function SHBrowseForFolder Lib "shell32" (lpbi As BrowseInfo) As Long
Public Declare Function SHGetPathFromIDList Lib "shell32" (ByVal pidList As Long, ByVal lpBuffer As String) As Long
'常量
Public Const MAX_PATH = 260
Public Const MAXDWORD = &HFFFF
Public Const INVALID_HANDLE_VALUE = -1
Public Const FILE_ATTRIBUTE_ARCHIVE = &H20
Public Const FILE_ATTRIBUTE_DIRECTORY = &H10
Public Const FILE_ATTRIBUTE_HIDDEN = &H2
Public Const FILE_ATTRIBUTE_NORMAL = &H80
Public Const FILE_ATTRIBUTE_READONLY = &H1
Public Const FILE_ATTRIBUTE_SYSTEM = &H4
Public Const FILE_ATTRIBUTE_TEMPORARY = &H100
Public Const BIF_RETURNONLYFSDIRS = 1
Public Type FILETIME
dwLowDateTime As Long
dwHighDateTime As Long
End Type
'定义类(用于查找文件)
Public Type WIN32_FIND_DATA
dwFileAttributes As Long
ftCreationTime As FILETIME
ftLastAccessTime As FILETIME
ftLastWriteTime As FILETIME
nFileSizeHigh As Long
nFileSizeLow As Long
dwReserved0 As Long
dwReserved1 As Long
cFileName As String * MAX_PATH
cAlternate As String * 14
End Type
'定义类(用于浏览文件夹窗口)
Public Type BrowseInfo
hWndOwner As Long
pIDLRoot As Long
pszDisplayName As Long
lpszTitle As Long
ulFlags As Long
lpfnCallback As Long
lParam As Long
iImage As Long
End Type
'自定义函数
Function StripNulls(OriginalStr As String) As String
If (InStr(OriginalStr, Chr(0)) > 0) Then
OriginalStr = Left(OriginalStr, InStr(OriginalStr, Chr(0)) - 1)
End If
StripNulls = OriginalStr
End Function
窗体代码:
Function GetAllFilePath(path As String, SearchStr As String)
Dim FileName As String ' 文件名
Dim DirName As String ' 子目录名
Dim dirNames() As String ' 目录数组
Dim nDir As Integer ' 当前路径的目录数
Dim i As Integer ' 循环计数器变量
Dim hSearch As Long ' 搜索句柄变量
Dim WFD As WIN32_FIND_DATA
Dim Cont As Integer
If Right(path, 1) <> "\" Then path = path & "\"
'搜索子目录
nDir = 0
ReDim dirNames(nDir)
Cont = True
hSearch = FindFirstFile(path & "*", WFD)
If hSearch <> INVALID_HANDLE_VALUE Then
Do While Cont
DirName = StripNulls(WFD.cFileName)
If (DirName <> ".") And (DirName <> "..") Then
If GetFileAttributes(path & DirName) And FILE_ATTRIBUTE_DIRECTORY Then
dirNames(nDir) = DirName
nDir = nDir + 1
ReDim Preserve dirNames(nDir)
End If
End If
Cont = FindNextFile(hSearch, WFD) '获取下一个子目录
Loop
Cont = FindClose(hSearch)
End If
' 遍历目录并累计文件总数
hSearch = FindFirstFile(path & SearchStr, WFD)
Cont = True
If hSearch <> INVALID_HANDLE_VALUE Then
While Cont
FileName = StripNulls(WFD.cFileName)
If (FileName <> ".") And (FileName <> "..") Then
GetAllFilePath = GetAllFilePath + (WFD.nFileSizeHigh * MAXDWORD) + WFD.nFileSizeLow
List1.AddItem path & FileName
If GetFileAttributes(path & FileName) = 32 Then
List2.AddItem FileName
End If
End If
Cont = FindNextFile(hSearch, WFD) ' 获取下一个文件
Wend
Cont = FindClose(hSearch)
End If
'如果子目录存在则遍历之
If nDir > 0 Then
For i = 0 To nDir - 1
GetAllFilePath = GetAllFilePath + GetAllFilePath(path & dirNames(i) & "\", _
SearchStr)
Next i
End If
End Function
Private Sub Command1_Click()
Dim SearchPath As String
Dim FindStr As String
Dim FileSize As Long
Dim iNull As Integer, lpIDList As Long, lResult As Long
Dim sPath As String, udtBI As BrowseInfo
With udtBI
'设置浏览窗口
.hWndOwner = Me.hWnd
'返回选中的目录
.ulFlags = BIF_RETURNONLYFSDIRS
End With
'调出浏览窗口
lpIDList = SHBrowseForFolder(udtBI)
If lpIDList Then
sPath = String$(MAX_PATH, 0)
'获取路径
SHGetPathFromIDList lpIDList, sPath
'释放内存
CoTaskMemFree lpIDList
iNull = InStr(sPath, vbNullChar)
If iNull Then
sPath = Left$(sPath, iNull - 1)
End If
End If
Screen.MousePointer = vbHourglass
List1.Clear
List2.Clear
SearchPath = sPath '选中的目录为搜索的起始路径
FindStr = "*.*" '搜索所有类型的文件(此处可另作定义)
FileSize = GetAllFilePath(SearchPath, FindStr)
Screen.MousePointer = vbDefault
End Sub
FindStr = "E:\*.jpg" 就可以 E盘遍历.jpg文件
InStr(1, a, "123") 就可以识别 含有"123"的字符串: 返回 0 没有,非 0 有
稍微改一下就可以了
这个程序主要是实现遍历,可以找到指定文件夹下所有文件,包括子目录下,
如果只需要搜索指定文件夹下文件,不处理子目录,就可以不用这么复杂。
'查找第一个文件的API
Public Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA" (ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long
'查找下一个文件的API
Public Declare Function FindNextFile Lib "kernel32" Alias "FindNextFileA" (ByVal hFindFile As Long, lpFindFileData As WIN32_FIND_DATA) As Long
'获取文件属性的API
Public Declare Function GetFileAttributes Lib "kernel32" Alias "GetFileAttributesA" (ByVal lpFileName As String) As Long
'关闭查找文件的API
Public Declare Function FindClose Lib "kernel32" (ByVal hFindFile As Long) As Long
'以下为调用浏览文件夹窗口的API
Public Declare Sub CoTaskMemFree Lib "ole32.dll" (ByVal hMem As Long)
Public Declare Function lstrcat Lib "kernel32" Alias "lstrcatA" (ByVal lpString1 As String, ByVal lpString2 As String) As Long
Public Declare Function SHBrowseForFolder Lib "shell32" (lpbi As BrowseInfo) As Long
Public Declare Function SHGetPathFromIDList Lib "shell32" (ByVal pidList As Long, ByVal lpBuffer As String) As Long
'常量
Public Const MAX_PATH = 260
Public Const MAXDWORD = &HFFFF
Public Const INVALID_HANDLE_VALUE = -1
Public Const FILE_ATTRIBUTE_ARCHIVE = &H20
Public Const FILE_ATTRIBUTE_DIRECTORY = &H10
Public Const FILE_ATTRIBUTE_HIDDEN = &H2
Public Const FILE_ATTRIBUTE_NORMAL = &H80
Public Const FILE_ATTRIBUTE_READONLY = &H1
Public Const FILE_ATTRIBUTE_SYSTEM = &H4
Public Const FILE_ATTRIBUTE_TEMPORARY = &H100
Public Const BIF_RETURNONLYFSDIRS = 1
Public Type FILETIME
dwLowDateTime As Long
dwHighDateTime As Long
End Type
'定义类(用于查找文件)
Public Type WIN32_FIND_DATA
dwFileAttributes As Long
ftCreationTime As FILETIME
ftLastAccessTime As FILETIME
ftLastWriteTime As FILETIME
nFileSizeHigh As Long
nFileSizeLow As Long
dwReserved0 As Long
dwReserved1 As Long
cFileName As String * MAX_PATH
cAlternate As String * 14
End Type
'定义类(用于浏览文件夹窗口)
Public Type BrowseInfo
hWndOwner As Long
pIDLRoot As Long
pszDisplayName As Long
lpszTitle As Long
ulFlags As Long
lpfnCallback As Long
lParam As Long
iImage As Long
End Type
'自定义函数
Function StripNulls(OriginalStr As String) As String
If (InStr(OriginalStr, Chr(0)) > 0) Then
OriginalStr = Left(OriginalStr, InStr(OriginalStr, Chr(0)) - 1)
End If
StripNulls = OriginalStr
End Function
窗体代码:
Function GetAllFilePath(path As String, SearchStr As String)
Dim FileName As String ' 文件名
Dim DirName As String ' 子目录名
Dim dirNames() As String ' 目录数组
Dim nDir As Integer ' 当前路径的目录数
Dim i As Integer ' 循环计数器变量
Dim hSearch As Long ' 搜索句柄变量
Dim WFD As WIN32_FIND_DATA
Dim Cont As Integer
If Right(path, 1) <> "\" Then path = path & "\"
'搜索子目录
nDir = 0
ReDim dirNames(nDir)
Cont = True
hSearch = FindFirstFile(path & "*", WFD)
If hSearch <> INVALID_HANDLE_VALUE Then
Do While Cont
DirName = StripNulls(WFD.cFileName)
If (DirName <> ".") And (DirName <> "..") Then
If GetFileAttributes(path & DirName) And FILE_ATTRIBUTE_DIRECTORY Then
dirNames(nDir) = DirName
nDir = nDir + 1
ReDim Preserve dirNames(nDir)
End If
End If
Cont = FindNextFile(hSearch, WFD) '获取下一个子目录
Loop
Cont = FindClose(hSearch)
End If
' 遍历目录并累计文件总数
hSearch = FindFirstFile(path & SearchStr, WFD)
Cont = True
If hSearch <> INVALID_HANDLE_VALUE Then
While Cont
FileName = StripNulls(WFD.cFileName)
If (FileName <> ".") And (FileName <> "..") Then
GetAllFilePath = GetAllFilePath + (WFD.nFileSizeHigh * MAXDWORD) + WFD.nFileSizeLow
List1.AddItem path & FileName
If GetFileAttributes(path & FileName) = 32 Then
List2.AddItem FileName
End If
End If
Cont = FindNextFile(hSearch, WFD) ' 获取下一个文件
Wend
Cont = FindClose(hSearch)
End If
'如果子目录存在则遍历之
If nDir > 0 Then
For i = 0 To nDir - 1
GetAllFilePath = GetAllFilePath + GetAllFilePath(path & dirNames(i) & "\", _
SearchStr)
Next i
End If
End Function
Private Sub Command1_Click()
Dim SearchPath As String
Dim FindStr As String
Dim FileSize As Long
Dim iNull As Integer, lpIDList As Long, lResult As Long
Dim sPath As String, udtBI As BrowseInfo
With udtBI
'设置浏览窗口
.hWndOwner = Me.hWnd
'返回选中的目录
.ulFlags = BIF_RETURNONLYFSDIRS
End With
'调出浏览窗口
lpIDList = SHBrowseForFolder(udtBI)
If lpIDList Then
sPath = String$(MAX_PATH, 0)
'获取路径
SHGetPathFromIDList lpIDList, sPath
'释放内存
CoTaskMemFree lpIDList
iNull = InStr(sPath, vbNullChar)
If iNull Then
sPath = Left$(sPath, iNull - 1)
End If
End If
Screen.MousePointer = vbHourglass
List1.Clear
List2.Clear
SearchPath = sPath '选中的目录为搜索的起始路径
FindStr = "*.*" '搜索所有类型的文件(此处可另作定义)
FileSize = GetAllFilePath(SearchPath, FindStr)
Screen.MousePointer = vbDefault
End Sub
FindStr = "E:\*.jpg" 就可以 E盘遍历.jpg文件
InStr(1, a, "123") 就可以识别 含有"123"的字符串: 返回 0 没有,非 0 有
稍微改一下就可以了
这个程序主要是实现遍历,可以找到指定文件夹下所有文件,包括子目录下,
如果只需要搜索指定文件夹下文件,不处理子目录,就可以不用这么复杂。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询