2012-12-25 8 views
8

Mam bieżący kod, który typy "AAPL" w arkuszu excel, a zwraca odpowiednią wartość.Konwertuj ciąg znaków na odmianę w języku C++

Chciałbym, aby tak było, że po cout << "Ticker: "; mogę wpisać symbol giełdowy (takich jak AAPL) i używać go jako variant_t ticker = "xxx". Próbowałem robi to za pomocą string ale pojawia się błąd, który mówi nie można przekonwertować z 'std::string to const _variant_t &' Czy jest to mimo wszystko? Z góry dziękuję.

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; 

Odpowiedz

6

Zadzwoń pod numer ticker.SetString(str.c_str()) powinien wykonać zadanie.

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

+0

Dzięki wielkie za pomoc, próbowałem dodając to w różnych liniach, ale pojawia się błąd, gdzie dokładnie, gdzie umieścić go ? – user1594369

+0

Gdzieś pomiędzy 'variant_t ticker;' i 'pRange-> Item .. = ticker;'. Oczywiście 'str' powinno być czymkolwiek, co wywołuje twoje wejście std :: string. Prawdopodobnie zechcesz to zrobić PO przeczytaniu napisu lub nie będzie to miało właściwego efektu. ;) –

+0

Możesz dodać swoją odpowiedź jako "odpowiedź" (sprawia, że ​​kod jest znacznie bardziej czytelny) - a jeśli myślisz, że zrobiłem to, aby ci pomóc, "przyjmij" moją odpowiedź. –

2

Oto kod roboczych:

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();