AGB  ·  Datenschutz  ·  Impressum  







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

zuviele 'or's?

Ein Thema von Spike2k3 · begonnen am 4. Feb 2004 · letzter Beitrag vom 4. Feb 2004
Antwort Antwort
Spike2k3

Registriert seit: 20. Aug 2003
73 Beiträge
 
Delphi 7 Enterprise
 
#1

zuviele 'or's?

  Alt 4. Feb 2004, 01:03
Hi, ich glaub ich hab zuviele OR's eingebaut, denn es kommt immer die Fehlermeldung:

[Error] HTML.pas(76): Operator not applicable to this operand type

So sieht mein Befehl aus, was kann man ändern damit der Fehler verschwindet?????

Delphi-Quellcode:
if Mask<>'*.jpeor '*.jpgor '*.jpegor '*.pngor '*.gifthen sl.Add(RootFolder + SR.Name+'
') else sl.Add('[img]'+SR.Name+'[/img]
');
  Mit Zitat antworten Zitat
Chris1986

Registriert seit: 17. Jul 2003
Ort: Aachen
350 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: zuviele 'or's?

  Alt 4. Feb 2004, 01:08
du musst die If-Abfrage anders schreiben:
Delphi-Quellcode:
if (Mask<>'*.jpe') or (Mask<>'*.jpg') or (Mask<>'*.png') //usw.
  then sl.Add(RootFolder + SR.Name+'
') else sl.Add('[img]'+SR.Name+'[/img]
');
MfG
Christian
Es gibt nur 10 Typen von Menschen auf der Welt:
Die, die Binärcode verstehen und die, die es nicht tun . . .
  Mit Zitat antworten Zitat
Spike2k3

Registriert seit: 20. Aug 2003
73 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: zuviele 'or's?

  Alt 4. Feb 2004, 01:47
DAnke, jetzt klappts...
  Mit Zitat antworten Zitat
BungeeBug

Registriert seit: 19. Dez 2002
Ort: zuhause?!
227 Beiträge
 
Delphi 6 Personal
 
#4

Re: zuviele 'or's?

  Alt 4. Feb 2004, 07:08
Ausserdem kann man, mein ich, soviele or's machen wie man will. Man muss sie nur richtig machen
MfG BungeeBug
Wer andern eine Grube gräbt sollte auf Gasleitungen achten!!!!
  Mit Zitat antworten Zitat
delphi_newbie_123

Registriert seit: 14. Jan 2004
181 Beiträge
 
Delphi 5 Enterprise
 
#5

Re: zuviele 'or's?

  Alt 4. Feb 2004, 11:44
ich glaub das mask muss man auch net immer weider wiederholen oder?
  Mit Zitat antworten Zitat
Benutzerbild von Christian S.
Christian S.

Registriert seit: 19. Apr 2003
Ort: Düsseldorf
835 Beiträge
 
#6

Re: zuviele 'or's?

  Alt 4. Feb 2004, 11:51
Wie willst Du sonst einen Bool'schen Ausdruck produzieren? Und nur die kannst Du mit einem OR logisch verknüpfen!
Christian S.
Admin in der Entwickler-Ecke
  Mit Zitat antworten Zitat
choose

Registriert seit: 2. Nov 2003
Ort: Bei Kiel, SH
729 Beiträge
 
Delphi 2006 Architect
 
#7

Re: zuviele 'or's?

  Alt 4. Feb 2004, 11:58
Hallo Peter,
Zitat von Peter Lustig:
Und nur die [Bool'sche Asdrücke] kannst Du mit einem OR logisch verknüpfen!
ist eine mit Sicherheit eine Frage der Anschauung:
Delphi-Quellcode:
var
  myVar1, myVar2, myVar3: Cardinal;
begin
  // ...
  if (myVar1 or myVar2 or myVar3)>0 then
ist in diesem "Spezialfall" äquivalent zu
if (myVar1>0) or (myVar2>0) or (myVar3>0) then und mitunter sogar etwas performanter...
gruß, choose
  Mit Zitat antworten Zitat
Benutzerbild von Christian S.
Christian S.

Registriert seit: 19. Apr 2003
Ort: Düsseldorf
835 Beiträge
 
#8

Re: zuviele 'or's?

  Alt 4. Feb 2004, 12:05
Hallo!

Damit hast Du aber doch eine bitweise und keine logische Verknüpfung gemacht (ich habe da meine Worte schon mit bedacht gewählt). Und mit dem Ergebnis der bitweisen Verknüpfung hast Du schließlich einen Bool'schen Ausdruck konstruiert.

Mit einem String - und das ist hier in dem Falle wohl gefragt - wird Dir das aber nicht gelingen. Das geht halt nur im Spezialfall der Integerzahlen (und wahrscheinlich ein paar andere, die mir jetzt nicht einfallen).

MfG
Peter
Christian S.
Admin in der Entwickler-Ecke
  Mit Zitat antworten Zitat
Benutzerbild von FriFra
FriFra

Registriert seit: 19. Apr 2003
1.291 Beiträge
 
Delphi 2005 Professional
 
#9

Re: zuviele 'or's?

  Alt 4. Feb 2004, 12:19
So geht es aber auch:
Delphi-Quellcode:
const
  Formats: array[0..2] of string = ('*.jpe', '*.jpg', '*.png');
begin
  if Mask in Formats then
    sl.Add('[img]'+SR.Name+'[/img]
')
  else
    sl.Add(RootFolder + SR.Name+'
');
Das finde ich in so einem Fall übersichtlicher, denn wenn noch ein paar Formate dazu kommen, wird die or-Version unübersichtlich.
Elektronische Bauelemente funktionieren mit Rauch. Kommt der Rauch raus, geht das Bauteil nicht mehr.
  Mit Zitat antworten Zitat
choose

Registriert seit: 2. Nov 2003
Ort: Bei Kiel, SH
729 Beiträge
 
Delphi 2006 Architect
 
#10

Re: zuviele 'or's?

  Alt 4. Feb 2004, 12:34
Hallo FriFra,
Zitat von FriFra:
So geht es aber auch [Konstrukt mit in]
welchen Compiler nutzt Du, um das umzusetzen?

Zwar könnte man eine Lösung Deiner Art mit AnsiIndexText realisieren und dank format mit einem konstanten Array letztlich eine Lösung der Art (ungetestet)

Delphi-Quellcode:
const
  arFormats: array[0..2] of string = ('*.jpe', '*.jpg', '*.png');
  arResult: array[Boolean] of string = ('%s%s
', '[img]%:1s[/img]');
begin
  sl.Add(arResult[AnsiIndexText(AMask, arFormats)>0]);
hinbekommen, aber, dass man den is-Operator in der DL auf Arrays anwenden kann, ist mir unbekannt...

@Peter: Du hast selbstverständlich recht, es handelt sich bei meinen ORs um eine binäre Operation, dessen Ergebnis nur mit dem Vergleichsoperator zu einem Bool'schen wird. Ich war mir nicht sicher, wie genau Du Dein "logisch" nahmst und wollte schlicht eine andere Variante aufzeigen, die der natürlichen Formulierung "a oder b oder c größer null" näherkommt. In Zukunft werde ich wieder jedes Wort von Dir auf die Goldwaage legen
gruß, choose
  Mit Zitat antworten Zitat
Antwort Antwort


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 18:16 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