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 "If not" bei string realisieren (https://www.delphipraxis.net/108710-if-not-bei-string-realisieren.html)

o0o 18. Feb 2008 10:13


"If not" bei string realisieren
 
hallo leutz ich hab da wieder ein problem:

also so hatte ich es mir vorgestellt nur so stimmt das nicht:
Delphi-Quellcode:
if not domain = 'xxx.de'
or 'xx.com'
or 'xx-xx.de'
or 'xxxxxxx.de'
or 'x.de'}
then begin
irgendwas machen;
end;
also ich hab hier ein paar domains die gefiltert werden sollen was auch gut klappt mit fast dem selben source(ohne das 'not')
wieso geht es mit if not nicht wenn die domain zb unbekannt ist? oder habt ihr ne alternative idee?

da o0o

mkinzler 18. Feb 2008 10:15

Re: "If not" bei string realisieren
 
Sind alle Bedingungen alternativ? Dann musst du Klammern. Zudem musst du die Variable in jede Teilbedingung aufnehmen. statt not = kannst du auch <> nehmen

chest3rs 18. Feb 2008 10:17

Re: "If not" bei string realisieren
 
Hi,

if not funktioniert bei Strings nicht. Versuchs mal mit

Delphi-Quellcode:
if (domain <> 'xxx.de')
or (domain <> 'xx.com')
or (dowmain <> 'xx-xx.de')
etc...
then begin
irgendwas machen;
end;

mkinzler 18. Feb 2008 10:20

Re: "If not" bei string realisieren
 
Zitat:

if not funktioniert bei Strings nicht
not negiert eine Bedingung, das hat nichts mit dem Typen der Bedingung zu tun.

Sharky 18. Feb 2008 10:22

Re: "If not" bei string realisieren
 
Hai oOo,

wenn das ganze etwas flexibler sein soll wäre es eventuell besser mit z.B. einer TStringList zu arbeiten.

chest3rs 18. Feb 2008 10:25

Re: "If not" bei string realisieren
 
Zitat:

not negiert eine Bedingung, das hat nichts mit dem Typen der Bedingung zu tun.
Dann hat das etwas mit der Schleife zu tun?

mkinzler 18. Feb 2008 10:27

Re: "If not" bei string realisieren
 
Das hat mit den oben genannten Gründen zu tun:
statt s = x or y or z muss es (s= x) or (s = y) or (s= z) heissen

peschai 18. Feb 2008 10:29

Re: "If not" bei string realisieren
 
Um auf Sharky einzugehen....

Delphi-Quellcode:
var
  j1:TStringlist;
begin
  j1 := TStringList.Create;
  try
    j1.Add('xxx.com');
    j1.Add('xxx-xxx.com');

    if (j1.IndexOf(domain)<0) then
      begin
        ...Dann tue etwas...
      end;
  finally
    FreeAndNil(j1);
  end;
end;

himitsu 18. Feb 2008 10:29

Re: "If not" bei string realisieren
 
NOT und OR funktionieren schon, nur nicht mit Strings.
Sie sind binäre/logische Operatoren und keine für Strings!

also entweder ähnlich wie es chest3rs schon zeigte (nur mit AND :zwinker: )

Delphi-Quellcode:
if (domain <> 'xxx.de')
and (domain <> 'xx.com')
and (dowmain <> 'xx-xx.de')
etc...
then
oder
Delphi-Quellcode:
if (domain = 'xxx.de')
or (domain = 'xx.com')
or (dowmain = 'xx-xx.de')
etc...
then
oder schau mal nach
Delphi-Referenz durchsuchenMatchText/Delphi-Referenz durchsuchenAnsiMatchText oder Delphi-Referenz durchsuchenMatchStr/Delphi-Referenz durchsuchenAnsiMatchStr
Delphi-Quellcode:
if not MatchText(domain, ['xxx.com', ..., 'x.de']) then

chest3rs 18. Feb 2008 10:35

Re: "If not" bei string realisieren
 
Zitat:

statt s = x or y or z muss es (s= x) or (s = y) or (s= z) heissen
sorry, ka was du meinst...

Ich weis nur, dass man eine Negierung bei dieser Art von Operanden nicht verwenden kann. In dem Fall muss es Text <> '{Text}' heißen.

Grüße


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

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz