Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Keine Zuweisung an CString

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
15.07.2005, 19:20 Uhr
~Atlan
Gast


Hallo Forum

Visual C++
Ich habe hier eine Funktion die einen CString zusammensetzt.

C++:
CString CFragebogen_Eingabe::FillSpeicherString()
{
    CString ReturnStr = "";
    CString Bewertung = "";


    if(m_strFrage1.IsEmpty() == FALSE){
        ReturnStr += mm_strKlasse;
        ReturnStr += '\t';
        ReturnStr += m_strGeschlecht;
        ReturnStr += '\t';
        ReturnStr += m_strFrage1;
        ReturnStr += '\n';
    }
    return ReturnStr;
}


Diese Funktion arbeitet einwandfrei und setzt den CString richtig zusammen.

C++:
CString CFragebogen_Eingabe::FillSpeicherString2()
{
    CString ReturnStr = "";
    CString Bewertung = "";


    if(m_strFrage1.IsEmpty() == FALSE){
        ReturnStr += mm_strKlasse;  //Zuweisung erfolgt
        ReturnStr += '\t';          //Ab hier keine Zuweisung mehr  
        ReturnStr += m_strGeschlecht;
        ReturnStr += '\t';
        ReturnStr += m_strFrage1;
        ReturnStr += '\n';
    }
    return ReturnStr;
}


In dieser Funktion klappt es nicht.
auch diese Form ReturnStr + m_strGeschlecht; klappt nicht;
Diese Merkwürdigkeit ist mir schon ein parmal aufgefallen.
Kann das Jemand erklären?

Gruss Atlan
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
15.07.2005, 20:33 Uhr
Skippy



habe zwar keine ahnung davon aber probier doch einfach mal ob es funktioniert

ersetzte doch einfach mal '\t' durch "\t"
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
16.07.2005, 11:42 Uhr
~Atlan
Gast


Der Operator += funktioniert auch in einer anderen Funktion nicht.

Bin echt ratlos.
Wie kann ich noch die CStrings zusammenfügen?

Gruss Atlan
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
16.07.2005, 12:10 Uhr
Skippy



so hier mal ein beispiel aus meinen Webserver


C++:
    r->status_ = "404 Object nicht Gefunden";
    title      = "Falsche URL";
    body       = "<h1>Falsche URL</h1>";
    body      += "Der Pfad war : &gt;" + r->path_ + "&lt;";
    body      += "   Der Dateiname  war : &gt;" + r->ufilename_ + "&lt;";
    body      += "   Die Dateiextension  war : &gt;" + r->ufileext_ + "&lt;";
    body      += "   Der Komplette pfad(pfad+dateiname) war : &gt;" + r->complpfadfile_ + "&lt;";



dann noch folgende fragen zu deinem project

1.

ReturnStr += mm_strKlasse; //Zuweisung erfolgt

ist dies die erste zuweisung des strings ReturnStr oder steht in dem schon etwas drin
wenn nicht ersetzte += durch =

2.hast du meinen ratschlag befolgt? und '\t' durch "\t" ersetzt?

3.
wenn 2. nicht hilft dann kommentier mal die 2 zeile aus also
dann schau mal ob jetzt die nachfolgende zeile jetzt mitangehängt wird

4. eine idee wäre noch


schau doch mal im deinen code ob zufälliger weise "mm_strKlasse"

mit einem null terminator ( \0) abgeschlossen wird
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
16.07.2005, 16:02 Uhr
~Atlan
Gast


Hallo Skippy

Habe den Fehler gefunden.
"mm_strKlasse" "m_strGeschlecht" "m_strFrage1" werden aus einer Datei ausgelesen.
Nach dem auslesen hänge ich noch ein \0 an.
Dieses \0 wird in den "ReturnStr " mit übertragen und deshalb ist die Darstellung
von "ReturnStr " = der Inhalt vom "mm_strKlasse".
Wenn man sich den String zeichenweise mit dem []Operator ausgibt,
dann sieht man das "ReturnStr " voll belegt ist.

Kleine Ursache grosse Wirkung.
Gruss Atlan
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
16.07.2005, 17:12 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


normalerweise musst du CStrings nicht noch extra nullterminieren, das ist wahrscheinlich dein problem ...
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
16.07.2005, 19:01 Uhr
~Atlan
Gast


Genau das war es.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


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: