Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi String nach einer zeichenkombination durchsuchen (https://www.delphipraxis.net/63984-string-nach-einer-zeichenkombination-durchsuchen.html)

ghost007 25. Feb 2006 17:37


String nach einer zeichenkombination durchsuchen
 
Hallo,
wie kann ich festellen , ob z.B. im string: "hallo ich bin's."
ein "ich" drin ist?

marabu 25. Feb 2006 17:41

Re: String nach einer zeichenkombination durchsuchen
 
Hallo,

schau mal in die Unit StrUtils - AnsiContainsText() wäre es, wenn ich deine Worte auf die Goldschale lege.

Grüße vom marabu

Dax 25. Feb 2006 17:42

Re: String nach einer zeichenkombination durchsuchen
 
Delphi-Quellcode:
Pos('ich', 'hallo, ich bins') <> 0
;)

ghost007 25. Feb 2006 17:44

Re: String nach einer zeichenkombination durchsuchen
 
:wiejetzt: ich check weder was Dax meint noch was marabu meint o0 könnt ihr euch vielleicht etwas genauer ausdrücken?

Luckie 25. Feb 2006 17:53

Re: String nach einer zeichenkombination durchsuchen
 
Schon mal die Hilfe konsultiert?

Pseudemys Nelsoni 25. Feb 2006 18:23

Re: String nach einer zeichenkombination durchsuchen
 
Zitat:

Zitat von ghost007
:wiejetzt: ich check weder was Dax meint noch was marabu meint o0 könnt ihr euch vielleicht etwas genauer ausdrücken?

Wie genau willste es denn haben? Um ehrlich zu sein geht es gar nicht genauer, weil es da schon genau steht.

marabu 25. Feb 2006 18:23

Re: String nach einer zeichenkombination durchsuchen
 
Hallo Christian,

fang klein an und lass dich von mir nicht verwirren:

Delphi-Quellcode:
var
  s, subString: String;
begin
  s := 'hallo ich bin''s';
  subString := 'ICH';
  if Pos(Lowercase(subString), Lowercase(s)) = 0
    then ShowMessage('Pos() sacht: hammer net')
    else ShowMessage('Pos() sacht: iss da');
  if AnsiContainsText(subString, s)
    then ShowMessage('AnsiContainsText() sacht: iss da')
    else ShowMessage('AnsiContainsText() sacht: hammer net');
end;
marabu

konda 2. Mär 2006 11:10

Re: String nach einer zeichenkombination durchsuchen
 
Hallo,
ich hab noch ne Frage. Wie kann man überprüfen ob 'ICH' am Ende des Strings steht? :cyclops:

Sharky 2. Mär 2006 11:16

Re: String nach einer zeichenkombination durchsuchen
 
Zitat:

Zitat von konda
... Wie kann man überprüfen ob 'ICH' am Ende des Strings steht? :cyclops:

Prüfe einfach ob die letzen drei Zeichen des Strings (Delphi-Referenz durchsuchenCopy , Delphi-Referenz durchsuchenLength) ein "ICH" sind.

Oder, noch besser. Schreibe Dir eine Funktion welche das nicht für die letzten drei Zeichen macht sonder für die Anzahl der Zeichen die Du suchst ;-)

Angel4585 2. Mär 2006 11:17

Re: String nach einer zeichenkombination durchsuchen
 
Delphi-Quellcode:
Pos('ich','ich steh nicht am ende') > (Length('ich steh nicht am ende')-Length('ich'))

SirThornberry 2. Mär 2006 11:20

Re: String nach einer zeichenkombination durchsuchen
 
pos gibt dir zurück an welcher Stelle der Teilstring gefunden wurde (einfach mal die hilfe anschauen da steht all sowas drin). Wenn du jetzt kombinierst, könnte man da einfach abfragen ob diese Position + Zeischenanzahl des Teilstrings größer der Länge des Gesamtstrings.
Aber es gibt auch extra funktion wie RightStr. Damit kannst du dir den Teilstring geben lassen der von rechts X-Zeischen lang ist.

Wenn dein String also "kleiner Test" lautet würde dir der Aufruf von
Delphi-Quellcode:
RightStr('kleiner Test', 4);
den String "Test" zurückliefern. Und da kann man einfach prüfen ob das zurückgegebene Wort dem gesuchten entspricht.

Programmieren besteht nicht nur darin zu wissen welche Funktionen man verwenden muss/kann sondern auch darin zu überlegen wie man die Funktionen nutzen kann um an das Ziel zu kommen.

konda 2. Mär 2006 11:25

Re: String nach einer zeichenkombination durchsuchen
 
:thumb: Danke! Ich hatte auch erst so was ähnliches ich hab aber falsch verglichen.

Sharky 2. Mär 2006 11:28

Re: String nach einer zeichenkombination durchsuchen
 
Wenn Du nicht extra die StrUtils einbingen möchtest um Delphi-Referenz durchsuchenRigthStr zu haben kannst Du dir ja mal diesen kleinen Code ansehen:

Delphi-Quellcode:
function CompareRightString (aString, aSubstring : string; aIgnoreCase : Boolean = True) : Boolean;
var
  RightString : String;
begin
  result := False;
  if (Length (aString) < Length(aSubString)) then
  begin
    exit;
  end;
  RightString := Copy (aString,(Length(aString) - Length(aSubString)+1),Length(aSubstring));
  if (aIgnoreCase) then
  begin
    result := AnsiUpperCase(RightString) = AnsiUpperCase(aSubString);
  end
  else
  begin
    result := RightString = aSubString;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  if CompareRightString('Hallo ich','Ich',False) then
  begin
    ShowMessage('blubb');
  end;
end;

SirThornberry 2. Mär 2006 12:00

Re: String nach einer zeichenkombination durchsuchen
 
hab grad noch eine funktion für die ganz faulen gefunden, allerdings auch in der StrUtils (bzw. in der Hilfe): AnsiEndsText

konda 2. Mär 2006 16:38

Re: String nach einer zeichenkombination durchsuchen
 
Ja, so gehts auch, ich nem aber lieber die Funktion in StrUtils. :wink:


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:49 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