文本文件

richardwolflord 2006-05-02 09:55:51
如何用vb来实现以下功能:
读取一个文件中所有的文本文件,并将文本文件中所有的小写字母转换成大写字母?
时间紧迫个位帮帮小弟先!
...全文
196 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
verywzm 2006-05-04
  • 打赏
  • 举报
回复
of123()大哥,感觉您这句tmp = input(LOF(1), #1),要这么写tmp = input(LOF(1)-1, #1),
小弟无知,不过如果不这样在我的机子上会出错。
verywzm 2006-05-04
  • 打赏
  • 举报
回复
已发送............
richardwolflord 2006-05-04
  • 打赏
  • 举报
回复
各位实在不好意思,对vb一点都不了解.各位帮到这地步还是解决不了.但是这个程序对我来说很重要,希望哪位兄弟能够帮我写一个发到我的邮箱里richard_wolflord@163.com多谢
richardwolflord 2006-05-04
  • 打赏
  • 举报
回复
感谢各位兄弟的大力支持,尤其是verywzm(寒江雪)兄!结贴给分
Snoworld 2006-05-04
  • 打赏
  • 举报
回复
Private Sub Command1_Click()
Dim tmp As String
Dim strFile As String

'第一次查找文本文件
strFile = Dir("C:\temp\*.txt")
Do Until strFile = ""
strFile = "c:\temp\" & strFile
'如果找到,读取文件
Open strFile For Input As #1
tmp = Input(LOF(1), #1)
Close #1
'将读取内容转换成大写
tmp = UCase(tmp)
'写回原文件
Open strFile For Output As #1
Print #1, tmp
Close #1
'查找下一个
strFile = Dir()
Loop
End Sub
verywzm 2006-05-03
  • 打赏
  • 举报
回复
=========窗体代码==========

Private Sub Command1_Click()
FindFiles Text1.Text, "", ""
End Sub

==========模块代码============
Public Const MAX_PATH = 260
Public Const INVALID_HANDLE_VALUE = -1
Public Const FILE_ATTRIBUTE_DIRECTORY = &H10

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 Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA" (ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long
Public Declare Function FindNextFile Lib "kernel32" Alias "FindNextFileA" (ByVal hFindFile As Long, lpFindFileData As WIN32_FIND_DATA) As Long
Public Declare Function FindClose Lib "kernel32" (ByVal hFindFile As Long) As Long
Public Sub FindFiles(strRootFolder As String, strFolder As String, strFile As String)
Dim lngSearchHandle As Long
Dim udtFindData As WIN32_FIND_DATA
Dim strTemp As String, lngRet As Long
'检测文件夹是否有 \
If Right$(strRootFolder, 1) <> "\" Then strRootFolder = strRootFolder & "\"
'给出第一个文件句柄
lngSearchHandle = FindFirstFile(strRootFolder & "*", udtFindData)
'如果无效时退出
If lngSearchHandle = INVALID_HANDLE_VALUE Then Exit Sub
lngRet = 1
Do While lngRet <> 0
'去掉空格
strTemp = TrimNulls(udtFindData.cFileName)
If (udtFindData.dwFileAttributes And FILE_ATTRIBUTE_DIRECTORY) = FILE_ATTRIBUTE_DIRECTORY Then
Else
'为文件时
If Right(strTemp, 3) = "txt" Then
Call convert(Form1.Text1.Text & "\" & strTemp)
End If
End If
'给出下一个文件或目录句柄
lngRet = FindNextFile(lngSearchHandle, udtFindData)
Loop
Call FindClose(lngSearchHandle)
End Sub

Public Function TrimNulls(strString As String) As String
Dim l As Long
l = InStr(1, strString, Chr(0))
If l = 1 Then
TrimNulls = ""
ElseIf l > 0 Then
TrimNulls = Left$(strString, l - 1)
Else
TrimNulls = strString
End If
End Function
Public Sub convert(path As String)
Dim tmp() As Byte
Open path For Binary As #1
ReDim tmp(LOF(1))
Get #1, , tmp
Close #1
tmp = UCase(tmp)
Open path For Binary As #1
Put #1, , tmp
Close #1
End Sub
richardwolflord 2006-05-03
  • 打赏
  • 举报
回复
具体的要求是:
打开一个文件夹自动的把其中所有的.txt文件中的小写转换成大写的。并保存起来。
of123 2006-05-03
  • 打赏
  • 举报
回复
dim tmp as string
dim strFile as string

'第一次查找文本文件
strFile = dir("C:\my documents\*.txt")

Do Until strFile = ""
'如果找到,读取文件
open strFile for input as #1
tmp = input(LOF(1), #1)
close #1
'将读取内容转换成大写
tmp = Ucase(tmp)
'写回原文件
open strFile for output as #1
print #1, tmp
close #1
'查找下一个
strFile = Dir()
Loop
richardwolflord 2006-05-03
  • 打赏
  • 举报
回复
多谢 楼上的,我回去试试看。
yurilin 2006-05-02
  • 打赏
  • 举报
回复
有没有其他类型的文件,文件名字怎么样,说具体些.
richardwolflord 2006-05-02
  • 打赏
  • 举报
回复
如果可以的话,麻烦把源码传上来啊 !谢了
verywzm 2006-05-02
  • 打赏
  • 举报
回复
Dim tmp() As Byte
Open "C:\a.txt" For Binary As #1
ReDim tmp(LOF(1))
Get #1, , tmp
Close #1
tmp = LCase(tmp)
Open "C:\a.txt" For Binary As #1
Put #1, , tmp
Close #1
of123 2006-05-02
  • 打赏
  • 举报
回复
dim tmp as string
open "C:\my documents\test.txt" for input as #1
tmp = input(LOF(1), #1)
close #1
tmp = Ucase(tmp)
open "C:\my documents\test.txt" for output as #1
print #1, tmp
close #1
verywzm 2006-05-02
  • 打赏
  • 举报
回复
将小写转换成大写的函数:ucase()

返回 Variant (String),其中包含转成大写的字符串。

语法

UCase(string)

必要的 string 参数为任何有效的字符串表达式。如果 string 包含 Null,将返回 Null。

说明

只有小写的字母会转成大写;原本大写或非字母之字符保持不变。

---------------------------------------------------------------

将大写转换成小写的函数:lcase()

返回转成小写的 String。

语法

LCase(string)

必要的 string 参数可以是任何有效的字符串表达式。如果 string 包含 Null,将返回 Null。

说明

只有大写的字母会转成小写;所有小写字母和非字母字符保持不变。

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧