PDA

Vollständige Version anzeigen : Typumwandlung CString-Integer


kandi
20.07.2004, 18:31
Hallo Forum,
als C++Neuling hab ich zur Übung eine Dialoganwendung von Visual Studio 6.0 generieren lasssen. In der Dialog-Implementierung möchte ich User-Eingaben in eine Textbox über eine Nachrichtenbehandlungsroutine (::OnKillFocusBlabla) auswerten. Die Eingaben können entweder Zeichenfolgen oder Zahlen sein. Der aktuelle Wert der Textbox soll dann nach entspr. Prüfung entweder einer String- oder einer Integervariablen zugewiesen werden.
Die Zuweisung der String-Variablen an die Integervariable funktioniert aber nicht. Dies bedeutet auch, dass

Innerhalb der Klasse CString gibt es offensichtlich auch keine Memberfunktion, die soetwas leistet.
Die Suche in der MSDN nach allgemeinen Standardfunktionen und MFC-Makros brachte noch keinen Erfolg.
Könnte mir jemand einen Tip geben?

Gruss Andreas

77King
11.08.2004, 12:49
Schau dir mal das an:

AnsiString string;
int zahl;
bool esisteinezahl;
string = Edit1->Text;
try
//Wenn es im try-Bereich einen Konv-Fehler geben sollte,
// fange ihn ab und...
{
zahl = StrToInt(string);
Label1->Caption = "Es ist eine Zahl!!";
}
catch(EConvertError&)
{
Label1->Caption = "Es ist ein String!!";//...führe den Catch-Bereich aus
}

Wenn du das Programm dann in der C++ Umgebung testest kommt die fehlermeldung von wegen Konvertierungsfehler immer noch, startest du das compilierte Programm aber ohne C++ Umgebung (ohne Debugger), also einfach als fertige Anwendung unter Windows, funktioniert es.

MfG Steffen

kandi
25.08.2004, 15:54
Danke Steffen, der Tip hat gewirkt. Gruss Andreas

unix-tom
02.09.2004, 18:08
AnsiString ist keine Klasse der MFC.
Sieht mir nach Borland aus.


CString teste("23");
int itest = 0;
itest = atoi(teste);


und zurück.

CString teste;
int itest = 23;

teste.Format("%i",itest);