split4.vbs
Option Explicit
On Error Resume Next
Dim oShell
Dim oFso, oFile
Dim sSource, sDestiny
Dim sLine, cLine, cLineFormat, iStep
Dim fName, fSize
Const READ = 1
Const OVERWRITE = True
Const OPEN = False
Const SPACECHAR = " "
iStep = 4
sLine = VbNullString
sSource = "znaki.txt"
sDestiny = "ciagspace.txt"
Set oShell = WScript.CreateObject("WScript.Shell")
Set oFso = CreateObject("Scripting.FileSystemObject")
sSource = oFso.BuildPath(oShell.CurrentDirectory, sSource)
sDestiny = oFso.BuildPath(oShell.CurrentDirectory, sDestiny)
If oFso.FileExists(sSource) Then
Set oFile = oFso.GetFile(sSource)
fName = oFile.Name
fSize = SizeSuffix(oFile.Size)
Set oFile = oFso.OpenTextFile(sSource,READ,OPEN)
Do Until oFile.AtEndOfStream
sLine = sLine & oFile.ReadLine
Loop
oFile.Close
cLine = Len(sLine)
cLineFormat = FormatNumber(cLine, False)
Msgbox "Nazwa pliku: " & fName & vbCrLf & _
" Wielkosc: " & fSize & vbCrLf & _
" Ilosc cyfer: " & cLineFormat, _
vbOkOnly, "Plik wczytany"
Dim i, sWriteLine
sWriteLine = VbNullString
Set oFile = oFso.CreateTextFile(sDestiny, OVERWRITE)
For i = 1 To cLine Step iStep
sWriteLine = Mid(sLine, i, iStep) & SPACECHAR
' Msgbox "i = " & i & vbCrLf & "Mid = " & sWriteLine
oFile.Write sWriteLine
Next
oFile.Close
Set oFile = Nothing
If Err.Number = 0 Then
fName = oFso.GetFileName(sDestiny)
Msgbox "Plik zostal zapisany: " & fName, vbOkOnly, "Plik zapisany"
Else
Msgbox Err.Number & " Srce: " & Err.Source & vbCrLf & _
" Desc: " & Err.Description, vbOkOnly, "Error"
Err.Clear
End If
Else
Msgbox "Plik zrodlowy nie istnieje." & vbCrlf & sSource, vbOkOnly, "Error"
End If
Set oFso = Nothing
Set oShell = Nothing
WScript.Quit
Function SizeSuffix(Size)
Dim sSuffix
Select Case True
Case InRange(Size, 1024, 1048575)
Size = Round(Size / 1024, 2)
sSuffix = " KB"
Case InRange(Size, 1048576, 1073741823)
Size = Round(Size / 1048576, 2)
sSuffix = " MB"
Case InRange(Size, 1073741824, 1099511627775)
Size = Round(Size / 1099511627776, 2)
sSuffix = " GB"
Case Else
sSuffix = " Bytes"
End Select
SizeSuffix = Size & sSuffix
End Function
Function InRange(Value, Min, Max)
InRange = Value >= min And Value <= Max
End Function