AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

StringReplace-Funktion etwas aufbohren

Ein Thema von DieDolly · begonnen am 24. Jul 2022 · letzter Beitrag vom 25. Jul 2022
Antwort Antwort
Seite 2 von 3     12 3      
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#11

AW: StringReplace-Funktion etwas aufbohren

  Alt 25. Jul 2022, 10:41
Kannst du mir da auf die Sprünge helfen?
Wenn ich mir Punkte für RegEx geben müsste, hätte ich 0 von 10.

Bei Regex101.com: abcd <img ganzvielblödsinnabcdefghistehthier > efghi
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.490 Beiträge
 
Delphi 7 Professional
 
#12

AW: StringReplace-Funktion etwas aufbohren

  Alt 25. Jul 2022, 11:02
Anderer Vorschlag:

HTML in 'ne MemoryStream laden und zeichenweise in einen zweiten MemoryStream schreiben.
Vor jedem < einen Zeilenumbruch schreiben.
Hinter jedem > einen Zeilenumbruch schreiben.
Alle übrigen Zeilenumbrüche durch ein Leerzeichen ersetzen.

Zweiten MemoryStream in 'ne Stringliste laden.

Diese Stringliste enthält nun nur noch Zeilen, die entweder ein HTML-Tag enthalten oder nur aus reinem Text bestehen.

StringReplace nur in den Zeilen aus reinem Text ausführen.
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#13

AW: StringReplace-Funktion etwas aufbohren

  Alt 25. Jul 2022, 11:29
Wie füge ich denn beides wieder zusammen? Ich brauche am Ende alles zusammen quasi im Originalzustand.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.070 Beiträge
 
Delphi 12 Athens
 
#14

AW: StringReplace-Funktion etwas aufbohren

  Alt 25. Jul 2022, 11:30
Leerzeichen und Zeilenumbrüche stellen im HTML keine Veränderung dar.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#15

AW: StringReplace-Funktion etwas aufbohren

  Alt 25. Jul 2022, 11:33
Dann verstehe ich den Ansatz oben nicht und was mir diese zweite StringList bringen soll.

Zitat:
StringReplace nur in den Zeilen aus reinem Text ausführen.
Das geht alleine schon wegen den base64-enkodierten Bildern nicht.

Weil wenn ich das StringReplace auf die StringList ausführe bringt mir das nichts. Ich muss das StringReplace direkt auf den HTML-Content des HtmlViewers ausführen.

Geändert von DieDolly (25. Jul 2022 um 12:22 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#16

AW: StringReplace-Funktion etwas aufbohren

  Alt 25. Jul 2022, 11:38
aber im HTML ist doch ein bild per <img src="data:image/png;base64,...../> in einem TAG und wird somit nicht berührt?!
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#17

AW: StringReplace-Funktion etwas aufbohren

  Alt 25. Jul 2022, 11:44
Ich denke das klappt alles nicht. Das zeichenweise Durchgehen könnte sehr lange dauern, weil diese Prozedur auch 3x oder 4x die Sekunde aufgerufen werden kann.
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#18

AW: StringReplace-Funktion etwas aufbohren

  Alt 25. Jul 2022, 11:50
Vielleicht so: (da hier jede menge Informationen zwecks Ablauf fehlen)
Einen Hashwert der HTML erzeugen und mit vorhandenem Hash abgleichen, wenn ungleich eine neue in-memory Datei wie von Delphi.Narium beschrieben erzeugen und anwenden, wenn gleich dann mache nichts.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#19

AW: StringReplace-Funktion etwas aufbohren

  Alt 25. Jul 2022, 11:56
Ich durchsuche das Htmlviewer-Element (den HTML-Datei) live beim Eintippen in ein Eingabefeld.
Die Eingabe wird, wenn gefunden, markiert. Werden nun aber Vorkommen markiet die sich innerhalb eines HTML-Tags befinden, wird das Dokument zerstört.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.070 Beiträge
 
Delphi 12 Athens
 
#20

AW: StringReplace-Funktion etwas aufbohren

  Alt 25. Jul 2022, 12:21
Ja, es wird zwar von RegEx bei HTML abgeraten, aber das liegt vorwiegend an der Verschachtelung von HTML-Tags und daß diese auch noch "defekt" sein dürfen können.
IMG hat aber keine untergeordnete TAGs und selbst bei Strict-HTML kann man das eventuelle schließende </img> ignorieren.

Problematisch würde es nur, wenn zwischen <img und src= noch weitere Attribute vorkämen, aber wenn man das ausschließen kann, dann stört sowas ja nicht.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:59 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz