text bearbeiten und ausgeben.
-
Hallo,
habe folgenden Code<a href="http://wwwxyz.de" target="_blank"><img src="http://localhost/bilder/test.gif" border="0" alt="test alt" /></a>Jetzt möchte ich das es immer so ausgegeben wird:
1. <a href ........ >
2. <img ........... />
3. alt="....."(.......) da stehen natürlich immer die Links und texte.
Ich brauche einen suchmuster der zum Beispiel wie 1 bei "<a href" anfängt und bei ">" endet.
Ich hoffe jemand von euch kann mir helfen, habe schon geschaut aber nichts wircklich was gefunden der mir helfen könnte.
Dank im Voraus.
-
Hallo
Als einfachsten kannst du mit den AnsiString-Methoden Pos und SubString arbeiten.
bis bald
akari
-
Hallo,
Ich würde hier den String in einen std::string packen. Dann kann man die vielen find-Methoden dort benutzen. bei denen ist es unter anderen auch möglich die Anfangspoition der Suche mit anzugeben. Bei dir wäre das etwa so was.
string text("<a href=\"http://wwwxyz.de\" target=\"_blank\"><img src=\"http://localhost/bilder/test.gif\" border= \"0\" alt=\"test alt\" /></a>"); // links und rechts vom ersten Abschnitt string::size_type pos1 = text.find("<a href="); string::size_type pos2 = text.find(">"); // links und rechts vom zweiten Abschnitt string::size_type pos3 = text.find("<img"); string::size_type pos4 = text.find(">", pos3); //usw.immer schön auf string::npos testen ob überhaupt was gefunden wurde.
-
Borland Dev 2006:
[C++ Fehler] Unit1.cpp(29): E2316 'find' ist kein Element von 'AnsiString'
[C++ Fehler] Unit1.cpp(30): E2316 'find' ist kein Element von 'AnsiString'
[C++ Fehler] Unit1.cpp(32): E2316 'find' ist kein Element von 'AnsiString'
[C++ Fehler] Unit1.cpp(33): E2316 'find' ist kein Element von 'AnsiString'aber die idee war sehr gut.
-
Hallo
Braunstein schrieb:
Ich würde hier den String in einen std::string packen
bis bald
akari
-
Habe das mal so probiert:
int pos1 = text.Pos("<a href="); int pos2 = text.Pos(">"); String text1 = pos2; String text2 = text1.Delete(pos1,text1.Length()); Edit1->Text = text2;ausgabe einfach nur zahl teilweise Fehlerhaft.
Wo ist der Fehler?
-
hier
String text1 = pos2;weist du deinem String doch eine Zahl zu. Was glaubst du was dann da drin steht? Nimm dafür SubStr.
oder besser gleich, das was ich vorher gepostet hatte.
-
Ok, noch mal probiert danke.
Letzte frage die Ausgabe....?
Von pos1 bis po2 ?
Danke.
-
z.Bsp. so
string first(text, pos1, pos2-pos1+1);oder so
string first = text.substr(pos1, pos2-pos1+1);
-
Werde jetzt alles ausprobieren mit Memo und Edit, bis jetzt klappt alles.
Danke.
-
mhh sorry bekomm das nicht hin mit
String text = Memo1->Text;für eingabe und mit
Edit1->Text = .... Edit2->Text = ....für ausgaben mit dein Beispiel
und die bearbeitung da zwischen.

-
Was bekommst du nicht hin? Die Übertragung der Strings aus dem memo in die Variablen?
Das geht sostring text = Memo1->Text.c_str(); // und umgekehrt für string first Edit1->Text = first.c_str();Bitte beachte auch die Groß- und Kleinschreibung
String ist etwas ganz anderes als string.
-
yeahhhhhhhhhhhhhhhhhhhhhhhhh
Klasse.
Läuft wie gewünscht.
Ich bedanke mich für deine hilfe und Zeit.
Einfach klasse.
-
Bitte schön.
