Ich bin am Ende! CString in while-schleife!






  • So, guten morgen!

    Danke für das viele Feedback. Wie schon gesagt, war der Quelltext aus einer Konsolenanwendung ohne MFC, aber ich musste ich nun für ein Projekt zur Textanalyse mit anschliessender Kodierung umschreiben.

    Eingabe[x]!=NULL hatte nur überprüft, ob der String an der Stelle x ein Zeichen enthält. Wenn nicht, wäre die Schleife am Ende des Strings angekommen und die Schleife hätte abgebrochen.

    Mit Eingabe.Getlength() funktionierts wunderbar.

    Vielen Dank nochmal

    CU 😉



  • Original erstellt von dEUs:
    **Hm?

    ]**

    Wieso sollte das so sein.

    CString Eingabe[20];
    Eingabe[0]  = _T("Hallo")
    

    Und wo ist jetzt der char ?



  • Ähm UnixTom ??
    Er verwendet doch kein CString-Array! Eingabe ist ein einfacher CString und bei normalen CStrings gibt der []-op eben nen char zurück!



  • Eigentlich eh egal. Ich wollte nur aufzeigen das es zum Mißverständnissen kommen kann wennn man nur Codebrocken hinwirft ohne z.B zumindest die Variablendeklaration auch zeigt.



  • ahso *g*
    Dann sag das doch früher 🙄



  • CString Eingabe[20];
    Eingabe[0] = _T("Hallo")

    Das wirds dir um die Ohren hauen.
    Eingabe[0] ist gleichbedeutend mit Eingabe.GetAt(0). Hier wird keine Referenz zurückgeliefert.
    Falls es wirklich gehen würde könntest du danach die Adresse vom 'H' aus "Hallo" in Eingabe[0] abrufen. Also auch nicht der gewünschte Effekt.



  • Original erstellt von Kauz01:
    [quote]CString Eingabe[20];
    Eingabe[0] = _T("Hallo")

    **
    Das wirds dir um die Ohren hauen.
    Eingabe[0] ist gleichbedeutend mit Eingabe.GetAt(0). Hier wird keine Referenz zurückgeliefert.
    Falls es wirklich gehen würde könntest du danach die Adresse vom 'H' aus "Hallo" in Eingabe[0] abrufen. Also auch nicht der gewünschte Effekt.**[/QUOTE]

    😕 😕

    Schon versucht ?

    Ich schon !



  • Kauz: Das ist Quatsch!



  • @dEUs

    Hast recht. Was in meinem letzten Beitrag steht ist Quatsch. Ich hab mich aufs Glatteis führen lassen. Am Anfang dieses Threads hieß es:

    Eingabefenster zeigt auf den CString Eingabe

    und Eingabe wurde als CString angegeben. Ich glaub es war Unix-Tom, der dann als erster die Deklaration "CString Eingabe[20]" brachte. Eigentlich als Hinweis, dass der Anfang missverständlich war, da die Deklaration fehlte 😃 .
    Ich hab nur am Anfang aufgepasst und nicht gesehen, dass das inzwischen für ein Feld steht.
    Btw. Jetzt könnte man mal wieder darüber streiten, ob man Missverständnisse vermeiden kann, wenn man
    "CString strEingabe" statt "CString Eingabe" schreibt. 😉
    Ich glaube im MFC-Forum hatten wir das noch nicht.

    [ Dieser Beitrag wurde am 28.06.2003 um 10:10 Uhr von Kauz01 editiert. ]



  • nur dass das wieder nix bringt 😉
    ich schreib zb auch CString strEingabe und CString strEingabe[20] 😉 also könnte man es bei mir net rauslesen.



  • @dEUs

    Es heißt ja (allerdings auch nicht ganz korrekt)
    CString pStrEingabe[20] (p für Pointer).
    Zumindest mach ich das so.

    [edit]"Es heißt ja" soll nur heißen "ich finde es besser und hab schon öfter gesehen". Will keinen Flame deswegen 🙂 [/edit]

    [ Dieser Beitrag wurde am 28.06.2003 um 21:22 Uhr von Kauz01 editiert. ]

    [ Dieser Beitrag wurde am 30.06.2003 um 06:20 Uhr von Unix-Tom editiert. ]


Anmelden zum Antworten