Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » CString zerlegen

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
20.03.2006, 08:41 Uhr
muck2000



Hallo zusammen!

Ich hätte da mal ein kleines Problem.

Ich lese in der Funktion "OnInitDialog" über "CString Parameter = GetCommandLine();" meinen Programmpfad mit den übergebenen Parametern ein (Ternnzeichen " "). Nun möchte ich den String in seine Einzelteile zerlegen und diese in einem Array oder in Variablen zur Weiterverarbeitung speichern.
Ich hab da auch schon einen Lösungsansatz:

char* string = Parameter.GetBuffer(Parameter.GetLength());
char* wort;

wort = strtok(string, " ");

Funktioniert prima, allerdings nur bis zum ersten Trennzeichen. Sämtlich versuche mit Schleifenkonstruktionen usw. sind schief gegangen. Oder bin ich vielleicht auf dem falschen weg?

Im Voraus schonmal vielen Dank.
(VisualStudio 6 Standartedition)

Gruß Sven
--
Nimm das Leben nicht so ernst, da es eine Sache ist aus der Du eh nicht lebend raus kommst!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
20.03.2006, 11:14 Uhr
mmc20
puss in boots


hi, was ich nicht verstehe... warum um himmels willen nutzt du nicht die funktionen dazu die CString bietet, und wiso benutzt du char* ??? wenn du schon mit der MFC programierst, dann benutz sie auch.
für sowas hab ich mir mal ne function geschrieben:

C++:
CString SplitString( char cSeparator, CString& data)
{
    CString tmp;
    int index = data.Find( cSeparator );
    if ( index >= 0 ) {
        tmp = data.Left( index );
        data.Delete( 0, index+1 );
    } else {
        tmp = data;
        data = "";
    }
    return tmp;
};



C++:
// und so benutzen...
CString sTemp="Hallo das ist ein Test|Und das auch";
CString tmp;
tmp = SplitString( ' ', sTemp);
// jetzt steht in tmp "Hallo" und in sTemp "das ist ein Test|Und das auch"
// oder
tmp = SplitString( '|', sTemp);
// dann steht in tmp "das ist ein Test" und in sTemp "Und das auch"
// d.h. sTemp wird jedesmal gekürzt, und zwar um genau das was in tmp landet
// die trennzeichen werden gelöscht
// wenn das trennzeichen nicht gefunden wird, wird der ganze source-string übergeben


Dieser Post wurde am 20.03.2006 um 11:15 Uhr von mmc20 editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
20.03.2006, 11:30 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


hi, dafür gibts AfxExtractSubString
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
21.03.2006, 09:28 Uhr
~muck2000
Gast


Hi mmc20,

Danke für die Antwort funktioniert astrein. Beschäftige mich erst seit kurzem mit der MFC und bin noch am üben! Aber es wird besser.
 
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: