denim44
Goto Top

If bedingung C plus plus

Cplus plus

Hi @ all,

Nach einer Reihe von Bedingungen, soll sich ein bestimmter Ordner öffnen. Problem ist hierbei nur, dass die Variable "druckernummer" nicht verglichen wird in der Bedingung.

Die Variable druckernummer ist vom Typ Integer und wird durch eine Textbox eingelesen.

if (druckernummer<=30 && maske == "pr-int_" && x==1 && druckernummer<=max)
{
system ("explorer.exe D:\\print_sync\\pr-int_nnn\\pr-int_001-_030");
x=2;
};

Content-ID: 134483

Url: https://administrator.de/forum/if-bedingung-c-plus-plus-134483.html

Ausgedruckt am: 24.12.2024 um 01:12 Uhr

76109
76109 27.01.2010 um 13:29:03 Uhr
Goto Top
Hallo Denim44!

Falls Dein Code funktioniert, wenn Du die Variable Druckernummer testweise durch eine Zahl ersetzt, dann könntest Du mal das versuchen:
Druckernummer = atoi(Textbox)

Gruß Dieter
Denim44
Denim44 27.01.2010 um 13:35:24 Uhr
Goto Top
druckernummer = atoi(textbox1);

Fehler 1 error C3861: "textbox1": Bezeichner wurde nicht gefunden. d:\dokumente und einstellungen\denim\eigene dateien\visual studio 2008\projects\print_sync\print_sync\Form1.h 364


WIe definiere ich das?
noodyn
noodyn 27.01.2010 um 13:36:48 Uhr
Goto Top
kommt über die textbox nicht char rein?

Setz dort doch mal einen Haltepunkt und kontrolliere Art und Inhalt der Variablen, offenbar scheitert es dann ja daran. Eine Frage hast du nämlich nicht formuliert.
Denim44
Denim44 27.01.2010 um 13:39:41 Uhr
Goto Top
Zitat von @noodyn:
kommt über die textbox nicht char rein?



hm .. ja das ist wahr... nur wie lese ich über eine Textbox einen Char Array ein und wandle ihn dann in einen Integer Wert um :S .. Hat da jemand kurz die Syntax parat??
Biber
Biber 27.01.2010 um 14:27:11 Uhr
Goto Top
Moin Denim44,
Zitat von @Denim44:
.. nur wie lese ich über eine Textbox einen Char Array ein und wandle ihn dann in einen Integer Wert um:S
.. Hat da jemand kurz die Syntax parat??

öööhm.... den Kommentar von didi1954 und den Hinweis auf atoi() hattest du aber wahrgenommen?

Grüße
Biber
Denim44
Denim44 27.01.2010 um 14:39:30 Uhr
Goto Top
ja wie mache ich das denn mit dem atoi??

Also meine Variante mit Fehleremeldung:

druckernummer = atoi(textbox1);

Fehler 1 error C3861: "textbox1": Bezeichner wurde nicht gefunden. d:\dokumente und einstellungen\denim\eigene dateien\visual studio 2008\projects\print_sync\print_sync\Form1.h 364


Wie definiere ich textbox1?? :S
76109
76109 27.01.2010 um 14:44:33 Uhr
Goto Top
Hallo Denim44!

atoi() ist lediglich eine Funktion, die eine Zahl im Textformat in einen Integer umwandelt. Und da wo Du in Deinem Code etwas in der Art wie "druckernummer = Textbox1.Value" stehen hast, müsstest Du die Funktion atoi() entsprechend eingefügen.

Gruß Dieter
Denim44
Denim44 29.01.2010 um 11:50:25 Uhr
Goto Top
-.- .. oh man .. ich glaube ich bin zu dumm dazu.
Also 2 Möglichkeiten, die beide nicht funktionieren:

atoi(druckernummer);


und


if (atoi(druckernummer)<=30 && maske == "pr-int_" && x==1 && atoi(druckernummer)<=max)


??????


[EDIT] : druckernummer wird mit "cin" von der textbox eingelesen
76109
76109 29.01.2010 um 12:08:17 Uhr
Goto Top
Zitat von @Denim44:
-.- .. oh man .. ich glaube ich bin zu dumm dazu.
Glaube ich nicht, ist sicher nur ein Verständnisproblemface-smile

Also, wenn die Variable druckernummer schon falsch initialisiert wurde, dann nützt es nichts, die Variable nachträglich mit "atoi() zu konvertieren. D.h. atoi muss an der Stelle stehen, wo der TextBox-Wert in die Variable druckernummer übernommen wird. Am besten Du postest mal den Teil mit dem "cin" und "TextBox"

Gruß Dieter
Denim44
Denim44 29.01.2010 um 12:19:54 Uhr
Goto Top
private: System::Void textBox1_TextChanged(System::Object^ sender, System::EventArgs^ e) {
cin >> druckernummer;
}
76109
76109 29.01.2010 um 13:14:28 Uhr
Goto Top
Hallo Denim44!

Mhm, möglicherweise funktioniert das hier:
private: System::Void textBox1_TextChanged(System::Object^ sender, System::EventArgs^ e)
{
    druckernummer = Integer::Parse( TextBox1->Text )
}

Gruß Dieter
Denim44
Denim44 29.01.2010 um 13:21:22 Uhr
Goto Top
hm :S .. also ich habe jetzt noch mal direkt auf textbox1 gezeigt mit:
druckernummer = Integer::Parse(this->textBox1->Text);


Aber jetzt werden trotzdem 2 Fehler angezeigt:

Fehler 1 error C2653: 'Integer': Keine Klasse oder Namespace d:\dokumente und einstellungen\denim\eigene dateien\visual studio 2008\projects\print_sync\print_sync\Form1.h 369


Fehler 2 error C3861: "Parse": Bezeichner wurde nicht gefunden. d:\dokumente und einstellungen\denim\eigene dateien\visual studio 2008\projects\print_sync\print_sync\Form1.h 369


Fehlen mir da evtl. Header?? Wenn ja welche?
76109
76109 29.01.2010 um 13:46:08 Uhr
Goto Top
Hallo Denim44!

Zitat von @Denim44:
Fehlen mir da evtl. Header?? Wenn ja welche?
Kann ich Dir nicht sagen, habe seit über 10 Jahren nix mehr mit C gemacht. Allerdings war in "Integer::Parse( TextBox1->Text )", dass Integer eine Ableitung meinerseits. Bin davon ausgegangen, dass wenn es ein "Double::Parse( TextBox1->Text )" gibt, es auch mit Integer gehen müsste. Aber vielleicht heißt es auch einfach nur INT? Kannst Du das nicht über die Hilfe rausfinden?

Eventuell funktioniert an dieser Stelle dann auch das:
druckernummer = atoi( TextBox1->Text ) 

Gruß Dieter
Denim44
Denim44 29.01.2010 um 13:56:54 Uhr
Goto Top
JAAAA!!!!! es klappt :D


@Dieter :
danke für die schnelle Hilfe. Hat mit "int::parse" geklappt.


also nochmal finale Lösung des Problems:

druckernummer = int::Parse(this->textBox1->Text);


Danke natürlich auch an alle anderen !! (:
76109
76109 29.01.2010 um 14:01:55 Uhr
Goto Top
Hallo Denim44!

Na Tollface-smile Freut mich, dass es nun endlich doch noch geklappt hat.

Gruß Dieter