auslesen und verarbeiten eines Ansistrings
-
hallo, bin neu hier im forum, hoffe mal das is hier jetzt richtig platziert.
ich habe folgendes problem:
in meinem programm habe ich bereits von einer website den quelltext angefordert und in einem ansistring gespeichert.
nun möchte ich den ansistring nach einem wort durchsuchen, aber ich weiß nicht wie ich das anstellen soll.
ich kenne die funktion ansistring.pos aber diese hilft mir nicht recht weiter.
würde mich über hilfe freuen.
ich arbeite mit dem c++ builder 6.mfg Marcel.
-
Dieser Thread wurde von Moderator/in Phoemuex aus dem Forum C++ in das Forum VCL (C++ Builder) verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Hallo
Da hab ich das hier gefunden.
#include <string> bool __fastcall TF_Hauptformular::bf_SearchInString(AnsiString sOriginalString, AnsiString sSearch) { bool bRueckgabe; std::string stSearch; stSearch=sOriginalString.c_str(); if (stSearch.find(sSearch.c_str(),0)!=std::string::npos) bRueckgabe=true; else bRueckgabe=false; return bRueckgabe; }
-
Marceko schrieb:
ich kenne die funktion ansistring.pos aber diese hilft mir nicht recht weiter.
würde mich über hilfe freuen.Wieso hilft dir Pos nicht weiter? Genau damit kann man doch innerhalb eines Strings suchen.
Das was Kreilons Funktion macht kann AnsiString::Pos auf jedem Fall.
-
hey danke für die antworten.
@ kreilon. gut das der link noch dabei stand, sonst hätt ichs nicht nachvollziehen können.
@braunstein
die funktion pos sucht doch nur nach einem zeichen, theoretisch brauch ich ja eine zeichenkombination, die dann das wort ergibt.
nur weiß ich nicht wie ich das umsetzen sollte.
-
Marceko schrieb:
die funktion pos sucht doch nur nach einem zeichen
wieso nur nach EINEM Zeichen ? Natürlich kann man auch eine Zeichenkette verwenden.
Solltest Du auch zeilenweise arbeiten wollen, dann könnte man auch eine TStringList verwenden (ich liebe TStringList :))
-
Als Beispiel mal hier bezogen auf Kreilons Funktion.
bool result = sOriginalString.Pos(sSearch) > 0;
Das macht genau das gleiche.
-
Hallo
Natürlich kannst du nach Teilzeichenketten suchen mit .Pos...
Mir wurde hier im Forum dazu geraten, den schon dursuchten Teil der Zeichenkette
abzutrennen und dann weiter mit .Pos zu "parsen"...
hat auch funktioniert...wNw
-
hey, danke
hab das jetzt soweit realisiert, wie ich das wollte.
hab das wort jetzt gefunden mittels pos (eigentlich gar nicht so schwer^^).
wenn ich mir jetzt aber ein zeichen angeben lassen will (im edit oder label) welches auf einer bestimmten position steht, hab ich wieder ein problem.Edit4->Text = htmlstring[htmlstring.Pos(IntToStr(tt))];
so wollt ich das machen. funzt aber nicht.
(htmlstring is der ansistring, tt is nen integer mit der bestimmten position)
was mach ich falsch? programm lässt sich ausführen, fehlermeldung bei buttonklick:
"variante des typs (string) konnte nicht in typ (double) konvertiert werden."mfg Marceko/Marcel
-
__fastcall AnsiString SubString(int index, int count) const;
Beschreibung
System::AnsiString::SubString gibt einen neuen System::AnsiString zurück, der den Teilstring des angegebenen System::AnsiString enthält. Der Teilstring enthält ab der Position index eine Anzahl von count Zeichen.Edit4->Text = htmlstring.SubString(int index, int count);
-
okay klappt jetzt alles wie ich wollte
danke für die hilfe.