В деталях не вспомню, это делалось довольно давно и я долго сравнивал списки на предмет нахождения закономерностей, но самим кодом могу поделиться:Total7zip писал(а): если можно, то расскажите как упростить список.
Код: Выделить всё
void TransformList(ofstream& fout, wchar_t* lst)
{
wstring name, lastName;
size_t lastLength = 0xFFFF;
while(*lst)
{
name = wstring(lst);
size_t length = name.length();
lst += length + 1;
if(length > 3 && name.substr(length - 3) == L"*.*") name = name.substr(0, length - 4);
if(length < lastLength || lastName != name.substr(0, lastLength))
{
lastName = name;
lastLength = length;
if(name[length - 1] == L'\\') name.resize(length - 1);
fout << UnicodeToUTF8(name) << endl;
}
}
}