Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » fehler beim füllen in listbox

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
18.05.2005, 13:52 Uhr
~keine ahnung
Gast


hallo ich hab mal wieder ein problem und hoffe das ihr mir wie die letzten male auch wieder helfen könnt *G*.

das übliche: visual studio 2003.net und c++

ich habe folgendes geschrieben:


double myarray[5000];

int count = 0;

for (int i = 0; i < arraysize; i++)
{
if (pDoc->Chromy->getPoint(i).y>14308)
{


myarray[count] = pDoc->Chromy->getPoint(i).y;
count++;

}

}

das array wird dann in eine listbox geschrieben. funktioniert auch alles nur in der listbox stehen alle werte drin die größer sind aber auch 0 für jeden wert der kleiner ist. also zur frage a) warum ist das so und wie kann ich nur noch die gewünschten werte anzeigen lassen?

vielen dank schonmal im voraus mfg patrick
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
18.05.2005, 15:27 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


hä?

momentan seh ich noch keinerlei listbox-variablen ...

erklär nochmal genau was du genau meinst.
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
18.05.2005, 15:39 Uhr
~keine ahnung
Gast


also nochmal den code ausführlicher.

der teil befindet sich in der view klasse.


C++:
int arraysize = pDoc->Chromy->getMaxScan();


double myarray[5000];

int count = 0;

for (int i = 0; i < arraysize; i++)
{
    if (pDoc->Chromy->getPoint(i).y>14308)
    {
    
        
        myarray[count] = pDoc->Chromy->getPoint(i).y;          
    count++;
    
    }
    
}

die daten kommen aus einer datenbankabfrage. hier der dazugehörige teil aus der dialogklasse:

BOOL PeakResult::OnInitDialog()
{
    CDialog::OnInitDialog();

    // TODO:  Add extra initialization here


for (int i = 0; i < m_nArraySize; i++)
{
    CString s;
    s.Format("%.3f", m_pArray[i]);  //"%0.3f"
    m_ctrlListBox.AddString(s);
}



    return TRUE;  // return TRUE unless you set the focus to a control
    // EXCEPTION: OCX Property Pages should return FALSE
}





nochmal das problem. ich bekomme die gewünschten werte angezeigt allerdings zusätzlich für jeden wert der kleiner ist bekomme ich eine 0 in die listbox geschrieben. ich möchte aber verständlichweise nur die gewünschten werte angezeigt bekommen. wenn du mehr code brauchst......

mfg patrick

Dieser Post wurde am 18.05.2005 um 22:48 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
18.05.2005, 16:15 Uhr
Tommix



Hast Du m_nArraySize richtig gesetzt?

- Tommix
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
18.05.2005, 20:48 Uhr
~keine ahnung
Gast


arraysize ist auf 5000 gesetzt. einträge sind je nachdem was man für start und end wert eingibt.... auf aber jeden fall weniger als 5000. es ist also kein dynamisches array. wenn ich mir einfach alle werte anzeigen lasse stehen alle so wie es sein sollte in der listbox drin. und momentan stehen halt 3 werte drin (es sind nur 3 größer als die zahl mit der ich vergleiche) und lauter nuller für alle werte die kleiner sind. ich bin da recht ratlos was man da machen kann weil ich auch nicht großartig erfahrung hab und sowas noch nie gesehen hab. von demher wäre ich für jede hilfe sehr dankbar.

mfg patrick
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
19.05.2005, 01:30 Uhr
mmc20
puss in boots


naja,

C++:
int count = 0;

for (int i = 0; i < arraysize; i++)
{
    if (pDoc->Chromy->getPoint(i).y>14308)
    {
        myarray[count] = pDoc->Chromy->getPoint(i).y;          
        count++;
    }
}


wenn die for-schleife durch ist, wie gross ist dann count ? mmh ! etwa 3 ?
wo ist das problem ? wenn nur 3 werte grösser sind als der "schwellwert" wieviele sollen denn dann in dem array stehen ?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
19.05.2005, 07:37 Uhr
Tommix



'Morgen,
ich meinte sowas in der Art:

C++:
int count = 0;

for (int i = 0; i < arraysize; i++)
{
    if (pDoc->Chromy->getPoint(i).y>14308)
    {
        myarray[count] = pDoc->Chromy->getPoint(i).y;          
        count++;
    }
}

m_nArraySize = count;  // <<



Gruß, Tommix
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
19.05.2005, 10:42 Uhr
~keine ahnung
Gast


@tommix: vielen vielen dank es funktioniert jetzt. du hast mir mal wieder aus der patsche geholfen - wenn ich dich nicht hätte *G*. aber verstehen tu ich das ganze immer noch nicht. warum werden die nuller geschrieben?




@mmc 20: lies bitte nochmal meine postings durch. count ist 3 das problem war das ich trotzdem für jeden wert der kleiner war eine 0 geschrieben bekommen habe. also in meiner listbox nicht 3 werte standen sondern 500 wovon 497 nuller waren.

mfg patrick
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
19.05.2005, 10:47 Uhr
Tommix



Naja, offenbar war m_nArraySize doch 500, deshalb wurden alle Werte ausgegeben, auch die nicht belegten. Und die waren halt auf 0 gesetzt.

- Tommix
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
19.05.2005, 10:52 Uhr
~keine ahnung
Gast


@ tommix: na klasse dann hab ich wenigstens wieder was gelernt. vielen dank nochmal

mfg patrick
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: