AGB  ·  Datenschutz  ·  Impressum  







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

Spezielle Memo Text suche?

Ein Thema von gee21 · begonnen am 12. Mär 2013 · letzter Beitrag vom 14. Mär 2013
Antwort Antwort
gee21

Registriert seit: 3. Jan 2013
199 Beiträge
 
Delphi 10.4 Sydney
 
#1

Spezielle Memo Text suche?

  Alt 12. Mär 2013, 18:42
Hallo.

Ich würde gerne einen Text durchsuchen. (Ja ich weiss es gibt sehr viele Infos betreffend Text suchen)
Doch das was ich gerne machen würde, habe ich bis jetzt nicht gefunden

Ich habe einen Text in einem Memo (ca 200 Zeilen)

eine kleiner Teils des Textes sieht zB so aus:


<link rel="image_src" href="http://www./fileadmin/_t3t/css/apple-touch-icon.png" />
<title>27 Dresses, Regie: Anne Fletcher, USA, 2007</title>
<meta name="keywords" content="Film, Filmsuche, Filmdatenbank, Filmbeschreibung,

Jetzt möchte ich gerne, das im Memo nach 27 Dresses gesucht wird und dann der Fett markierte Text (27 Dresses Regie: Anne Fletcher, USA, 2007)
markiert wird und in einem String ausgegeben wird.

Ich glaube ich müsste folgendermassen vorgehen:
1. Text suchen
2. definieren von < bis >
3. String ausgeben


Nur kann mir aber jemand sagen wie man so etwas umsetzt? evt mit selstart und sellength?
Robert
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#2

AW: Spezielle Memo Text suche?

  Alt 12. Mär 2013, 18:50
Mit einem Memo zeigt man Dinge an, aber man verarbeitet sie nicht. Hierfür kannst Du die Eingeschaft 'Memo.Lines.Text' verwenden, sie liefert den Inhalt als String.
Delphi-Quellcode:
function FindeDenText (Const Suchtext, gesamterText : String) :String;
Var
  p,q : Integer;

begin
  result := '';
  p := Pos(Suchtext, gesamterText);
  if p=0 then exit; // nix gefunden
  q:=p+Length(Suchtext);
  while (p>0) and (gesamterText[p]<>'>') do dec(p);
  while (q<length(gesamterText)) and (gesamterText[q]<>'<') do inc(q);

  result := Copy(gesamterText,p+1,q-p-1);
end;
...
// Aufruf so
MeinText := FindeDenText('27 Dresses', MyMemo.Lines.Text);
ungetestet allerdings.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.622 Beiträge
 
Delphi 12 Athens
 
#3

AW: Spezielle Memo Text suche?

  Alt 12. Mär 2013, 19:01
Oder man verwendet statt des Memos ein TRichedit und arbeitet mit FindText.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
gee21

Registriert seit: 3. Jan 2013
199 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Spezielle Memo Text suche?

  Alt 12. Mär 2013, 19:02
Wow Hammer.

Danke dir vielmals.
Robert
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#5

AW: Spezielle Memo Text suche?

  Alt 12. Mär 2013, 19:43
Oder man verwendet statt des Memos ein TRichedit und arbeitet mit FindText.
Aber dann muss man doch trotzdem zum bis zum '>' und '<' erweitern..

Ach, RegEx fällt mir auch noch ein.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: Spezielle Memo Text suche?

  Alt 12. Mär 2013, 21:03
Da es sich anscheinend um eine HTML-Datei handelt kann man die auch vernünftig parsen und sich nur diese speziellen Text heraussuchen lassen.

MSDN-Library durchsuchenIHtmlDocument2

Beispiele dazu lassen sich hier und über google finden
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
gee21

Registriert seit: 3. Jan 2013
199 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: Spezielle Memo Text suche?

  Alt 14. Mär 2013, 18:36
Ich dachte mir ich mache nun kein neuer Eintrag auf da dieser noch so neu ist und es wieder um eine Text suche geht.

Ich habe einen Text. ATEXTBTEXTCTEXT

Die 3 Texte sind eben nicht getrennt durch ein Sonderzeichen. Aber ich kenne Text A und C
Nun dachte ich, ich könnte das so lösen um so zumindest mal den ATEXT zu entfernen und ich dachte, ich erhalte dann: BTEXTCTEXT

function Split (AString : String) : String;
var iPos : Integer;
begin
iPos := Pos ('AText', AString);
if (iPos > 0) then
Result := Copy (AString, iPos + 1, Length (AString))
else
Result := 'Nee du Pfeife';
end;



Aufrufen wollte ich es dann so:

memo1.Text:= Split(memo1quell.text);

Aber da werde ich dann nur zur Pfeife deklariert
Robert
  Mit Zitat antworten Zitat
Volker Z.

Registriert seit: 4. Dez 2012
Ort: Augsburg, Bayern, Süddeutschland
419 Beiträge
 
Delphi XE4 Ultimate
 
#8

AW: Spezielle Memo Text suche?

  Alt 14. Mär 2013, 19:07
Hallo gee21,

Pos (SubStr, Str) ist case sensitive. Also Pos ('AText', AString) <> Pos ('ATEXT', AString) .

Grüße
Volker Zeller
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#9

AW: Spezielle Memo Text suche?

  Alt 14. Mär 2013, 23:39
vielleicht kannst Du mit dem Ansatz etwas anfangen:
Delphi-Quellcode:
const
 ALL= 'ATEXTBTEXTCTEXT';
 A='atext';
 c='Ctext';
begin
   Showmessage(StringReplace(
               StringReplace(ALL,a,'',[rfReplaceAll,rfIgnoreCase])
               ,c,'',[rfReplaceAll,rfIgnoreCase])
               );
end;
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Volker Z.

Registriert seit: 4. Dez 2012
Ort: Augsburg, Bayern, Süddeutschland
419 Beiträge
 
Delphi XE4 Ultimate
 
#10

AW: Spezielle Memo Text suche?

  Alt 14. Mär 2013, 23:57
Hallo gee21,

vielleicht hilft Dir folgendes weiter:
Delphi-Quellcode:
function Split (const Find, Str : string; var Head, Tail : string) : Integer;
begin
  Result := Pos (LowerCase (Find), LowerCase (Str));
  if Result = 0 then
    Exit;

  Head := Copy (Str, 1, Result - 1);
  Tail := Copy (Str, Result + Length (Find), Length (Str))
end;
Delphi-Quellcode:
Split ('bTeXt', 'ATEXTBTEXTCTEXT', s, t);
ShowMessage (s + ' ' + t);
gibt Dir folgendes aus: ATEXT CTEXT

Gruß
Volker Zeller
  Mit Zitat antworten Zitat
Antwort Antwort


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 14:27 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