批量修改同一个目录中的所有文本文件的方法!

原创 2005年05月21日 00:59:00

在Temp/目录下,所有的*.txt文件.
我想把所有的文件中的一列数据去掉如:
a.txt  -----> a.txt
a b 1 1       a 1 1
c d 2 2       c 2 2
e f 3 3       e 3 3
g h 4 4       g 4 4
i j 5 5       i 5 5

解决方法:
'批量处理文本文件的方法
'a:批量处理某一个目录下的文本文件
'b:批量修改文本文件中的第二列数据去掉

得到Temp/目录中的所有文本文件

 Dim di As IO.DirectoryInfo
 di = New IO.DirectoryInfo("F://Root/tbak")
 Dim fi As IO.FileInfo

For Each fi In di.GetFiles("*.txt")
            Dim s As String
            Dim reader As IO.StreamReader
            reader = New IO.StreamReader(fi.FullName)
            s = reader.ReadToEnd
            reader.Close()

'第一个文件处理操作
            ProcessString(s, fi.FullName)
        Next

--文件中处理过程

    Public Sub ProcessString(ByVal content As String, ByVal FileName As String)
        Dim reader As IO.StringReader
        reader = New IO.StringReader(content)
        Dim writer As IO.StreamWriter
        writer = New IO.StreamWriter(FileName)
        Dim line As String
        line = reader.ReadLine()
        While (line <> Nothing)
            Dim ss As String()
            ss = line.Split(" ")

--处理数租操纵
            Array.Copy(ss, 2, ss, 1, ss.Length - 2)
            writer.WriteLine(String.Join(" ", ss, 0, ss.Length - 1))
            line = reader.ReadLine
        End While
        writer.Close()
        reader.Close()
    End Sub

--window Xp ,SQL_SERVER2000下测试通过!

---文件Copy,然后放到指定目录,删除原来目录文件

'60秒刷新页面,判断是否有r0011.txt文件
'如果r0011.txt文件不存在,在指定目录中去Copy文本文件,设置当前时间为:文本文件时间+"23:59:00",Copy文件到
' C:/,并更名为:r0011.txt文件
'等待60秒,循环

 '每30秒刷新一次
        Dim Lsql As String

        Response.AddHeader("Refresh", "30")
        If IO.File.Exists("F:/Root/r0011.txt") Then
            Response.Write("数据正等待处理.......")
        Else
            '从源目录中拷贝文件
            Dim di As IO.DirectoryInfo
            di = New IO.DirectoryInfo("F://Root/tbak")
            Dim fi As IO.FileInfo
            For Each fi In di.GetFiles("*.txt")

                If IO.File.Exists("F:/Root/r0011.txt") Then
                    '如果上一个文件还没入库,则等待
                    Response.Write("上一个文件正在进行入库处理.......")
                    Exit For
                Else

                    Dim s, Year, Month, day As String
                    Dim reader As IO.StreamReader

                    reader = New IO.StreamReader(fi.FullName)
                    s = reader.ReadToEnd
                    '更新系统当然时间.
                    'a:得到年份
                    Year = "20" + Left(Right(fi.Name(), Len(fi.Name) - 1), 2)
                    'b:得到月份
                    Month = Right(Left(Right(fi.Name(), Len(fi.Name) - 1), 4), 2)
                    'c:得到日期
                    day = Right(Left(Right(fi.Name(), Len(fi.Name) - 1), 6), 2)
                    '设置系统时间
                    Lsql = " exec master..xp_cmdshell 'date " & day & "-" & Month & "-" & Year & "' "
                    Lsql = Lsql + "exec master..xp_cmdshell 'time 23:50:00' "

                    ZeHua.Data.DataHelper.exeSQL("Provider=SQLOLEDB;Server=(local);database=IDBS;user id=sa;password=", Lsql)

                    ProcessString(s, "F:/Root/r0011.txt")
                    reader.Close()

                    '如果文件存在,删除文件
                    If IO.File.Exists(fi.FullName) Then
                        IO.File.Delete(fi.FullName)
                    End If

                End If

            Next

            If fi Is Nothing Then
                Response.Write("数据已经全部处理完毕!")
            End If

        End If

 Public Sub ProcessString(ByVal content As String, ByVal FileName As String)
        Dim sw As IO.StreamWriter
        sw = New IO.StreamWriter(FileName, False, System.Text.Encoding.Default)
        sw.Write(content)
        sw.Close()
    End Sub

--windowxp  SQL-Server2000下执行通过

【oracle】批量更改所有表的同一字段类型

经常需要oracle中的所有的字段的类型更改为另外一个类型,可以考虑利用如下代码:此处的demo为将NVARCHAR2转为VARCHAR2类型并且字段长度保持不变。declare cursor c...
  • u010989191
  • u010989191
  • 2017年01月17日 22:31
  • 716

MySQL数据库批量修改数据库中的表

问题:今天工作遇到这样一个问题,需要把数据库中的所有表,每个表加入四个字段,如果表少,我们可以手动去添加或者修改,如果是成千上百万张表的话,我们如何去修改,现记录下来。解决方法;找到数据库的建模资料,...
  • yelang_110
  • yelang_110
  • 2017年02月17日 14:36
  • 770

C#读取目录加载到TreeView

http://blog.163.com/aoxiangtiankong@yeah/blog/static/8411202620092351359634/ private void For...
  • killer9806
  • killer9806
  • 2015年04月02日 17:19
  • 254

批量修改文件夹中文件名称方法总结

工作中有个需求,要把文件夹中几千个pdf文件加上前缀重新命名。这事挺简单,总结对比一下解决方案。 1 用C#写个数据处理程序 主要用到FileInfo类、DirectoryInfo类,代码就不...
  • u010723516
  • u010723516
  • 2018年01月11日 10:29
  • 77

批量替换目录下的文件和内容

1.替换内容 替换当前目录中(下面的所有文件)的所有内容关键字为aa-panel到bb-panel sed -i "s/aa-panel/bb-panel/g" `grep aa-panel ...
  • qk1992919
  • qk1992919
  • 2017年11月28日 17:07
  • 73

获取一个类的所有指定方法

有时候对象字段数量太多,一个个set设值,难免漏掉,导致数据错误,所以就弄了个简单的,把所有的set方法都打印出来,然后复制进去业务代码内,再填值,用不上的就注释掉,这样方便多了。 如有需要还可以扩...
  • welling319
  • welling319
  • 2016年11月07日 17:13
  • 673

批量修改同一目录下文件名--操作so easy

1.将要改名的文件放在同一个文件夹下; 2.开始 -> 运行(或者ctrl+R) -> 输入cmd,确定-> 切换到该文件夹下; 3.dir /b > rename.xls 4.打开ren...
  • u010113156
  • u010113156
  • 2015年04月27日 20:00
  • 552

Windows 下批量修改文件夹及子文件夹下文件的扩展名

@echo off set DestPath=D:\Music_bak\ for /r %DestPath% %%i in (.) do ( echo %%i cd %%i ren *.mp3 *.m...
  • Lyq3413
  • Lyq3413
  • 2017年08月14日 15:57
  • 221

数组中的每个对象都执行同一个方法 makeObjectsPerformSelector

NSArray 类定义的方法 1.  makeObjectsPerformSelector:@select(aMethod) 简介:让数组中的每个元素 都调用 aMethod  2....
  • u010438187
  • u010438187
  • 2015年11月25日 14:55
  • 704

java实现批量修改指定文件夹下所有后缀名的文件为另外后缀名的代码

java实现批量修改指定文件夹下所有后缀名的文件为另外后缀名的代码 作者:Vashon package com.ywx.batchrename; import java.io.File;...
  • yangwenxue_admin
  • yangwenxue_admin
  • 2015年04月29日 13:46
  • 2607
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:批量修改同一个目录中的所有文本文件的方法!
举报原因:
原因补充:

(最多只允许输入30个字)