![]() |
erweiterte IF - Bedingung
Guten Abend ihr,
ich habe mit Lazarus angefangen, für die Schule einen Vertretungsplan zu erstellen. Ich versuche seit einer Stunde, bei bestimmten Fällen keine Nachricht zu schicken:
Könnt ihr mir velleicht weiterhelfen? Lg Tilman |
AW: erweiterte IF - Bedingung
setz mal vor dem not jeweils noch eine offene Klammer und vor dem nächsten or eine geschlossene Klammer
oder
Delphi-Quellcode:
Ich schreibe einfach erstmal alles klein (
var
S1: String; S2: String; begin S1 := AnsiLowerCase(Edit1.Text); //klein schreiben S2 := Edit2.Text; // S2 := AnsiLowerCase(Edit2.Text); If ((S1 <> 'sekretäriat') and (S2 = 'Faldera123')) or ((S1 <> 'schüler') and (S2 = 'Klasse123')) then ShowMessage('falsch'); end;
Delphi-Quellcode:
) - so brauch ich nicht auf die Groß-/Kleinschreibung im Vergleich achten!
AnsiLowerCase
(case sensitive) |
AW: erweiterte IF - Bedingung
Den OR hat eine höhere Priorität wie AND
|
AW: erweiterte IF - Bedingung
Wann kommt falsch und bei welchen Eingabewerten?
Ich würde aber fast wetten du hat ein paar Klammern vergessen. Denn dein Code macht es aktuell so
Delphi-Quellcode:
if (not (edit1.Text = 'Sekretäriat')) and (edit2.Text = 'Faldera123')
or (not (edit1.Text = 'sekretäriat')) and (edit2.Text = 'Faldera123') or (not (edit1.Text = 'Schüler')) and (edit2.Text = 'Klasse123') or (not (edit1.Text = 'schüler')) and (edit2.Text = 'Klasse123') then showmessage('Falsch.');
Delphi-Quellcode:
Lösungen:
if ((edit1.Text <> 'Sekretäriat') and (edit2.Text = 'Faldera123'))
or ((edit1.Text <> 'sekretäriat') and (edit2.Text = 'Faldera123')) or ((edit1.Text <> 'Schüler') and (edit2.Text = 'Klasse123')) or ((edit1.Text <> 'schüler') and (edit2.Text = 'Klasse123')) then showmessage('Falsch.');
Delphi-Quellcode:
if not ((edit1.Text = 'Sekretäriat') and (edit2.Text = 'Faldera123'))
or not ((edit1.Text = 'sekretäriat') and (edit2.Text = 'Faldera123')) or not ((edit1.Text = 'Schüler') and (edit2.Text = 'Klasse123')) or not ((edit1.Text = 'schüler') and (edit2.Text = 'Klasse123')) then showmessage('Falsch.');
Delphi-Quellcode:
if not (edit1.Text = 'Sekretäriat') and not (edit2.Text = 'Faldera123')
or not (edit1.Text = 'sekretäriat') and not (edit2.Text = 'Faldera123') or not (edit1.Text = 'Schüler') and not (edit2.Text = 'Klasse123') or not (edit1.Text = 'schüler') and not (edit2.Text = 'Klasse123') then showmessage('Falsch.');
Delphi-Quellcode:
Diese drei Lösungen machen alle das Gleiche, wenn man die boolsche Algebra gelernt hat.
if (edit1.Text <> 'Sekretäriat') and (edit2.Text <> 'Faldera123')
or (edit1.Text <> 'sekretäriat') and (edit2.Text <> 'Faldera123') or (edit1.Text <> 'Schüler') and (edit2.Text <> 'Klasse123') or (edit1.Text <> 'schüler') and (edit2.Text <> 'Klasse123') then showmessage('Falsch.'); Siehe auch
Delphi-Quellcode:
if ((edit1.text='Sekretäriat') or (edit1.text='sekretäriat')) and (edit2.text='Faldera123') then
Wie im Mathe: Punktrechnung vor Strichrechnung ... AND vor OR und NOT so, wie das Minus von negativen Zahlen. Also solltest du dieses vielleicht besser lernen, z.B. über eines der unzähligen Tutorials. :wink: PS: ![]() [edit] ähhh, verwende doch bitte [delphi]...[delphi] @Helmi: Nach den NOT und um beide AND-Operatoren :zwinker: |
AW: erweiterte IF - Bedingung
Zitat:
Hab meinen Post noch erweitert |
AW: erweiterte IF - Bedingung
Ich mache die vergleiche meistens gern direkt case-insensitiv, da wo sie es sein sollen. (außer vielleicht wenn es sein muß, bezüglich der Performance auch vorher)
So, und nun sage mal jemand, warum man Mathe lernen soll ... braucht man ja eh nie wieder im Leben. :stupid: ------------ Es gibt 10 Arten von Menschen. Die, welche binär können, und jene, welche das nicht können. |
AW: erweiterte IF - Bedingung
Also:
Der Pc sagt mir jetzt verschiedene Sachen, unter anderem, bei dem Fall, wo er mich eigentlich einloggen sollte, dass die Eingabe falsch ist, und dann meldet er mich an. Wenn ich im oberen Fenster falsch bin, zeigt er mir gar keine Nachricht an. Und wenn ich im unteren Fenster falsch bin, sagt er mir, dass ich Falsch bin, öffnet mir auch gleichzeitig den Vertretungsplan. ICh habe das mit allen drei der Lösungen ausprobiert, keine funktioniert. :( Lg Tilman |
AW: erweiterte IF - Bedingung
Naja, etwas Wichtiges hast du immernoch vergessen zu erklären, was genau du wie prüfen willst.
Versuch es doch mal als deutschen Satz zu beschreiben. |
AW: erweiterte IF - Bedingung
wir wissen ja nicht, was dein Programm tut, bzw. tun soll
wir kennen bislang nur die paar Zeilen Code, die du uns in deinen ersten Post geschrieben hast und all unsere Glaskugeln sind zur Reparatur (sehr anfälliges Produkt) :-) |
AW: erweiterte IF - Bedingung
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:23 Uhr. |
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