Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Text in Memo finden (https://www.delphipraxis.net/91759-text-memo-finden.html)

Tommy1988 9. Mai 2007 12:51


Text in Memo finden
 
Hallo an alle,
ich möchte gerne den Text zwischen <title> und </title> in einem Memo finden, und
als Caption angezeigt bekommen.

Nu das Problem, ich weis nicht, wie ich gerade dieses Stück aus dem Memo holen soll.
Kann mir wer Hilfe leisten?

Blackheart 9. Mai 2007 12:56

Re: Text in Memo finden
 
Pos, Copy

Tommy1988 9. Mai 2007 12:58

Re: Text in Memo finden
 
Leider kann ich mir daraus keinen Reim stricken :?

mkinzler 9. Mai 2007 13:01

Re: Text in Memo finden
 
Mit Pos kannst du Position eines Strings in einem anderen finden (Beginn Anfang-Tag, Beginn-Ende-Tag)und mit Copy kannst du einen teil eines Strings ausschneiden (von Beginn-Anfangtag+Länge Anfang-Tag bis Beginn Endetag-1)

Sherlock 9. Mai 2007 13:03

Re: Text in Memo finden
 
Der Text in Memos ist in Lines:TStrings untergebracht. Iteriere durch die Lines und führe auf jeden String ein pos aus.

Sherlock

Tommy1988 9. Mai 2007 13:20

Re: Text in Memo finden
 
Hab was gefunden, das das ist zu spezifisch:

Delphi-Quellcode:
var text, wort: String;
begin
  text := 'Das ist wirklich toll!';
  wort := Copy(text, 8, 8);
  // wort enthält nun "wirklich"
denn dieses (text, 8, 8);
.. das <title> steht ja auch nich immer ab der selben stelle.

Blackheart 9. Mai 2007 13:40

Re: Text in Memo finden
 
Delphi-Quellcode:
function Between(Tag,Tag2,Text:String):String;
begin
  Delete(Text,1,Pos(Tag,Text));
  Delete(Text,Pos(Tag2,Text),Length(Text));
  Result:=Text;
end;

Tommy1988 9. Mai 2007 13:50

Re: Text in Memo finden
 
Mh, ok,
Delphi-Quellcode:
function Between(Tag,Tag2,Text:String):String;
begin
  Delete(Text,1,Pos(Tag,Text));
  Delete(Text,Pos(Tag2,Text),Length(Text));
  Result:=Text;
end;
das sagt mir leider nicht viel, ohne zusatz von worten.

tag und tag2 stellen wohl <title> und </title> dar, wenn ja, wie sage ich der funktion denn,
dass es diese beiden tags sind?
denn:
Delphi-Quellcode:
function Between(<title>,</title>,Text:String):String;
begin
  Delete(Text,1,Pos(<title>,Text));
  Delete(Text,Pos(</title>,Text),Length(Text));
  Result:=Text;
end;
funktioniert nicht.

Blackheart 9. Mai 2007 13:56

Re: Text in Memo finden
 
Delphi-Quellcode:
Caption:=Between('>','<',Memo1.Text);

joachimd 9. Mai 2007 14:24

Re: Text in Memo finden
 
Zitat:

Zitat von Blackheart
Delphi-Quellcode:
function Between(Tag,Tag2,Text:String):String;
begin
  Delete(Text,1,Pos(Tag,Text));
  Delete(Text,Pos(Tag2,Text),Length(Text));
  Result:=Text;
end;

passt nicht, wenn er nach längeren Tags sucht (zB <title>...</title>). Dann bitte folgendes:
Delphi-Quellcode:
function Between(Tag1, Tag2, Text: String): String;
begin
  Delete(Text,1,Pos(Tag1,Text)+length(Tag1)-1); //Änderung hier!
  Delete(Text,Pos(Tag2,Text),Length(Text));
  Result:=Text;
end;
Verwendung der Funktion:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  Caption:=Between('<title>','</title>',Memo1.Text);
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:18 Uhr.
Seite 1 von 2  1 2      

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