Option Explicit
'Converts DOS CRLF pairs to Apple CR text format.
'Pass it a file name. For faster operation on large (above 500k)
'files, pass it an output file name.
Main

Sub Main
	If Wscript.Arguments.Count > 2 Then
		CreateObject("Wscript.Shell").Popup "You have too many arguments. Try quoting your file names.", 10
	End If
	If Wscript.Arguments.Count = 0 Then
		CreateObject("Wscript.Shell").Popup "This script will convert from CRLF text format to CR. Pass it a file name as an argument. Optionally, pass it an output file name.", 10
	End If
	If Wscript.Arguments.Count = 2 Then
		CrInAndOutFile
	Else
		CrSingleFile
	End If
End Sub


Sub CrInAndOutFile
Dim strInFile, strOutFile
Dim tsIn, tsOut
Dim fs
Const ForReading = 1
Const ForWriting = 2
	If Wscript.Arguments.Count <> 2 Then Wscript.Quit 1
	Set fs = Wscript.CreateObject("Scripting.FileSystemObject")	
	strInFile = Wscript.Arguments(0)
	If Instr(strInFile, ":\") = 0 Then strInFile = FileNameInThisDir(strInFile)
	strOutFile = Wscript.Arguments(1)
	If Instr(strOutFile, ":\") = 0 Then strOutFile = FileNameInThisDir(strOutFile)	
	Set tsIn = fs.OpenTextFile(strInFile, ForReading, True)
	Set tsOut = fs.OpenTextFile(strOutFile, ForWriting, True)	
	Do Until tsIn.AtEndOfStream
		tsOut.Write tsIn.ReadLine & vbCr
	Loop	
	tsIn.Close
	tsOut.Close
End Sub

Sub CrSingleFile
Dim strFileName, strTemp
	If Wscript.Arguments.Count <> 1 Then Wscript.Quit 1
	strFileName = Wscript.Arguments(0)
	If Instr(strFileName, ":\") = 0 Then strFileName = FileNameInThisDir(strFileName)
	strTemp = Replace(File2String(strFileName), vbCrLf, vbCr)
	String2File strTemp, strFileName
End Sub

Sub String2File(strData, strFileName)
'Writes a string to a file
Dim fs 'As Scripting.FileSystemObject
Dim ts 'As Scripting.TextStream
Const ForWriting = 2
	Set fs = Wscript.CreateObject("Scripting.FileSystemObject")
	Set ts = fs.OpenTextFile(strFileName, ForWriting, True)
	ts.Write(strData)
	'Clean up
	ts.Close
	Set ts = Nothing
	Set fs = Nothing
End Sub

Function File2String(strFile) 'As String
Dim fs 'As Scripting.FileSystemObject
Dim ts 'As Scripting.TextStream
Const ForReading = 1
	Set fs = Wscript.CreateObject("Scripting.FileSystemObject")
	Set ts = fs.OpenTextFile(strFile, ForReading, True)
	File2String = ts.ReadAll
	ts.Close
End Function

Function FileNameInThisDir(strFileName) 'As String
'Returns the complete path and file name to a file in
'the script directory. For example, "trans.log" might
'return "C:\Program Files\Scripts\Database\trans.log"
'if the script was in the "C:\Program Files\Scripts\Database"
'directory.
Dim fs 'As Object
	Set fs = Wscript.CreateObject("Scripting.FileSystemObject")
	 FileNameInThisDir = fs.GetAbsolutePathName(fs.BuildPath(Wscript.ScriptFullName, "..\" & strFileName))
	''''''''''Clean up
	Set fs = Nothing
End Function

