![]() |
html-Kommentare als ComboBox Items
Hallo zusammen,
also, nach meinem ersten Kinderkram-Post hier jetzt mal ein, wie ich finde, etwas schweres Kaliber Ich möchte ein html Dokument nach Kommentaren durchsuchen und den Inhalt der Kommentare als Items in eine ComboBox einsetzen Das wesentliche Problem hierbei ist das arbeiten mit Strings, die html-Kommentare sind immer als und in einzelne Zeilen geschrieben, lassen sich also schön als Stringliste einlesen und ausgeben. Aber ich möchte natürlich nur das "blabla" in der ComboBox haben und natürlich auch nur jeweils einmal pro Kommentar-Paar, also muss ich irgendwie innerhalb der Strings arbeiten können, was ICH so erstmal nicht kann (klar dass das in Delphi geht, aber ich weiss halt nicht wie) also will ich die ersten 4 Zeichen und die letzten 10 Zeichen wegschmeissen, dann nachschauen wo sich der verbleibende Inhalt (also das blabla) wiederholt und den String komplett aus der Stringlist löschen, so dass am Ende eine Stringlist voller blabla übrig bleibt, die ich dann zeilenweise in die Items der ComboBox einsortieren kann, das dürfte dann der leichtere Part sein. Wär gut wenn mich da jemand mal auf die richtige Fährte bringen könnte. |
Re: html-Kommentare als ComboBox Items
Stcihwörter: pos, copy.
|
Re: html-Kommentare als ComboBox Items
Das Universum liegt wohl weiterhin in Führung ...
könnt ich die Antwort bitte etwas deutlicher bekommen??? nichtsdestotrotz, danke das war echt ne fixe Antwort |
Re: html-Kommentare als ComboBox Items
Mit Pos bzw. PosEx die Markierungen "" suchen und via Copy und etwas Mathematik das Dazwischenliegende rauskopieren.
Man könnte es aber über RegEx (regular expressions) versuchen. > ![]() |
Re: html-Kommentare als ComboBox Items
Schlag die Funktionen mal in der Hilfe nach.
|
Re: html-Kommentare als ComboBox Items
hmmm ... aber wäre es denn nicht einfacher das so zu machen wie ich es oben beschrieben habe
das ganze html ding in eine Stringliste laden und die dann entsprechend zurecht stutzen????? es gibt doch auch substrings in delphi, oder? dass das progi halt die stringlist durchgeht in jeder zeile nach den ersten 4 zeichen guckt und wenn die '<!--' sind werden die gelöscht und die letzten 10 auch, dann wird der rest in eine stringvariable geschrieben, jede zeile gelöscht bis die ersten 4 zeichen wieder '<!--' sind, dann wieder löschen, sehen ob die ersten zeichen jetzt mit der variablen identisch sind, wenn ja die ganze zeile löschen und dann wieder von vorne und am ende bleibt dann eine stringliste übrig mit den strings die ich haben will und die kann ich dann einfach in die combobox schreiben ich meine, im prinzip hab ich keine ahnung, delphi ist halt nur ein hobby von mir, aber wäre das so nicht einfacher??? ich find die hilfe von Delphi2005PE schrecklich, hab schon überlegt mir wieder Delphi5 drauf zu machen weil die Hilfe da deutlich besser war |
Re: html-Kommentare als ComboBox Items
Hallo,
im Endeffekt machst du mit Pos bzw. PosEx und Copy nichts anderes. Du suchst nach deinen Kommentar-Zeichen und kopierst das dazwischen heraus. Das ist weniger Aufwand als manuell mit einer Schleife nach den 4 aufeinander folgenden Zeichen zu suchen und den Rest zu entfernen. Denn Pos/PosEx suchen dir die Position eines kompletten Strings, ohne dass du das manuell machen musst. Wenn du die ersten Positionen von "" bsp. in 2 Variablen hast, kannst du, wie himitsu schrieb, das dazwischen mit Copy heraus kopieren. Mit PosEx suchst du dann die nächsten Vorkommen von "" und kopierst das dazwischen wieder heraus. Das Ganze ist natürlich auch mit einer While-Schleife kombinierbar. |
Re: html-Kommentare als ComboBox Items
OK
aber irgendwie versteh ich es immer noch nicht so ganz wie benutze ich den Pos oder PosEx jetzt um eine Stringlist nach den Strings zu durchsuchen die ich brauche kann ich da mal bitte ein Syntaxbeispiel bekommen? |
Re: html-Kommentare als ComboBox Items
StringList.Text in einen String auslesen dort bearbeiten und notfalls wieder zurückspeichern
|
Re: html-Kommentare als ComboBox Items
Also du müsstest dir doch erstmal überlegen was du machen möchtest ;) Nagut "Kommentare raussuchen" könnte man sagen. Aber das ist ja etwas zu "unspezifisch". Stattdessen suchst du nach einem Kommentaranfang () und willst das dazwischen herausholen.
Wenn wir jetzt unser html-Dokument in einem string speichern (meinetwegen auch in einer TStringList. Aber so richtig was "bringen" tut es dir nichts).
Delphi-Quellcode:
Du kannst das wie gesagt auch in einer TStringList speichern. Als nächstes suchen wir dann nach einem Kommentaranfang mithilfe von
var
htmlcontent : string; begin htmlcontent := '<html><head><titel>Willkommen!</title>' + #13#10 {ein Zeilenumbruch ;) } + '</head><body>' + #13#10 + 'Hallo Welt</body></html>'; ![]() ![]() Dann speicherst du dir wo das Kommentar beginnt (in diesem Fall das 13. Zeichen). Dann suchst du nach dem Ende des Kommentars. Das sollte dann das 45. Zeichen angeben. Jetzt musst du nur den Inhalt mithilfe von ![]() Nachdem du das erste Kommentar jetzt gefunden hast bieten sich zwei Möglichkeiten an. Entweder du entfernst jetzt aus deinem String alles bis zum Kommentarende und suchst dann vom neuen. Oder du lässt erst nach dem Kommentarende anfangen zu suchen. Bei erstem brauchst du ![]() ![]() Auf jedenfall kannst du das dann solange machen bis Pos kein Kommentaranfang mehr findet. MfG xZise |
Re: html-Kommentare als ComboBox Items
yoo danke an alle, hab es jetzt hinbekommen
@xZise: würd mich jetzt gern mal ein wenig über deine Unterschrift auslassen, aber das wäre hier ja schwer off-topic, nur soviel: 'ich denke der Mann hat ne Menge geredet, sich umgedreht und was ganz anderes gemacht, Stichwort: das Haus in London in dem er gelebt hat, aber ich vermute mal du weisst darüber bescheid' Golpe de estado disparando al presidente |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:10 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz