5 #include "Common/StringToInt.h"
\r
7 #include "SplitUtils.h"
\r
8 #include "StringUtils.h"
\r
10 bool ParseVolumeSizes(const UString &s, CRecordVector<UInt64> &values)
\r
13 UStringVector destStrings;
\r
14 SplitString(s, destStrings);
\r
15 bool prevIsNumber = false;
\r
16 for (int i = 0; i < destStrings.Size(); i++)
\r
18 UString subString = destStrings[i];
\r
19 subString.MakeUpper();
\r
20 if (subString.IsEmpty())
\r
22 if (subString == L"-")
\r
26 wchar_t c = subString[0];
\r
27 UInt64 &value = values.Back();
\r
28 prevIsNumber = false;
\r
44 const wchar_t *start = subString;
\r
46 UInt64 value = ConvertStringToUInt64(start, &end);
\r
52 prevIsNumber = true;
\r
53 UString rem = subString.Mid((int)(end - start));
\r
55 destStrings.Insert(i + 1, rem);
\r
60 void AddVolumeItems(NWindows::NControl::CComboBox &volumeCombo)
\r
62 volumeCombo.AddString(TEXT("10M"));
\r
63 volumeCombo.AddString(TEXT("650M - CD"));
\r
64 volumeCombo.AddString(TEXT("700M - CD"));
\r
65 volumeCombo.AddString(TEXT("4480M - DVD"));
\r
66 volumeCombo.AddString(TEXT("1457664 - 3.5\" floppy"));
\r
69 UInt64 GetNumberOfVolumes(UInt64 size, CRecordVector<UInt64> &volSizes)
\r
71 if (size == 0 || volSizes.Size() == 0)
\r
73 UInt64 numVolumes = 0;
\r
74 for (int i = 0; i < volSizes.Size(); i++)
\r
76 UInt64 volSize = volSizes[i];
\r
78 if (volSize >= size)
\r
82 UInt64 volSize = volSizes.Back();
\r
84 return (UInt64)(Int64)-1;
\r
85 return numVolumes + (size - 1) / volSize + 1;
\r