Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi edit Feld auf ein bestimmtes Wort untersuchen (https://www.delphipraxis.net/166741-edit-feld-auf-ein-bestimmtes-wort-untersuchen.html)

newmusicslamer 27. Feb 2012 18:55

Delphi-Version: 7

edit Feld auf ein bestimmtes Wort untersuchen
 
Hallo,

ich bin mir nicht ganz sicher ob das hier hingehört, da ich neu bin.
Mein Problem ist folgendes ich würde gerne ein edit Feld auf ein bestimmtes Wort in einem ganzen Satz z.Bsp. 'Weil Kakao und Baum' untersuchen, d.h.
ungefähr in der Form:
Code:
if edit1.text with = 'Weil' , 'Und' then label1.caption := 'Sehr Gut!' ;
jetzt nur als Beispiel.

Ich hoffe ihr könnt mir helfen.
newmusicslamer

Popov 27. Feb 2012 19:02

AW: edit Feld auf ein bestimmtes Wort untersuchen
 
Fast richtig:

Delphi-Quellcode:
if edit1.text = 'Weil' then label1.caption := 'Sehr Gut!' ;
Wenn nicht, dann bitte etwas konkreter werden.

newmusicslamer 27. Feb 2012 19:07

AW: edit Feld auf ein bestimmtes Wort untersuchen
 
Ok, ich habe verstanden ich muss etwas genauer schreiben.

Danke an Popov für deine schnelle Antwort, aber ich meine, dass Der Text im edit Feld z.Bsp. 'Weil Kakao Und Baum' heißt und dann erkennt er dass Weil un Und enthalten sind und reagiert dann.

vagtler 27. Feb 2012 19:22

AW: edit Feld auf ein bestimmtes Wort untersuchen
 
Das sind absolute Grundlagen. Du kannst Bedingungen natürlich miteinander verknüpfen:

Code:
if (Bedingung1) and (Bedingung2) then ...
Ob ein Text in einem anderen enthalten ist kannst Du z.B. mit der Funktion
Code:
MatchText()
feststellen.

Popov 27. Feb 2012 19:40

AW: edit Feld auf ein bestimmtes Wort untersuchen
 
Wobei ich dir für den Vergleich von Texten SameText(Text1, Text2) empfehlen würde. Denn das normale

Delphi-Quellcode:
if 'Text' = 'Text' then ...
klappt zwar, aber

Delphi-Quellcode:
if 'Text' = 'text' then ...
würde nicht klappen. SameText beachten Groß- und Kleinschreibung nicht. Also

Delphi-Quellcode:
if SameText('Text', 'text') then
Oder in deinem Fall

Delphi-Quellcode:
if SameText(edit1.text, 'Weil') and SameText(edit1.text, 'Und') then label1.caption := 'Sehr Gut!' ;

Popov 27. Feb 2012 19:41

AW: edit Feld auf ein bestimmtes Wort untersuchen
 
Zitat:

Zitat von vagtler (Beitrag 1153244)
Ob ein Text in einem anderen enthalten ist kannst Du z.B. mit der Funktion
Code:
MatchText()
feststellen.

Ist in Delphi 7 wohl nicht enthalten.

vagtler 27. Feb 2012 19:48

AW: edit Feld auf ein bestimmtes Wort untersuchen
 
Zitat:

Zitat von Popov (Beitrag 1153246)
[...] Ist in Delphi 7 wohl nicht enthalten.

Korrekt. Das habe ich (mal wieder) überlesen.

Mal ganz abgesehen davon, dass ich das gar nicht meinte. Ich meinte
Delphi-Quellcode:
ContainsText()
, aber das wird dann wahrscheinlich auch nicht in Delphi 7 enthalten sein.

Da wird der Threadersteller dann wohl mit
Delphi-Quellcode:
Pos()
arbeiten müssen, denn

Zitat:

Delphi-Quellcode:
if SameText(edit1.text, 'Weil') and SameText(edit1.text, 'Und') then label1.caption := 'Sehr Gut!' ;

wird niemals erfüllt sein können... ;)

silver-moon-2000 27. Feb 2012 19:49

AW: edit Feld auf ein bestimmtes Wort untersuchen
 
Zitat:

Zitat von Popov (Beitrag 1153245)
Delphi-Quellcode:
if SameText(edit1.text, 'Weil') and SameText(edit1.text, 'Und') then label1.caption := 'Sehr Gut!' ;

Hier widerspreche ich Dir einfach mal, denn das würde nie funktionieren. SameText untersucht ja den gesamten String und nicht einen Teilstring.
Delphi-Quellcode:
if (edit1.text = 'Weil') and (edit1.text = 'Und')...
ist ja identisch (bis auf Groß/Kleinschreibung) und das liefert auch immer False.

Zitat:

Zitat von Delphi OH
Compares two strings by ordinal value without case sensitivity.

SameText compares S1 and S2 and returns True if they are equal.

Du meinst vielleicht eher
Delphi-Quellcode:
ContainsText
oder
Delphi-Quellcode:
ContainsStr
?

[edit]roter kasten, where art thou?

Popov 27. Feb 2012 19:58

AW: edit Feld auf ein bestimmtes Wort untersuchen
 
Ok, ich hab den einen Satz mit dem Im-Satz überlesen.

Sorry, hier also eine Funktion die funktionieren wird:

Delphi-Quellcode:
function ContainsText2(SubText, Text: String): Boolean;
begin
  Result := Pos(AnsiUpperCase(SubText), AnsiUpperCase(Text)) > 0;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  if ContainsText2('weil', Edit1.Text) and ContainsText2('und', Edit1.Text) then
    Caption := 'Gut';
end;

newmusicslamer 28. Feb 2012 15:13

AW: edit Feld auf ein bestimmtes Wort untersuchen
 
Danke, Leute für eure Hilfe der Beitrag von Popov hat mir schließlich geholfen. Damit ist mein Problem gelöst!

*geschlossen*


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:13 Uhr.
Seite 1 von 3  1 23      

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