Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » CString auswerten

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
25.11.2004, 19:56 Uhr
~suncat
Gast


hi,
Ich will in meine "Edit Box" Hexzahlen eingeben z.b.

1a 22 36 bb .........

Der CString für die "Edit Box" ist m_text_in

Mit den Zahlen will ich weiterrechnen

Über einen Buttion, will ich das Erste Zeichen einer Variablr zuweisen.
Dann mit einen IF Funktion schauen ob es 1 ist, wenn ja wird int a = 1 zugeweisen, wenn die Zahl 2 ist dann ist a = 2 ..........Dann kommt das Zweite Zeichen.....

Zu meinem Problem:

if ( "0" = ***Problem (erstes Zeichen) ***)
{
a = 0;
}

else

if ( "1" = ***Problem (erstes Zeichen) ***)
{
a = 1;
}

else .........

Ich könnte das Problem auch mit einenswitch case lösen, aber ich interesiert erstmal das erste Zeichen.

2. Problem:

In der Zeile 2 will ich das 3te Zeichen prüfen, wie geht das?

Ich progge mit Visual c++ 2003.net

*thx* im Voraus
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
25.11.2004, 22:20 Uhr
Spacelord
Hoffnungsloser Fall


Als erstes darfst du nicht "0" nehmen. "0" ist ein String! Das Zeichen ist '0'.
Das Zeichen aus dem CString bekommst du mit GetAt oder dem [] Operator.
Also etwa in der Art
C++:
if(m_text_in.GetAt(0)=='0')




MfG Spacelord
--
.....Ich mach jetzt nämlich mein Jodeldiplom.Dann hab ich endlich was Eigenes.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
25.11.2004, 22:27 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


er kann "" nehmen wenn er Mid(Pos,1) benutzt, aber GetAt ist natürlich besser
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
25.11.2004, 23:33 Uhr
~Suncat
Gast


*mega THX*

Super Support :-)

ok,hätte jemand eine Idee zu Problem 2.

-----die EDIT BOX--------------
01 05 02 05 04 05 FF BB CC 22
AB 25 54 65 54 55
-------------------------------
Nach 22 wurde ein Zeilenumbruch gemacht,

wie bekomme ich die AB in GetAt rein?

DAnke im Voraus
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
26.11.2004, 00:07 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


also ich peil nicht so ganz worauf du hinauswillst... bzw. was du genau machen willst... wenn du das mal erklären würdest könnte man dir vielleicht eine Problemadäquate Lösung anbieten... um auf deinen zeilenumbruch zu kommen... das sind auch einfach 2 zeichen in deinem string nämlich \r\n bzw in asciwerten 13 und 10.... danach kommt dann der rest deines strings
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
26.11.2004, 00:24 Uhr
~Tomycat
Gast


hi,
ich habe einen Zahlenhaufen, in einer txt Datei.

z.b.

01 02 5C 44 33 A5 74 65
23 56 45 98 65 F3 12 45 AA
....

Dieser haufen, kopiere ich heraus, und füge es in meinem Prog ein.
Diese Zahlen, sollen weiterverarbeitet werden.

Die Edit Box ist ein CString und jede einzelne Zahl will ich einem INT haben
Wie werte ich die zweite Zeile aus?

Ich will jetzt z.b. Zeile 2 Spalte 1 in einer int T haben.
Wie mache ich das?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
26.11.2004, 00:38 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


meinst du jetzt nur die 2 oder die 23 als eine zahl...
wenn du dsa in nen CString hast kannst du auch einfach die zeilen so lange durchgehen bis du du nen \r\n findest diesen dann ignorieren und zur nächsten zeile übergehen...

also ne einfach lösung wäre z.b. immer ein zeichen (das vordere) einlesen, weiterverarbeiten und dann zu löschen (mit Delete ist eine memberfunktion von CString... dann dann nächste usw.. jedesmal checken ob das zeichen ein \r oder \n ist und wenn ja einfach nur löschen und danach fängt dann die nächste zeile an
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
26.11.2004, 08:48 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


oder machst gleich so das du alle \r\n's mit Replace rauskillst (falls die Zeilenumbrüche egal sind) und benutzt dann AfxExtractSubString um dir alle Hex-Paare nacheinander ausgeben/rauslesen zu lassen.
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
26.11.2004, 20:09 Uhr
~suncat
Gast


*thx*

ähh -> AfxExtractSubString -> ???
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
26.11.2004, 21:37 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


naja z.b so:


C++:
CString strText; // inhalt 02 04 07 fa 3e\r\n44 34 3a 4e ff
CString strWert;

strText.Replace("\r\n","");

for(int x = 0; AfxExtractSubString(strText,strWert,x,' '); x++)
{
  // strWert enthält nun nacheinander die werte
  std::cout << x << " - " << strWert << std::endl;
}



sollte dann


Code:
0 - 02
1 - 04
2 - 07
3 - fa
4 - 3e
5 - 44
6 - 34
7 - 3a
8 - 4e
9 - ff


--
class God : public ChuckNorris { };
 
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: