Problem mit Typumwandlung
-
//--------------------------------------------------------------------------- #include <vcl.h> #include <iostream.h> #pragma hdrstop #include "MainUnit.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TMainForm *MainForm; //--------------------------------------------------------------------------- __fastcall TMainForm::TMainForm(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TMainForm::SearchBtnClick(TObject *Sender) { time_t sTime; //sTime = time(0); time_t eTime; //eTime = time(0) - sTime; char Site[100000]; std::string searchValue1; char searchValue2[9999]; searchValue1 = "http://www.google.de/#q="; searchValue2 << SearchValue -> Text; Site << httpAdapt -> Get(searchValue1+searchValue2); MainForm -> Caption = strstr(Site, "onmousemove"); } //---------------------------------------------------------------------------
Kann mir jemand von euch sagen wie ich das Problem hier löse? Es geht um die Zeile "searchValue1+searchValue2" bei der ich immer den Fehler "[BCC32 Fehler] MainUnit.cpp(31): E2094 'operator+' ist im Typ 'string' für Argumente des Typs 'char *' nicht implementiert" zurückbekomme! Ich hoffe ihr könnt mir helfen.
hp Chowix
-
Hi,
versuch mal
[cpp]Site << httpAdapt -> Get(searchValue1+searchValue2**.c_str()**);[/cpp]//edit: ach, wieso funzen denn die Cpp-Tags nun nicht..
-
Wenn iuch das mache bekomme ich den Fehler "[BCC32 Fehler] MainUnit.cpp(31): E2294 Auf linker Seite der Struktur ist . oder .* erforderlich"!
hp Chowix
-
Hm, ich würd jetzt mal ganz stumpf statt std::string AnsiString benutzen. Den benutze ich sowieso immer und damit klappts auf jeden Fall bei mir. Ansonsten musst mal auf unsere Gurus warten, die haben sicherlich noch ein paar mehr Infos für dich
-
Hallo
Du solltest eben nicht die ganzen verschiedenen String-Sorten wild und unnötig miteinander mischen.
void __fastcall TMainForm::SearchBtnClick(TObject *Sender) { String searchValue = "http://www.google.de/#q="; String Site; searchValue += SearchValue -> Text; Site = httpAdapt -> Get(searchValue); MainForm -> Caption = Site.Pos("onmousemove"); }
bis bald
akari
-
Danke soweit! Funktioniert wunderbar
Aber kennt sich jemand mit den Indy-Kompontenten aus und kann mir sagen warum ich hier >>String Site; String searchValue = "http://www.google.de/#q="; searchValue += SearchValue -> Text; Site = httpAdapt -> Get(searchValue); MainForm -> Caption = Site.Pos("onmousemove");
eine exception - "Im Projekt *** ist eine Exception der Klasse EIdHTTPProtocolException mit der Meldung 'HTTP/1.1 404 Not Found' aufgetreten." - auftritt? Da ich mich ein wenig auskenne, weiß ich aber das das bedeuten würde das die URL ungültig ist, aber wenn ich im browser "http://www.google.de/#q=test" eingebe werde ich ohne Probleme verbunden! Und wenn ich im quelltext so ändere, das es nur noch heißt
Site = httpAdapt -> Get("http://www.google.de/");
funktioniert es! Kann mir das jemand erklären?
hp Chowix