Диаграмма "Динамика размера базы" по бакапам

Дали задание построить динамику размера базы 1С.
Долго мучаться не будем. Делаем быстро. За основу возьмем SQL бакапы, которые хранятся в сжатом виде. Ахиватор 7-zip, используемый для сжатия, предоставляет функцию вывода информации о архивах без распаковки.

Командой


C:\Progra~1\7-Zip\7z l -slt <Путь и маска архивов например: c:\bak\MyBase*.7z> > input.txt

Получаем файл input.txt такого вида:


7-Zip 9.20 Copyright (c) 1999-2010 Igor Pavlov 2010-11-18

Listing archive: c:\bak\test1c_201111040100.bak.7z

--
Path = c:\bak\test1c_201111040100.bak.7z
Type = 7z
Method = LZMA
Solid = -
Blocks = 1
Physical Size = 7010672244
Headers Size = 187

----------
Path = backup_201111040100.bak
Size = 97425807872
Packed Size = 7010672057
Modified = 2011-11-04 01:13:15
Attributes = ....A
CRC = 65F22486
Encrypted = -
Method = LZMA:24
Block = 0

Listing archive: c:\bak\test1c_201111050100.bak.7z

--
Path = c:\bak\test1c_201111050100.bak.7z
Type = 7z
Method = LZMA
Solid = -
Blocks = 1
Physical Size = 7010841037
Headers Size = 187

----------
Path = backup_201111050100.bak
Size = 97429935616
Packed Size = 7010840850
Modified = 2011-11-05 01:11:40
Attributes = ....A
CRC = 00F6509D
Encrypted = -
Method = LZMA:24
Block = 0

и т.д.

нас интересуют строки


Size = 97429935616
Modified = 2011-11-05 01:11:40

Извлекаем их с помощью такого скрипта на VBScript

Dim objFSO, objF
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objF = objFSO.OpenTextFile("input.txt", 1, true, 0)
Set objFile = objFSO.CreateTextFile("output.csv", True)

Set objRegExp = CreateObject("VBScript.RegExp")

Do while NOT objF.AtEndOfStream
strLine = objF.ReadLine
objRegExp.Pattern = "^Size = "
if objRegExp.Test(strLine) Then
a=Split(strLine,"=")
end if
objRegExp.Pattern = "^Modified = "
if objRegExp.Test(strLine) Then
b=Split(strLine,"=")
objFile.WriteLine b(1) & ";" & a(1)
end if
Loop
objF.Close

получаем файл output.csv вида:

2011-11-04 01:13:15; 97425807872
2011-11-05 01:11:40; 97429935616
2011-11-06 01:11:40; 97434129920
2011-11-08 01:13:07; 97359914496
2011-11-09 01:13:43; 97624750592
2011-11-10 01:13:41; 97752607232
2011-11-16 01:12:57; 99884795392
2011-11-17 01:13:53; 104196967936
2011-11-18 01:13:50; 100344620544

и т.д.

Далее в OpenOffice Calc диаграмму:

ДиаграммаДиаграмма

Похожие материалы

Справочники

Документы

Отчеты

Обработки