true//false ????



  • Hallo,

    nach dem ich euch schon soooo lange nicht mehr genervt habe, dacht ich mir das es mal wieder zeit wird ....

    Folgendes ich habe ein paar kontrollkästchen die ich gerne abfragen würde.
    Ich habe es auch mit einer if-anweisung schon gelöst, aber leider funktioniert das nicht so wie es soll.
    so sieht die abfrage aus:

    if(m_v1==true)
    		{
    
    schreib etwas in ein text file	
    
    		}
    

    aber tut nur dann etwas in das text-file schreiben wenn ich false schreibe, und dann ist es egal ob ich das häkchen gesetzt habe oder nicht.bei true macht er gar nichts, weder bei gesetztem häkchen noch bei ungesetztem.

    das file in das geschrieben wird, öffne ich vor der anweisung, ich habe ca. 66 von m_v1( m_v1-m_v66).
    Aber normal dürfte das doch alles kein problem sein.

    kann mir jemand ein denkanstoss geben und sagen, warum es nicht gehen (könnte)???
    Vielen lieben dank.



  • UpdateData(TRUE); vergessen?



  • hab ich schon probiert, aber es steht nicht mehr dabei..
    schreibe ich das direkt vor die erte anweisung??
    da will ich es nochmal probieren....



  • also ich habe das eben nochmal dzu geschrieben, direkt nach dem das file geöffnet wird, aber keine reagtion.
    es geht immer noch nicht......



  • Du musst es natürlich vor dein erstes if schreiben ... Also bevor du eine der m_v-Variablen abfragst ...



  • hab ich gemacht,
    hat nichts gebracht,
    es geht nicht
    hast du vielleicht eine andere idee, woran es noch liegen könnte.
    Ich habe eine ähnliche abfrage woanderes und die geht auch, die hatte ich auch als vorlage genommen, halt hab ich es so umgeändert wie ich es da wo ich momentan bin, brauche.
    da ist bestimmt wieder irgendwo ein dankfehler meinerseits drin, aber wo nur oder kann das auch sein das das tätsichlich nicht funktioniert???



  • hm ...
    Wie hast du denn m_v1, m_v2 usw deklariert?



  • über den klassenassistent, vom typ BOOL,
    dachte ich auch erst....



  • Zeig mal deine Funktion ...
    (so langsam gehen mir die Ideen aus :D)
    Allerdings muss ich jetzt noch ma kurz in die Schule, kanns mir erst in ner Stunde angucken.



  • sinds denn tatsächlich membervariablen der checkboxen, oder...?und updatedata(false) holt doch die werte aus den checkboxen in die membervariablen.. true weist die geänderten werte in membervariablen den steuerelemente zu



  • bellaschönchen schrieb:

    und updatedata(false) holt doch die werte aus den checkboxen in die membervariablen.. true weist die geänderten werte in membervariablen den steuerelemente zu

    Tut mir leid, da muss ich dich enttäuschen, es ist genau anders herum:

    MSDN schrieb:

    Flag that indicates whether dialog box is being initialized (FALSE) or data is being retrieved (TRUE).



  • if (in_file.Open(file_name, CFile::modeCreate|CFile::modeReadWrite))
    {
    UpdateData(TRUE); 
    //wenn V1 markiert dann schreiben,usw...
    if(m_v1==true)
    {
    wenn gesetzt dann schreibe in File			
    }
    if(m_v2==true)
    {
    .
    .
    .
    }
    else
    {	
    in_file.WriteString("geht nicht");
    in_file.WriteString("\n");
    		}
    in_file.Close();
    }
    CStdioFile out_file;
    
    	if (out_file.Open(file_name,  CFile::modeReadWrite, &cfeException))
    	 { 
    // öffnen des urfiles, lesen in puffer und dann in neues File schreiben
    if (in_file.Open(urfile, CFile::modeRead, &cfeException))
    {	
    					DWORD laenge = in_file.GetLength();	
    	in_file.Read( buf, laenge);
    	DWORD dwActual = out_file.SeekToEnd();
    	out_file.Write(buf,laenge);
    	}
    	out_file.Close();
    	in_file.Close();
    }
    

    so sieht das alles aus, aber das das alles passiert wenn ich auf den weiter button drücke kann doch auch nicht sein.
    Der weiter button, tut weiter blättern in einer verketteten liste, und wenn der gedrückt wird soll das was markiert ist in das File geschrieben werden und halt eben weiter geblättert werden innerhalb der verketteten liste.



  • BOOL versteht sich aber schlecht mit bool. Nimm mal TRUE statt true.



  • war ein versuch wert
    geht aber auch nicht.....



  • estartu_de schrieb:

    BOOL versteht sich aber schlecht mit bool. Nimm mal TRUE statt true.

    Das ist quatsch. TRUE ist als 1 definiert. Und alles ungleich 0 ist true.



  • Mag ja sein, aber ich kann mich errinnern, von einem "Guru" den Rat bekommen zu haben, dass ich die nach Möglichkeit nicht mischen soll.
    Da halte ich mich dran - jedem das seine.



  • Das ist ja was anderes. Natürlich sollte man sie nicht mischen, weil es Warnungen gibt und man Warnungen grundsätzlich vermeiden sollte. Das ändert nichts daran, dass es funktioniert.



  • Wenn dir der "Guru" den rat gegeben hat, das nicht zu mischen, dann mestimmt auch, das man niemals (NIEMALS! N I E M A L S !) mit "==true" oder "==TRUE" vergleichen sollte!?

    Ja, da bin ich total verbohrt und laß nicht mit mir reden.
    Denn das geht leider nur solange gut, bis es mal schief geht, da sich hinreichend viele API's nicht an "true == 1" halten.

    Und außerdem lifert in

    bool b = ...;
    if (b == true)
    

    der Ausdruck "b==true" einen bool zurück - nun möchtest du ja wissen, ob dieser true oder false ist, also schreibst du besser (b==true)==true

    was auch nur einen bool zurückliefert, also doch besser ((b==true)==true)==true
    was..

    😃



  • Wie bitte? Kannst du deinen Text mal übersetzen? was ist zb der Quatsch mit "da sich hinreichend viele API's nicht an "true == 1" halten. " ??



  • Nein, das kam in dem Zusammenhang nicht vor.

    Außerdem ist das Weglassen Geschmackssache.



  • @peterchen: Wenn du schon Langeweile hast und solch einen komischen Quark von dir gibst dann mecker doch mal hieran herum...

    BOOL b = 200;
    if((!!b != 0) == TRUE)
      machWas();
    

    PS: Hab auch Langeweile.
    PPS: Warum versaue ich eigentlich fremde Threads. Dickes sorry an den Ersteller 😉 .


Anmelden zum Antworten