2012-12-25 10 views
8

Ich habe diesen aktuellen Code, der "AAPL" in ein Excel-Blatt eingibt, und die entsprechenden Wert zurückgibt.konvertieren Sie eine Zeichenfolge in eine Variante in C++

ich es machen möchte, so dass nach cout << "Ticker: "; kann ich ein Ticker-Symbol (wie AAPL) eingeben und verwenden diese als variant_t ticker = "xxx". ich so tun versucht, durch string mit, aber ich erhalte eine Fehlermeldung, die nicht konvertieren von 'std::string to const _variant_t &' sagt kann Gibt es das überhaupt, um das zu tun? Danke im Voraus.

XL->Workbooks->Open(L"F:\\xxx\\Desktop\\fxxxx.xlsx"); 
Excel::RangePtr pRange = pSheet->Cells; 

cout << "Ticker: "; 
variant_t ticker = "AAPL"; 

pRange->Item[2][1] = ticker; 
double value = pRange->Item[2][2]; 
cout << "\n Value = " << value << endl; 

Antwort

6

Anruf ticker.SetString(str.c_str()) sollte den Job erledigen.

See: http://msdn.microsoft.com/en-us/library/x295h94e%28v=vs.100%29.aspx

+0

Vielen Dank für Ihre Hilfe, ich Zugabe schon versucht, diese in verschiedenen Linien, aber eine Fehlermeldung erhalten, wo genau, wo ich es ? – user1594369

+0

Irgendwo zwischen 'variant_t ticker;' und 'pRange-> Item .. = ticker;'. Natürlich sollte "str" ​​unabhängig von der Eingabe der std :: string sein. Wahrscheinlich möchten Sie das tun, NACH dem Lesen der Zeichenfolge, oder es wird nicht die richtige Wirkung haben. ;) –

+0

Vielleicht möchten Sie Ihre Antwort als eine "Antwort" hinzufügen (macht den Code viel lesbarer) - und wenn Sie denken, ich hätte Ihnen geholfen, dorthin zu gelangen, "akzeptieren" Sie meine Antwort. –

2

Hier ist der Arbeitscode:

XL->Workbooks->Open(L"F:\\xx\\Desktop\\xxz.xlsx");        //Open databse 
    Excel::_WorksheetPtr pSheet = XL->ActiveSheet;          //Point to Active Sheet 
    Excel::RangePtr pRange = pSheet->Cells;            //Point to Active Cells 
    cout << " Ticker: ";                //Prompt Ticker 
    string tick;                  //Define string "tick" to store ticker 
    cin >> tick;                  //Store ticker 
    variant_t ticker;                 //Define variant to be used for ticker 
    ticker.SetString(tick.c_str());              //Convert string to variant         
    pRange->Item[2][1] = ticker;              //Write ticker to cell 
    double bi = pRange->Item[2][2];              //Read Beta, store as "bi" 
    cout << "\n Beta = " << bi << endl;             //Return Value 
    XL->Application->Quit(); 
Verwandte Themen