AGB  ·  Datenschutz  ·  Impressum  







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

Zahlen im Edit "filtern"

Ein Thema von Merchator · begonnen am 2. Jun 2007 · letzter Beitrag vom 2. Okt 2007
Antwort Antwort
Seite 1 von 2  1 2      
Merchator

Registriert seit: 24. Feb 2007
16 Beiträge
 
Delphi 7 Personal
 
#1

Zahlen im Edit "filtern"

  Alt 2. Jun 2007, 18:28
Hi!
Ich bins wieder O.o
Ich sitz hier jetzt schon ne Weile und denke über folgendes nach:

Ich habe ein Editfeld. Dort dürfen allerdings nur Zahlen zwischen 0-29 rein.
Allerdings dürfen die Zahlen 1,3,11,13,22,27 auch nicht da rein.

Also ersteres geht ja so
Delphi-Quellcode:
...
var
s:integer;
 begin
 s:= StrToInt(Edit1.text);
   begin
   if s < 29 then
    begin
    ...
   end
  else
  begin
  ...
  end;
Das funktioniert soweit auch ganz gut.
Nur wie "filtere" ich jetzt die oben genannten Zahlen da raus?
Hab schon versucht mit
if s = 11 or 27 or 13 or 1 or 3 or 14 or 22 then Aber ich bekomm dann immer ne Fehlermeldung von Wegen zugriffsverletzung usw.

Hat also jemand einen besseren Vorschlag, dies zu lösen?

mfG
Merchator
<--- Achtung, Anfänger --->
Rechtschreibfehler sind vom Autor beabsichtigt und dienen der allgemeinen Belustigung!
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.323 Beiträge
 
Delphi XE2 Professional
 
#2

Re: Zahlen im Edit "filtern"

  Alt 2. Jun 2007, 18:31
Hallo,

so, jetzt hab ich kurz einen kleinen Test gemacht und so gehts:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  s: String;
  i: Integer;

begin
  s := Edit1.Text;
  i := StrToIntDef(s, 0); //Text in Integer wandeln

  If (i in [1, 3, 11, 13, 14, 22 , 27]) then //prüfen ob die Zahl drin ist
    ShowMessage(Format('%d ist drin!', [i]));
end;
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Merchator

Registriert seit: 24. Feb 2007
16 Beiträge
 
Delphi 7 Personal
 
#3

Re: Zahlen im Edit "filtern"

  Alt 2. Jun 2007, 18:48
Hey, vielen Dank, hat geklappt!


Einen schönen Tag noch!
<--- Achtung, Anfänger --->
Rechtschreibfehler sind vom Autor beabsichtigt und dienen der allgemeinen Belustigung!
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#4

Re: Zahlen im Edit "filtern"

  Alt 2. Jun 2007, 20:20
Hallo Merchator,

deinen Ansatz hattest du so umsetzten können:
if ((s = 11) or (s = 27) or (s = 13) or (s = 1) or (s = 3) or (s = 14) or (s = 22)) then aber Helmis ist "schöner"


MfG,
Bug
Intellekt ist das Verstehen von Wissen. Verstehen ist der wahre Pfad zu Einsicht. Einsicht ist der Schlüssel zu allem.
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.323 Beiträge
 
Delphi XE2 Professional
 
#5

Re: Zahlen im Edit "filtern"

  Alt 2. Jun 2007, 20:47
Zitat von BUG:
Hallo Merchator,

deinen Ansatz hattest du so umsetzten können:
if ((s = 11) or (s = 27) or (s = 13) or (s = 1) or (s = 3) or (s = 14) or (s = 22)) then aber Helmis ist "schöner"


MfG,
Bug
Wenn dann so:
if ((s = '11') or (s = '27') or (s = '13') or (s = '1') or (s = '3') or (s = '14') or (s = '22')) then
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
raiguen
(Gast)

n/a Beiträge
 
#6

Re: Zahlen im Edit "filtern"

  Alt 2. Jun 2007, 21:15
Zitat von Merchator:
...Dort dürfen allerdings nur Zahlen zwischen 0-29 rein.
Allerdings dürfen die Zahlen 1,3,11,13,22,27 auch nicht da rein....
Um beide Bedingungen zu erfüllen würde ich das so machen:
Delphi-Quellcode:
procedure Button1Click(Sender: TObject);
var i: Integer;
     s: String;
begin
  s := Trim(Edit1.Text); // evtl. Leerstellen vor und nach dem Eingabetext abschneiden
  i := StrToIntDef(s, 0);

  if ( i in [0..29] ) and ( i not in [1,3,11,13,22,27] ) then
  ...
end;
Empfehlung für die EIngabe: Im ObjektInspektor für das Editfeld die Eigenschaft MaxLength auf 2 setzen, so dass maximal nur eine 2-stellige Zahl eingegeben werden kann.
Desweiteren würde ich alle anderen Zeichen abblocken, sprich nur Ziffern zulassen; entsprechende CodeSchnippsel gibt's hier im Forum zur Genüge
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#7

Re: Zahlen im Edit "filtern"

  Alt 3. Jun 2007, 10:06
Hallo,

oft ist der möglichst frühzeitige Ausschluss von falschen Eingabewerten die beste Lösung. Bei einem zusammenhängenden Wertebereich 0..29 wäre ein SpinEdit sicher optimal. Da hier aber Lücken vorgegeben sind, würde ich eine ComboBox mit dem Style csDropDownList einsetzen.

Grüße vom marabu
Angehängte Dateien
Dateityp: zip combo-1_204.zip (1,6 KB, 4x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#8

Re: Zahlen im Edit "filtern"

  Alt 3. Jun 2007, 17:26
@Helmi
Zitat:
Wenn dann so:
if ((s = '11') or (s = '27') or (s = '13') or (s = '1') or (s = '3') or (s = '14') or (s = '22')) then
Siehe ersten Beitrag von Merchator:
Zitat:
s:= StrToInt(Edit1.text);
MfG,
Bug
Intellekt ist das Verstehen von Wissen. Verstehen ist der wahre Pfad zu Einsicht. Einsicht ist der Schlüssel zu allem.
  Mit Zitat antworten Zitat
WIng2005

Registriert seit: 20. Mär 2006
Ort: Thüringen
388 Beiträge
 
Delphi XE Starter
 
#9

Re: Zahlen im Edit "filtern"

  Alt 2. Okt 2007, 11:16
Hallo,

gibt es eine einfachere Methode, ALLE numerischen Werte eines Strings zu filtern,
als Zeichen für Zeichen zu betrachten?

Also:
C123F -> CF

MFG
Steffen
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#10

Re: Zahlen im Edit "filtern"

  Alt 2. Okt 2007, 11:57
Hi Steffen,

wenn du so allgemein fragst, dann: Nein. Sobald du ein Muster hast, kann man das berücksichtigen. Aber selbst dann könnte die Überprüfung jedes einzelnen Zeichens noch wirtschaftlicher sein als ein intelligenter Algorithmus - besonders bei kurzen Strings.

Grüße vom marabu
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 10:19 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