![]() |
Zeichen überprüfen
Hallo
habe ein kleines problem bei dem ich nichtmehr weiter weiss. Und zwar wollte ich bei einemprogramm eine überprüfung einbauen ob die erforderlichen zeichen vorhanden sind.Aber leider habe ich schon vieles versucht aber nicht hat bis jetzt die Lösung gebracht. Vielleicht hat jemand eine idde oder Vorschläge wie ich das realisieren könnte wäre sehr nett. |
Re: Zeichen überprüfen
Pos, StrScan
Was willst du genau? |
Re: Zeichen überprüfen
ich möchte gleichungen auf ihre korrektheit überprüfen also er soll sich die zeichen vor bestimmten variablen überprüfen ob sie korrekt sind,d.h für die gleichung zugelassen.
Aber hab im moment keine ahnung was machen soll denn habe schon so viel probiert |
Re: Zeichen überprüfen
Mit Pos/PosEx die Variablen suchen und dann einfach das Zeichen davor prüfen.
Delphi-Quellcode:
dat prüft z.B. ob vor dem ersten "a" ein "+", oder'n "-" ist ^^
i := Pos('a', S);
If (i > 1) and not (S[i - 1] in ['+', '-']) Then Fehler... |
Re: Zeichen überprüfen
und das funktioniert auch mit zahlen oder gilt das nur für zeichen ??
|
Re: Zeichen überprüfen
In Strings gibt es keinen Unterschied zwischen Zahlunde und Zeichen...
|
Re: Zeichen überprüfen
also muss ich einfach
Delphi-Quellcode:
eingeben und es müsste klappen ??
in ['1' ...]
|
Re: Zeichen überprüfen
hmm habe es ausprobiert aber es will noch nicht so
Delphi-Quellcode:
das ist der text zur überprüfung
{ alle zahlen enthalten ? }
{ 1 - true} { 0 - false} function zahlenthalten(x:string;y:integer) : byte; // überprüfen au7f Sythax var a,b,c,d,e,f,i : byte; begin if y = 2 then begin zahlenthalten := 0 ; a:=Pos('a',x);//position der Zeichen vor dem 'a' b:=Pos('b',x);//position der zeichen vor dem 'b' end; begin If (a > 1) and not (x[a - 1] in ['-',',','1','2','3','4','5','6','7','8','9','0']) Then showmessage ( 'Bitte 1.Gleichung Korrigieren') else zahlenthalten := 1; end; begin if (b > 1) and not (x[b - 1] in ['+',',','-','1','2','3','4','5','6','7','8','9','0']) then showmessage ('Bitte 2.Gleichung korrigieren') else zahlenthalten := 1; end; end; und rufe später in einer anderen unit es wieder auf
Delphi-Quellcode:
nun jetzt weiss ich nicht wo ic heinen fehler habe
gl1:=Edit1.Text;
gl2:=Edit2.Text; { Gleichungen umschreiben und in Array eintragen } if ((varenthalten(gl1,2) = 1) and (zahlenthalten(gl1,2)= 1)) then gleich1(gl1,t[1,1],t[1,2],t[1,3]) else showmessage('Bitte korrigieren Sie die 1. Gleichung!'); if ((varenthalten(gl2,2) = 1) and (zahlenthalten(gl2,2) = 1 ) )then gleich1(gl2,t[2,1],t[2,2],t[2,3]) else showmessage('Bitte korigieren Sie die 2. Gleichung!'); PS: varenthalten ist eine funktion die läuft und überprüft ob die variablen enthalten sind. bitte um hilfe danke für bisher und schonmal im voraus ^^ |
Re: Zeichen überprüfen
Zitat:
Und was macht Y? Außerdem ist a und b nicht definiert, wenn Y <> 2 ist ... da sollte eigentlich auch der Compiler meckern. Zitat:
Ach ja, man kann es mit den begin/end's auch übertreiben ._.
Delphi-Quellcode:
function zahlenthalten(const x: string): Boolean; // überprüfen auf Sythax
var a,b: byte; begin Result := Talse; a := Pos('a', x); // Position des Zeichen 'a' b := Pos('b', x); // Position des Zeichen 'b' If (a > 1) and not (x[a - 1] in ['-', ',', '0'..'9']) then showmessage('Bitte 1. Gleichung korrigieren') else Result := True; if (b > 1) and not (x[b - 1] in ['+', ',', '-', '0'..'0']) then showmessage('Bitte 2. Gleichung korrigieren') else Result := True; end;
Delphi-Quellcode:
Das sieht ja schonmal gut aus, aber was läuft denn nicht?
gl1:=Edit1.Text;
gl2:=Edit2.Text; { Gleichungen umschreiben und in Array eintragen } if varenthalten(gl1) and zahlenthalten(gl1) then gleich1(gl1,t[1,1],t[1,2],t[1,3]) else showmessage('Bitte korrigieren Sie die 1. Gleichung!'); if varenthalten(gl2) and zahlenthalten(gl2) then gleich1(gl2,t[2,1],t[2,2],t[2,3}) else showmessage('Bitte korigieren Sie die 2. Gleichung!'); // PS: varenthalten ist auch mal auf Boolean umgestellt (in den Abfragen) |
Re: Zeichen überprüfen
naja wenn ic halles richtig eingebe meckert er auch rum das ich korrigieren müsste,aber weiss nicth wieso er das macht
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:00 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