CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  基础类

文本文件

楼主richardwolflord(理查德)2006-05-02 09:55:51 在 VB / 基础类 提问

如何用vb来实现以下功能:  
  读取一个文件中所有的文本文件,并将文本文件中所有的小写字母转换成大写字母?  
  时间紧迫个位帮帮小弟先!  
  问题点数:100、回复次数:14Top

1 楼richardwolflord(理查德)回复于 2006-05-02 09:56:38 得分 0

如果可以的话,麻烦把源码传上来啊   !谢了Top

2 楼yurilin(绝对领域)回复于 2006-05-02 11:10:35 得分 0

有没有其他类型的文件,文件名字怎么样,说具体些.Top

3 楼verywzm(寒江雪)回复于 2006-05-02 15:54:18 得分 50

将小写转换成大写的函数:ucase()  
   
  返回   Variant   (String),其中包含转成大写的字符串。  
   
  语法  
   
  UCase(string)  
   
  必要的   string   参数为任何有效的字符串表达式。如果   string   包含   Null,将返回   Null。  
   
  说明  
   
  只有小写的字母会转成大写;原本大写或非字母之字符保持不变。  
   
  ---------------------------------------------------------------  
   
  将大写转换成小写的函数:lcase()  
   
  返回转成小写的   String。  
   
  语法  
   
  LCase(string)  
   
  必要的   string   参数可以是任何有效的字符串表达式。如果   string   包含   Null,将返回   Null。  
   
  说明  
   
  只有大写的字母会转成小写;所有小写字母和非字母字符保持不变。  
  Top

4 楼of123()回复于 2006-05-02 17:40:59 得分 10

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   #1Top

5 楼verywzm(寒江雪)回复于 2006-05-02 19:15:17 得分 10

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   #1Top

6 楼richardwolflord(理查德)回复于 2006-05-03 08:27:18 得分 0

具体的要求是:  
  打开一个文件夹自动的把其中所有的.txt文件中的小写转换成大写的。并保存起来。Top

7 楼verywzm(寒江雪)回复于 2006-05-03 11:27:49 得分 10

=========窗体代码==========  
   
  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   SubTop

8 楼richardwolflord(理查德)回复于 2006-05-03 16:07:36 得分 0

多谢             楼上的,我回去试试看。Top

9 楼of123()回复于 2006-05-03 16:48:48 得分 10

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()  
  LoopTop

10 楼richardwolflord(理查德)回复于 2006-05-04 09:53:02 得分 0

各位实在不好意思,对vb一点都不了解.各位帮到这地步还是解决不了.但是这个程序对我来说很重要,希望哪位兄弟能够帮我写一个发到我的邮箱里richard_wolflord@163.com多谢Top

11 楼verywzm(寒江雪)回复于 2006-05-04 12:33:43 得分 0

已发送............Top

12 楼verywzm(寒江雪)回复于 2006-05-04 12:42:18 得分 0

of123()大哥,感觉您这句tmp   =   input(LOF(1),   #1),要这么写tmp   =   input(LOF(1)-1,   #1),  
  小弟无知,不过如果不这样在我的机子上会出错。Top

13 楼hank212(IT民工)回复于 2006-05-04 15:15:42 得分 10

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  
  Top

14 楼richardwolflord(理查德)回复于 2006-05-04 15:43:18 得分 0

感谢各位兄弟的大力支持,尤其是verywzm(寒江雪)兄!结贴给分Top

相关问题

关键词

得分解答快速导航

  • 帖主:richardwolflord
  • verywzm
  • of123
  • verywzm
  • verywzm
  • of123
  • hank212

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo