Back to BeeGuid Source

int buildTable(string elementOfTable[250], int amountOfElements, string tableParameter) //Magic code, don't touch!
{
    int        maxLength = 0,
            preMax,
            lineLength,
            columnParameter;
    bool    maxLength2,
            bigAmount = false;
    for (int i = 1; i <= amountOfElements; i++)
    {
        preMax = elementOfTable[i].length();
        if (preMax > maxLength) { maxLength = preMax; }
    }
    maxLength2 = 0 == (maxLength % 2);
    maxLength += 3;
    if ((tableParameter == "number") | (tableParameter == "ccolor"))
    {
        if (amountOfElements <10) { maxLength++; }
        if ((amountOfElements < 100) & (amountOfElements >= 10)) { maxLength += 2; }
        if ((amountOfElements < 1000) & (amountOfElements >= 100)) { maxLength += 3; bigAmount = true; }
        if (amountOfElements >= 1000) { ::cout << " Console: Too much information"; fastMessage(); return 0; }
    }
    lineLength = (consoleTextLength / maxLength) * maxLength + 1;
    if (lineLength > consoleTextLength)
    {
        columnParameter = consoleTextLength / maxLength - 1;
        lineLength -= maxLength;
    }
    else { columnParameter = consoleTextLength / maxLength; }
    maxLength--;
    int stringParameter;
    stringParameter = amountOfElements / columnParameter;
    if (amountOfElements % columnParameter > 0) { stringParameter++; }
    if (devMode == true)                        //Dev mode
    {
        ::cout    << darkred << " DEV: " << darkblue 
                << "Line length - " << lineLength
                << darkred << "\n DEV: " << darkblue
                << "String Parameter - " << stringParameter
                << darkred << "\n DEV: " << darkblue
                << "Column Parameter - " << columnParameter
                << aqua << endl;
        for (int i = 1; i <= 80; i++)
        {
            cout << "\xC4";
        }
    }
    //Table generation
    /* Up line start */
    int lastAdd = 1;
    for (int i = 1; i <= lastAdd; i++) { ::cout << " "; }
    ::cout << "\xDA";
    for (int h1 = 1; h1 <= columnParameter; h1++)
    {
        if (tableParameter == "number" | tableParameter == "ccolor")
        {
            if (bigAmount == false) { for (int h = 1; h <= maxLength; h++) { ::cout << "\xC4"; } }
            else { for (int h = 1; h <= (maxLength - 1); h++) { ::cout << "\xC4"; } }
        }
        else { for (int h = 1; h <= maxLength; h++) { ::cout << "\xC4"; } }
        if (h1 != columnParameter) { ::cout << "\xC2"; }
    }
    ::cout << "\xBF\n";
    /* Up line finish */
    for (int i = 1; i <= stringParameter; i++)
    {
        for (int f = 1; f <= lastAdd; f++) { ::cout << " "; }
        /* In table generation start */
        string colorOfGenType;
        for (int k = 1; k <= columnParameter; k++)
        {
            string elementInTableLeft = "";
            string elementInTableRight = "";
            int textLenghtNeedAddLeft;
            int textLenghtNeedAddRight;
            int posInTable = (i - 1) * columnParameter + k;
            elementInTableLeft = elementOfTable[posInTable];
            int textLenghtNeedAdd = maxLength - elementInTableLeft.length();
            char elementOut[50];
            if (tableParameter == "center")
            {
                textLenghtNeedAddLeft = textLenghtNeedAdd / 2;
                textLenghtNeedAddRight = textLenghtNeedAdd / 2 + textLenghtNeedAdd % 2;
            }
            if (tableParameter == "left")
            {
                textLenghtNeedAddLeft = 1;
                textLenghtNeedAddRight = textLenghtNeedAdd - 1;
            }
            if (tableParameter == "right")
            {
                textLenghtNeedAddRight = 1;
                textLenghtNeedAddLeft = textLenghtNeedAdd - 1;
            }
            if (tableParameter == "ccolor")
            {
                /* Part from "number" */
                if ((bigAmount == false) & (amountOfElements < 10))
                {
                    textLenghtNeedAddLeft = 1;
                    textLenghtNeedAddRight = textLenghtNeedAdd - 2;
                }
                if ((bigAmount == false) & (amountOfElements >= 10))
                {
                    if (posInTable < 10) { textLenghtNeedAddLeft = 2; textLenghtNeedAddRight = textLenghtNeedAdd - 3; }
                    else { if (posInTable < 100) { textLenghtNeedAddLeft = 1; textLenghtNeedAddRight = textLenghtNeedAdd - 3; } }
                }
                if (bigAmount == true)
                {
                    if (posInTable < 10) { textLenghtNeedAddLeft = 3; textLenghtNeedAddRight = textLenghtNeedAdd - 4; }
                    else
                    {
                        if (posInTable < 100) { textLenghtNeedAddLeft = 2; textLenghtNeedAddRight = textLenghtNeedAdd - 4; }
                        else { textLenghtNeedAddLeft = 1; textLenghtNeedAddRight = textLenghtNeedAdd - 4; }
                    }
                }
                /* Part from "number" */
                char preElement[50];
                strncpy_s(preElement, elementInTableLeft.c_str(), elementInTableLeft.length() + 1);
                char *istr;
                istr = strstr(preElement, "+");
                int elementLen = elementInTableLeft.length();
                if (istr != NULL)
                {
                    strncpy_s(elementOut, preElement, elementLen - 1);
                    colorOfGenType = "darkblue";
                }
                else
                {
                    istr = strstr(preElement, "-");
                    if (istr != NULL)
                    {
                        strncpy_s(elementOut, preElement, elementLen - 1);
                        colorOfGenType = "darkred";
                    }
                    else
                    {
                        strncpy_s(elementOut, preElement, elementLen);
                        colorOfGenType = "darkgreen";
                    }
                }
                elementInTableLeft = "";
            }
            if (tableParameter == "number")
            {
                if ((bigAmount == false) & (amountOfElements < 10))
                {
                    textLenghtNeedAddLeft = 1;
                    textLenghtNeedAddRight = textLenghtNeedAdd - 2;
                }
                if ((bigAmount == false) & (amountOfElements >= 10))
                {
                    if (posInTable < 10) { textLenghtNeedAddLeft = 2; textLenghtNeedAddRight = textLenghtNeedAdd - 3; }
                    else { if (posInTable < 100) { textLenghtNeedAddLeft = 1; textLenghtNeedAddRight = textLenghtNeedAdd - 3; } }
                }
                if (bigAmount == true)
                {
                    if (posInTable < 10) { textLenghtNeedAddLeft = 3; textLenghtNeedAddRight = textLenghtNeedAdd - 4; }
                    else
                    {
                        if (posInTable < 100) { textLenghtNeedAddLeft = 2; textLenghtNeedAddRight = textLenghtNeedAdd - 4; }
                        else { textLenghtNeedAddLeft = 1; textLenghtNeedAddRight = textLenghtNeedAdd - 4; }
                    }
                }
            }
            for (int d = 1; d <= textLenghtNeedAddLeft; d++) { elementInTableLeft = " " + elementInTableLeft; }
            for (int d = 1; d <= textLenghtNeedAddRight; d++){ elementInTableRight = elementInTableRight + " "; }
            if (tableParameter == "number")
            {
                int posInTable2 = posInTable;
                if (bigAmount == false)
                {
                    if (elementInTableLeft == "  ") { ::cout << "\xB3" << " " << elementInTableLeft << elementInTableRight; }
                    if (elementInTableLeft == " ") { ::cout << "\xB3" << "  " << elementInTableLeft << elementInTableRight; }
                    if ((elementInTableLeft != " ") & (elementInTableLeft != " ")) { ::cout << "\xB3" << posInTable << elementInTableLeft << elementInTableRight; }
                }
                else
                {
                    if (elementInTableLeft == "   ") { ::cout << "\xB3" << " " << elementInTableLeft << elementInTableRight; }
                    if (elementInTableLeft == "  ") { ::cout << "\xB3" << "  " << elementInTableLeft << elementInTableRight; }
                    if (elementInTableLeft == " ") { ::cout << "\xB3" << "   " << elementInTableLeft << elementInTableRight; }
                    if ((elementInTableLeft != " ") & (elementInTableLeft != "  ") & (elementInTableLeft != "   "))
                    {
                        ::cout << "\xB3" << posInTable << elementInTableLeft << elementInTableRight;
                    }
                }
            }
            if (tableParameter == "ccolor")
            {
                if (colorOfGenType == "darkblue")
                {
                    ::cout << "\xB3" << posInTable << darkblue << elementInTableLeft << elementOut << elementInTableRight << "D" << aqua;
                }
                else
                {
                    if (colorOfGenType == "darkred")
                    {
                        ::cout << "\xB3" << posInTable << darkred << elementInTableLeft << elementOut << elementInTableRight << "R" << aqua;
                    }
                    else
                    {
                        if (posInTable > amountOfElements)
                        {
                            if (amountOfElements <10) { ::cout << "\xB3" << " " << darkgreen << elementInTableLeft << elementOut << elementInTableRight << aqua; }
                            if ((amountOfElements <100) & (amountOfElements >= 10)) { ::cout << "\xB3" << "  " << darkgreen << elementInTableLeft << elementOut << elementInTableRight << aqua; }
                            if ((amountOfElements <1000) & (amountOfElements >= 100)) { ::cout << "\xB3" << "   " << darkgreen << elementInTableLeft << elementOut << elementInTableRight << aqua; }
                        }
                        else { ::cout << "\xB3" << posInTable << darkgreen << elementInTableLeft << elementOut << elementInTableRight << aqua; }
                    }
                }
            }
            if ((tableParameter == "center") | (tableParameter == "left") | (tableParameter == "right"))
            {
                ::cout << "\xB3" << elementInTableLeft << elementInTableRight;
            }
        }
        ::cout << "\xB3" << endl;
        /* In table generation finish */
        if (i == stringParameter)
        {
        }
        else
        {
            for (int i = 1; i <= lastAdd; i++) { ::cout << " "; }
            ::cout << "\xC3";
            for (int h1 = 1; h1 <= columnParameter; h1++)
            {
                if (tableParameter == "number")
                {
                    if (bigAmount == false) { for (int h = 1; h <= maxLength; h++) { ::cout << "\xC4"; } }
                    else { for (int h = 1; h <= (maxLength - 1); h++) { ::cout << "\xC4"; } }
                }
                if (tableParameter == "ccolor") { for (int h = 1; h <= maxLength; h++) { ::cout << "\xC4"; } }
                if ((tableParameter == "center") | (tableParameter == "left") | (tableParameter == "right"))
                {
                    for (int h = 1; h <= maxLength; h++) { ::cout << "\xC4"; }
                }
                if (h1 != columnParameter) { ::cout << "\xC5"; }
            }
            ::cout << "\xB4" << endl;
        }
    }
    for (int i = 1; i <= lastAdd; i++) { ::cout << " "; }
    ::cout << "\xC0";
    for (int h1 = 1; h1 <= columnParameter; h1++)
    {
        if (tableParameter == "number")
        {
            if (bigAmount == false) { for (int h = 1; h <= maxLength; h++) { ::cout << "\xC4"; } }
            else { for (int h = 1; h <= (maxLength - 1); h++) { ::cout << "\xC4"; } }
        }
        else { for (int h = 1; h <= maxLength; h++) { ::cout << "\xC4"; } }
        if (h1 != columnParameter) { ::cout << "\xC1"; }
    }
    ::cout << "\xD9" << endl;
    return 0;
}

Опрос

Оцените мой сайт
Всего ответов: 55

Статистика



Онлайн всего: 1
Гостей: 1
Пользователей: 0



Radio