[ mayo @ 15.06.2003. 23:08 ] @
Napravio sam prilicno jednostavan program preko App wizarda i implementirao kod za sortiranje brojeva. Prakticno sam program koji je u DOS prozoru odlicno radio iskoristio za vizuelnu aplikaciju. Medjutim, nikako ne mogu da nateram petlju sto treba da izbaci sortirane rezultate u edit box da nateram da to radi. Uvek dobijam po jednu cifru u edit boxu, tj. max niza. Pitanje je kako da iz promenljive tipa a (i)prikazem sve elemente niza u jednom edit boxu?
[ Reljam @ 15.06.2003. 23:26 ] @
Zakaci sors, ili jos bolje copy/paste-uj relevantnu funkciju pa da pogledamo.
[ mayo @ 16.06.2003. 11:48 ] @
int a[100], i, j, pom;
const int n=100;
FILE *fp;

fp = fopen(m_fajl, "r");
i = 0;
while ( i<n )
{
fscanf( fp, "%d", &a);
i++;
}

for ( i = 0; i < n; i++)
for (j = i+1; j < n; j++)
if (a[j] > a)
{
pom = a;
a = a[j];
a[j] = pom;
}


for ( i = 0; i < n; i++)
{
m_rezultator=a;
UpdateData (FALSE);
break;
}



Znaci poslednja petlja je problem.
[ Reljam @ 16.06.2003. 12:31 ] @
Malo me buni kako ti je kompajler dozvolio da int[100] dodelis CStringu, ali nema veze.

Ti treba da dodajes elemente niza u taj edit box, recimo ovako (ovo ide umesto zadnje petlje):

Code:

CString s;
for ( i = 0; i < n; i++)
{
s.AppendFormat("%d ",a[i]);
}

m_rezultator=s;
UpdateData (FALSE);


Pogledaj i petlju za ucitavanje - zar ne treba tu da bude a umesto a? Takodje, petlja za bubble sort ne deluje kao da radi.
[ mayo @ 16.06.2003. 16:58 ] @
Petlja za sortiranje radi, mada nije najbitnija jer imam nekoliko verzija za sortiranje.Promenljivu za edit box sam deklarisao kao int.

Hvala za trud, ali sad imam problema sa AppendFormat funkcijom za koju kompajler kaze da nije deo CStringa??
[ Reljam @ 16.06.2003. 20:02 ] @
Hehehehe

Razlog zasto sam mislio da tvoj program ne radi (i ako pogledas malo cudnije pitanje na kraju mog posta) je to sto kada se napise [i ], forum to pretvori u italics. Zato deluje kao da to nedostaje u tvom programu.

Sto se tice donje petlje AppendFormat je funkcija iz starog VS.NETa, mislio sam da to koristis. U svakom slucaju evo najjednostavnije verzije:

Code:

// Gledaj da n*6 znakova bude dovoljno, povecaj ako treba
    char *buf=new char[n*6];
int t=0;

    for (i=0; i<n; i++)
    {
        t+=sprintf(buf+t, "%d ", a[i]);
    }

    m_rezultator=buf;
    UpdateData(false);
delete buf;