AGB  ·  Datenschutz  ·  Impressum  







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

Memo nach einem String durchsuchen

Ein Thema von thomasdrewermann · begonnen am 24. Dez 2002 · letzter Beitrag vom 16. Feb 2003
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von thomasdrewermann
thomasdrewermann

Registriert seit: 8. Jun 2002
Ort: Herne
575 Beiträge
 
Delphi 3 Professional
 
#1

Memo nach einem String durchsuchen

  Alt 24. Dez 2002, 14:43
Hi Leute,
ich hab ein problem beim durchsuchen eines Memos nach einem bestimmen String. Ich hätte gerne die Zeile zurückgegeben in der der Suchtext vorhanden ist. Liefert das Memo Feld von Hause aus schon diese Funktion?

MFG
Thomas
Sport ist mord...
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#2
  Alt 24. Dez 2002, 15:24
Moin Thomas,

eingebaut: Nicht direkt, nur indirekt.

Schau Dir mal an, was hierbei rauskommt:

  ShowMessage('Zeile: '+IntToStr(SendMessage(Memo1.Handle,EM_LINEFROMCHAR,Memo1.SelStart,0))); Die erste Zeile hat den Index 0.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#3
  Alt 24. Dez 2002, 17:03
Doch, hat das Memo, zumindest für genaue Treffer:
Memo1.Lines.IndexOf('Zeile');
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Benutzerbild von thomasdrewermann
thomasdrewermann

Registriert seit: 8. Jun 2002
Ort: Herne
575 Beiträge
 
Delphi 3 Professional
 
#4
  Alt 25. Dez 2002, 00:29
Danke!

Ich werds direkt morgen ausprobieren.

Jetzt wander ich erstmal locker, leich und bekömmlich in mein Bett.


MFG
Thomas
Sport ist mord...
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#5
  Alt 27. Dez 2002, 03:13
Moin sakura,

ich würde es noch etwas genauer formulieren:

Wenn man den exakten Zeileninhalt sucht, unabhängig von der Gross-/Kleinschreibung, geht's mit IndexOf.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
masters001

Registriert seit: 23. Dez 2002
78 Beiträge
 
#6
  Alt 8. Feb 2003, 14:35
Hallo ich möchte gerne wissen ob ein bestimmtes word in meinem Memo vorhande ist!
Aber warum funktioniert eine solche if abfrage nicht?
Was hab ich falsch gemacht

if (Memo1.Lines.IndexOf('Bestätigung:')) then showmessage('true');
if (Memo1.Lines.IndexOf('Achtung:')) then showmessage('false');

Oder muss ich das noch irgendwie s:

if (Memo1.Lines.IndexOf('Bestätigung:'))=true

in der Art schreiben?
Vielen Dank
masters001
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#7
  Alt 8. Feb 2003, 14:42
Moin Masters,

kann nicht funktionieren.
Schau Dir noch mal genau die Beschreibung zu IndexOf an:
Hier wird nur dann ein Wert zurückgeliefert, wenn eine Zeile exakt den String enthält, der in IndexOf als Parameter übergeben wird (wobei nur die Gross-/KLeinschreibung nicht berücksichtigt wird.

Enthält die Zeile also auch nur ein Zeichen mehr (und sei es ein Blank) wird die Zeile nicht als Fundstelle angesehen.

Versuch's doch mal mit

if pos('Gesuchtes Wort',Memo1.Text) > 0 then Wenn Du allerdings öfter in Memo.Text suchen willst, ohne dass sich der Inhalt des Memo geändert hat, empfiehlt es sich dringend Memo1.Text in eine Stringvariable zu übertragen, da bei jedem Ansprechen von Text dieser Wert durch das Zusammensammeln der einzelnen Lines ermittelt wird, so dass die Performance kräftig in die Knie gehen würde.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
masters001

Registriert seit: 23. Dez 2002
78 Beiträge
 
#8
  Alt 8. Feb 2003, 15:35
Ja vielen Dank klappt wunderbar
  Mit Zitat antworten Zitat
sahmann

Registriert seit: 21. Jan 2003
15 Beiträge
 
#9

Nochmal etwas spezieller zu Pos()

  Alt 16. Feb 2003, 15:42
Hallo zusammen,

ich sitze gerade an einem ähnlichen Problem. Allerdings möchte
ich innerhalb einer Stringvariable (ein HTML- Quelltext) gewisse
Teile rauskopieren. Und zwar so:

Delphi-Quellcode:
Quelltext := IdHTTP1.Get([url]http://irgendeine.seite.de/[/url]);
name := copy(Quelltext, 1, (PosEx('</head>', Quelltext)));
ShowMessage(name);
Nun ist mir dabei folgendes aufgefallen, was wohl nicht so
einfach umschifft werden kann. Wenn hinter dem '</head>' (im
HTML- Quellcode) nun direkt weitere HTML- Tags stehen,
wie zum Beispiel hier:

</head></a>[/b]

dann gibt mir die Funktion nicht den Index des exakten Anfang
der gefundenen Position, sondern eben 8 mehr. Der Rueckgabewert
ist also ein hoeherer Integer- Wert.

Bedeutet dies, das Pos() nicht zum durchsuchen von kontinuierlichem
Text verwendet werden sollte? Da stellt sich nun die Frage wie kann
man es umgehen / welche Funktionen gibt es noch?

Es ist Sonntag, und wir haben alle nichts zu Tun

Gruesse,
der Sascha
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#10
  Alt 16. Feb 2003, 15:57
Moin Sascha,

zum einen:

Was ist PosEx?

zum anderen:

Pos gibt das Auftreten der ersten Fundstelle von z.B. </head> zurück, also die Position von < im gesuchten String. Was dahinter steht spielt dann doch keine Rolle.

In der Code Library steht, meines Wissens, auch eine erweiterte Pos Funktion, mit der das kontinuierliche Durchsuchen ermöglicht wird.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 10:46 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