Sub WriteValidSQLFile(sFilePathAndName) Const ForReading = 1 Const ForWriting =2 Const TristateUseDefault = -2 Dim oFS Dim oFile Dim oStream Dim regex Dim sResult sResult = "" Set regex = new RegExp regex.pattern = "\s{2}" regex.global = true Set oFS = CreateObject("Scripting.FileSystemObject") Set oFile = oFS.GetFile(sFilePathAndName) Set oStream = oFile.OpenAsTextStream(ForReading, TristateUseDefault) Do While Not oStream.AtEndOfStream sRecord=oStream.ReadLine sResult = sResult & regex.Replace( sRecord, " " ) & VBCrLf Loop oStream.Close set ostream = nothing set oFile = nothing set regex = nothing Set oFile = oFS.OpenTextFile("sql_" & sFilePathAndName,ForWriting,True) oFile.Write(sResult) oFile.Close Set oFile = Nothing set oFS = nothing End Sub
Mener du filnavnene? Input filen/stien angiver du ved funktionskaldet: WriteValidSQLFile("test.txt")
Output filnavnet har jeg bare sat til sql_ + det orignale filnavn. Det kan du ændre i linien: Set oFile = oFS.OpenTextFile("sql_" & sFilePathAndName,ForWriting,True)
Undskyld, den laver selvfølgelig ged i den hvis der bruges en sti. Så bliver output filen jo sql_\\computer\sql\text.txt
Jeg har lavet lidt om i den, og den her gang testet den på en fil på et netværksshare.
1: Åbn Enterprise Manager 2: Gå til Data Transformation Services->Local Packages og opret en ny package 3: I din nye DTS package, tilføj en ActiveX Script Task
Koden til script task kunne se sådan her ud (lidt modificeret i forhold til ovenstående): '********************************************************************** ' Visual Basic ActiveX Script '************************************************************************
Function Main() Const ForReading = 1 Const ForWriting =2 Dim oFS Dim oFile Dim oStream Dim regex sInputFile = "\\computer\sql\test.txt" sOutputFile = "\\computer\sql\test_sql.txt" Set regex = new RegExp regex.pattern = " +" regex.global = true Set oFS = CreateObject("Scripting.FileSystemObject") Set oFile = oFS.OpenTextFile(sInputFile,ForReading) sResult = regex.Replace( oFile.ReadAll, " " ) oFile.Close set oFile = nothing set regex = nothing Set oFile = oFS.OpenTextFile(sOutputFile,ForWriting,True) oFile.Write(sResult) oFile.Close Set oFile = Nothing set oFS = nothing Main = DTSTaskExecResult_Success End Function
4: Ændr sInputFile og sOutputFile til passende værdier
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.