AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Abfrage ob eingegebener Wert nur ein Charackter
Thema durchsuchen
Ansicht
Themen-Optionen

Abfrage ob eingegebener Wert nur ein Charackter

Offene Frage von "Lotus"
Ein Thema von Lotus · begonnen am 11. Sep 2007 · letzter Beitrag vom 14. Sep 2007
Antwort Antwort
Seite 1 von 2  1 2      
Lotus

Registriert seit: 26. Feb 2007
85 Beiträge
 
Delphi 7 Personal
 
#1

Abfrage ob eingegebener Wert nur ein Charackter

  Alt 11. Sep 2007, 21:31
Hallo, ich habe ein Problem bei einem Delphiprogramm!

Das Programm an sich gibt durch einen Button (zufällig) 26 Buchstaben in einer Tabelle aus! Wie der Zufall es so will sind diese natürlich ungeordnet und die Aufgabe besteht darin einen kleinen Suchbutton zu erstellen der anzeigen soll an welcher Stelle (in der Tabelle) der gesuchte Buchstabe vorhanden ist! Dies ist alles kein Problem gewesen und konnte ich realisieren, allerdings möchte ich jetzt noch abfangen das jmd dort ein Wort oder eine Zahl eingibt! Kurz gesagt ich möchte sagen das dort nur 1 Char eingegeben werden darf.. allerdings ist die Variable ein String! Ich wollte es folgendermaßen machen:

Delphi-Quellcode:
k:=AnsiUpperCase(e1.text); //Buchstabe der gesucht werden soll
if (length(k) < 2) and ( chr(strtoint(k)) > 91 ) then begin //Abfangen von Wörtern durch length und Zahlen
  e:=suche(k); //suche ist eine Funktion die halt durch die Variable k zum Ergebnis e wird
  e2.Text:=inttostr(e); // Ausgabe
end
  else e2.Text:='Bitte nur einen Buchstaben eingeben'; //Wenn Bedingung nicht erfüllt
end;
das kann natürlich nicht klappen da chr nur bei Characktern funktioniert und k ja ein string ist! wollte fragen ob es da eine möglichkeit gibt ( es gibt ja auch strtoint also warum nicht strtochr?) das zu realisieren! hoffe ihr könnt mir helfen >.<
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Abfrage ob eingegebener Wert nur ein Charackter

  Alt 11. Sep 2007, 21:34
if c in ( 'a'..'z') or c in ('A'..'Z')
Markus Kinzler
  Mit Zitat antworten Zitat
Lotus

Registriert seit: 26. Feb 2007
85 Beiträge
 
Delphi 7 Personal
 
#3

Re: Abfrage ob eingegebener Wert nur ein Charackter

  Alt 11. Sep 2007, 21:43
danke für die schneller antwort, allerdings habe ich noch nicht ganz so recht verstanden was du gemeint hast..
wofür brauch ich die neue Variable c? ich habs einmal mit k probiert, also

Delphi-Quellcode:
if k in ('A'..'Z') or k in ('a'..'z') then begin
e:=suche(k);
  e2.Text:=inttostr(e);
allerdings funktioniert das absolut nicht
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Abfrage ob eingegebener Wert nur ein Charackter

  Alt 11. Sep 2007, 21:46
c war als Platzhalter für den Charakter gedacht.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Abfrage ob eingegebener Wert nur ein Charackter

  Alt 11. Sep 2007, 22:01
Hi,

das müsste so heißen (eckige Klammern)

if (c in ['a'..'z']) or (c in ['A'..'Z']) then oder auch kürzer:

if c in ['a'..'z', 'A'..'Z'] then Edit: Du musst natürlich auf den Datentyp achten:

Das könnte so aussehen:

Delphi-Quellcode:
var c: char;
begin
  c := AnsiUpperCase(Edit1.Text)[1];
  if c in ['a'..'z', 'A'..'Z'] then
oder auch so:

Delphi-Quellcode:
var c: string;
begin
  c := AnsiUpperCase(Edit1.Text);
  if c[1] in ['a'..'z', 'A'..'Z'] then
  Mit Zitat antworten Zitat
Lotus

Registriert seit: 26. Feb 2007
85 Beiträge
 
Delphi 7 Personal
 
#6

Re: Abfrage ob eingegebener Wert nur ein Charackter

  Alt 11. Sep 2007, 22:08
alles schön und gut.. ich weiss allerdings immernoch nicht so recht wie ich c in mein programm mit einbinden soll.. ich hab jetzt die variable c als char definiert.. dann habe ich eure programmzeile eingefügt.. allerdings muss ich doch c noch irgendwie in verbindung mit dem textfeld (dem gesuchten buchstaben) bringen oder nicht? das funktioniert aber nicht da ich dem c kein edit.text zuweisen kann
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Abfrage ob eingegebener Wert nur ein Charackter

  Alt 11. Sep 2007, 22:12
Hallo,

während du geantwortet hast, habe ich meinen Beitrag editiert und genau das eingefügt.
  Mit Zitat antworten Zitat
Lotus

Registriert seit: 26. Feb 2007
85 Beiträge
 
Delphi 7 Personal
 
#8

Re: Abfrage ob eingegebener Wert nur ein Charackter

  Alt 14. Sep 2007, 14:48
wunderbar.. das hat mir sehr geholfen und ich bin auch weiter gekommen, allerdings ergab sich jetzt ein erneutes Problem! Wenn ich Arrays durchsuchen lasse.. weil ich ja aus Zufälligen Zahlen oder Buchstaben einen bestimmten suchen möchte, dann lass ich ihn ja bis Anzahl der Arrays+1 laufen! allerdings wenn ich jetzt nach einem Buchstabe suche der nicht vorhanden ist, dann kommt eine fehlermeldung:

Der Index war außerhalb des Arraybereichs! Is ja klar da ich Array+1 zaehle.. aber wie kann ich machen das dieser Fehler nich angezeigt wird?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.546 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Abfrage ob eingegebener Wert nur ein Charackter

  Alt 14. Sep 2007, 14:58
Wieso +1?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Lotus

Registriert seit: 26. Feb 2007
85 Beiträge
 
Delphi 7 Personal
 
#10

Re: Abfrage ob eingegebener Wert nur ein Charackter

  Alt 14. Sep 2007, 15:10
ok war falsch ausgedrückt.. guck hier

Delphi-Quellcode:
function suche(buchstabe:string):integer;
begin
  i:=1;
  while a[i] <> buchstabe do Inc(i);
  if i>nf then i:=-1;
  result:=i;
end;

abbruchbedingung wenn mein zähler größer als die constante nf der arrays.. also laeuft er einmal mehr durch!
  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 17:46 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