html link bearbeiten funktioniert nicht. -> Problem gelöst.



  • Du mußt für die zweite Suche erst noch mittels SubString einen neuen TeilString erzeugen:

    AnsiString text_link = text.SubString(pos2, text.Length() - pos2 + 1);
    int pos3 = text_link.Pos("<img src=");
    int pos4 = text_link.Pos(">");
    AnsiString link2 = text_link.SubString(pos3, pos4-pos3+1);
    Edit1->Text = link2; // ohne c_str() reicht
    

    P.S. AnsiString und String sind intern derselbe Datentyp (in C++ sollte man AnsiString verwenden, zur besseren Unterscheidung von std::string).

    Edit: wieder mal zu langsam



  • Danke leute für die Hilfe.
    Jetzt eine letzte sache noch?

    // HTMl LINK
     int pos1 = text.Pos("<a href=");
     int pos2 = text.Pos(">");
     AnsiString text1 = AnsiString(pos2); // geht zwar auch ohne, aber so sieht man direkt, dass hier etwas konvertiert wird
     AnsiString text2 = text.SubString(pos1, pos2 - pos1 + 1);
     Form1->Edit2->Text = text2;
    
     text_link = text.Delete(1, pos2); // alles bisher ausgewertete löschen
    
      // Bild alt
     int pos5 = text_link.Pos("alt=");
      :arrow_right: int pos6 = text_link.Pos("");
     AnsiString alt1 = AnsiString(pos6);
     AnsiString alt2 = text_alt.SubString(pos5, pos6-pos5+1);
    
     // Bild
     int pos3 = text_link.Pos("<img src=");
     int pos4 = text_link.Pos(">");
     AnsiString link1 = AnsiString(pos4);
     AnsiString link2 = text_link.SubString(pos3, pos4 - pos3 + 1);
     Form1->Edit1->Text = link2;
    

    Jetzt möchte ich das wo der Pfeil ist auch noch raus gelesen wird und vor Bild abfrage dieser teil glöschet wird? Wie kann ich das machen weil bei html code

    alt="....."
    

    und

    ....Pos(""");
    

    Falsch.
    Wenn das Problem gelöst ist bin ich sehr glücklich und sehr sehr Dankbar.



  • Wenn du dir deine Frage jetzt nochmal durchliest, verstehst du dann eigentlich selbst noch, was da steht?

    Ggf. wäre es einfacher, einen Beispiellink zu posten und den Abschnitt zu markieren, den du entfernen möchtest.



  • Ähh ok kann sein dass ich wieder mist geschrieben habe bin seid 24 Sutnden wach. sorry.

    <a href="http://www.xyz.de"><img src="www.xyz.de/xlogo.gif" alt="Logo xyz" width="100" height="100"></a>
    

    Jetzt will ich das so haben, dass das Ergebniss so aus sieht:

    1. http://www.xyz.de
    2. www.xyz.de/xlogo.gif
    3. Logo xyz
    

    Und das versuch ich zu realisieren.



  • Wenn du nach dem Hochkommazeichen suchst, dann mußt du dieses maskieren:

    int pos = text.Pos("\"");
    


  • Habe in forum gesucht und boost regex gefunden.
    Dass ist das was ich gesucht habe.
    Aber leider Funktioniert das nicht mit Memo1 und ausgabe in edit.

    boost::regex e("<\\s*A\\s+[^>]*href\\s*=\\s*"?([^" >]*)",boost::regbase::normal | boost::regbase::icase);
    


  • Moin!

    Ein paar Fragen:

    1. Kommt der Link immer in der Reihenfolge <a href ></a> ... <img...> oder auch mal andersherum und ist

    2. normaler Text dazwischen (oder s. deinen Beispiellink ?).

    3. Das alt-Attribut im Image-Tag wird gelöscht oder ersetzt?

    4. Was passiert am Ende der Routine mit den Tags (Abspeichern in DB oder in eine Webseite).

    MfG
    kpeter



  • Hi,
    alle links sehen so aus.

    <a href="http://www.c-plusplus.net">
    <img src="http://www.c-plusplus.net/forum/templates/fisubtext/images/c-plusplusde.gif" alt="c++.de" /></a>
    

    (Alle hinetereinander, ich habe das jetzt oben so gemacht damit das nicht Über die Seite hinaus geht.)
    Kurz:

    <a href=".."><img src=".." alt=".." with=".." (usw..) /></a>
    

    Das Alt wird je nach dem ersetzt, löschen nein grund:
    einmal: http://www.w3schools.com
    zweitens: http://validator.w3.org
    Das Sind meine gründe.
    Am ende wird Fehlerfreier html seite erstellt.
    ( Aber das teil habe ich für einen anderen Projekt (auch) gebraucht. Vorschau von Bestimmten html codes usw.... Das kann ich jetzt frei für alles verwenden.)
    Links, Bilder, Texte, Emails usw...

    MFG. 🙂



  • Hi,

    wie meinst du das:

    titanium schrieb:

    Das Alt wird je nach dem ersetzt,

    wonach richtet sich "je nach dem"? Willst eine Webseite auf einen gültigen Link (toten Link)

    checken? Frage deshalb, weil sich danach der Lösungsansatz richtet.

    MfG
    kpeter



  • 🙂
    nein.
    Das

    alt="c++.de"
    

    ist für die Bilder.
    Wenn du zum Beispiel mit der Maus auf unseren C++ Community Logo, links Oben drauf gehst siehst du das da "c++.de" kurz angezeigt wird.
    Das alt bezieht sich auf das Bild.Ist gleichzeitig ein ersatz wenn jemand das Bild aus sein verzeichnis löcht. Dann sieht man noch nur ein text.
    HTML grundkenntnisse.

    Je nach dem möchte ich bei dem Projekt die möglichkeit geben die Begriffe (Texte) zu ändern. Ohne das ein Laye in html rumfuchtelt und die Seiten oder ein Link deaktiviert (platt macht), weil sich nicht entscheiden könnte wie er seine Bilder und Logos bennent.



  • Schön, dass du über HTML schon so viel weisst 😃

    Vorschlag: Ändere das alt-Tag im Memo, wenn du das eh von Hand machst.

    MfG

    kpeter



  • 🙂 Ich weiss.
    Danke für die Info. Aber ich habe die Codes am Ende doch leider nicht verwendet.
    Beim Entwickeln kam ich auf boost::regex.
    Und das ist genaus so gut wie bei php->preg_match_all().
    Bin jetzt viel weiter.


Anmelden zum Antworten