Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#13

AW: 2 Arrays vergleichen\sortieren

  Alt 22. Nov 2017, 15:32
Am Besten zeigst du uns einfach den Aufruf von SortShortTagArray im C++ Quelltext.
Damit man mal den Kontext sieht. Sonst ist es wieder nur Glaskugelwischen.
Hier.. Danke.
Die Sort Funktion war hier..
http://www.delphipraxis.net/1386876-post5.html

btw.. Es soll niemand für mich übersetzen benötige nur Hilfestellungen.


Code:
long GetObjectOrder (IN HWND hParent) {

    long pZP = gPropertyItem(hParent);
    if (pZP > -1) {
        if (g_Prop[pZP].ordersize) {
            return pZP;
        }
    }

    long UB = UBOUND(g_zObj);
    if (UB > 0) {
        long K = 0, nCount = 0;
        vector<short> A1(UB), A2(UB);
        for (K = 0; K < UB; K++) {
            if (g_zObj[K].hwnd == hParent) {
                A1[nCount] = (short) (g_zObj[K].order); A2[nCount] = (short) (K);
                nCount += 1;
            }
        }
        //ARRAY SORT A1() FOR nCount, TAGARRAY A2();
        SortShortTagArray (A1, A2, nCount); // hier!

        char buffer[2048] = {0};
        for (K = 0; K < nCount; K++) {
            MoveMemory(&buffer[0] + K * sizeof(short) , &A2[K], sizeof(short));
        }
        A1.clear(); A2.clear();

        if (pZP < 0) {
            // REDIM PRESERVE g_Prop[1 TO pZP) AS ZIMAGEPROP
            pZP = (long) (UBOUND(g_Prop));
            g_Prop.resize(pZP + 1);
        }
        g_Prop[pZP].hWnd     = hParent;
        MoveMemory(&g_Prop[pZP].order, &buffer[0], sizeof(buffer));
        g_Prop[pZP].ordersize = nCount; // nCount * 2;
    }
    return pZP;
}
gruss

Geändert von EWeiss (22. Nov 2017 um 15:39 Uhr)
  Mit Zitat antworten Zitat