2 Fragen zu Map - Rückgabewert != AnsiString ;-(



  • Hi,
    ich habe mir eine map erstellt:

    std::map<AnsiString, AnsiString> iniTable;
    

    jetzt will ich den Rückgabewert in einen AnsiString schreiben:

    AnsiString MyINI::Value(char* VarName){
            AnsiString Value;
            Value =  iniTable.find(VarName);
            return Value;
    }
    

    jetzt bekomme ich einen Fehler

    [C++ Fehler] MyINI.cpp(61): E2285 Keine Übereinstimmung für 'AnsiString::operator =(_Rb_tree_iterator<pair<const AnsiString,AnsiString>,_Nonconst_traits<pair<const AnsiString,AnsiString> > >)' gefunden

    dieser Fehler taucht in der Zeile

    Value =  iniTable.find(VarName)
    

    auf.

    Meine Frage: wie kann ich diesen Rückgabewert in die Variable Value speicher??

    Meine 2. Frage da muss ich zugeben ich habe noch nicht gesucht weil ich erst mal die erste Frage wissen muss: Wie kann man einen Mapdruchlaufen??

    Also ich habe eine Map:

    bla=bla1
    zzzz=schlaf
    test=testen

    So jetzt würde ich gerne einen Wert nach dem Anderen Ausgeben z.B. so:

    bla,bla1;zzzz,schlaf;test,testen;

    odert so ähnlich

    Vielen dank
    mfg
    wdsl



  • Hi,
    da musst du dir mal das thema iteratoren ankucken.
    find liefert dir einen solchen zurück und die variable wird im iterator über (öhm glaub ich) second angesprochen.
    mit den iteratoren kannst du auch durch die map wandern.
    hilft vielleicht
    CU



  • Also ich hoffe mal stark, du baust die TIniFile-Klasse nur aus Übungszwecken nach...

    Was deine Frage angeht... wenn ich mich richtig erinnere liefert map::find doch das pair (also Schlüsselname und Wert) zurück? Da musst du also mit pair::first und pair::second arbeiten...

    Die 2. Frage beantworte ich (zwecks Lerneffekt) nicht, da diese nicht zum Threadthema gehört. (Noch ein Tip. Diese 2. Frage ist im C++ Forum prinzipiell eh besser aufgehoben. Wenn du da postest, werde ich dir vielleicht antworten (o; )

    -junix



  • Au menno... wieder zu spät )o:

    -junix



  • junix schrieb:

    Diese 2. Frage ist im C++ Forum prinzipiell eh besser aufgehoben.

    Die erste eigentlich auch, oder? 😉
    Das Problem ist ja nicht der AnsiString.



  • Stimmt natürlich... aber da die jungs bei C++ ja nie was von AnsiString wissen wollen wollte ich ihm die dumme Anquatsche ersparen... *nachausredesuch* (o;

    Kannst ja verschieben... aber mit der ersten Aussage, dass die 2. Frage nichts mit dem Thread zu tun hat, hab ich recht! *zurehabilitierenversuch* (o;

    -junix



  • Also ich würde vorschlagen, dass wir hier zumachen, wdsl seine erste Frage (mit einem "neutralen" Datentyp) im C++-Forum neu stellt und mit der zweiten Frage wartet, bis die erste geklärt ist. Ggf. wird sie damit ja hinfällig.



  • Hab mal wieder zu langsam geguckt. Wenn Ihr wollt, könnt Ihr meines gleich mitverschiben (multiset), obwohl ich gerade wegen der Fehlermeldung dieses Forum ausgewählt habe.



  • Ist die TIniFile-Klasse den auch auf Linux Portabel??



  • TIniFile gibt's auch in der CLX bzw. in Kylix.



  • vielleicht mal eine dumme frage wenn ich jetzt ein c++ Programm auf Linux Portieren will kann ich dann einfach Kylix nehmen ?? ich habe gadacht das ist Delphi oder?

    und kan ich dass dan auch in Konsolenanwendungen verwenden??



  • Die Frage ist insofern dumm als dass sie absolut nichts mit dem Thema des Threads zu tun hat. Also bitte beim Thema bleiben oder einen neuen Thread beginnen. Natürlich nicht, ohne vorher ausführlich von der BCB-Hilfe, der FAQ und der Suchfunktion hier Gebrauch gemacht zu haben.

    Kylix3 unterstützt auch C++, und mit Kylix lassen sich, wie mit Delphi oder dem BCB, auch Konsolenanwendungen erstellen.


Anmelden zum Antworten