Startseite ¦  was ist neu ¦  programmier tips ¦  indy artikel ¦  intraweb artikel ¦  informationen ¦  links ¦  interviews ¦  sonstiges
kylix ¦  tutorials ¦  online shop ¦  fotos ¦  Add&Win Gewinnspiel


Willkommen Gast. Bitte einloggen oder registrieren.
17.05.2012, 03:06:40
Übersicht Hilfe Suche Einloggen Registrieren

+  SwissDelphiCenter Forum
|-+  German Forums
| |-+  Allgemeines Forum
| | |-+  String Mengen Abfragen???
« vorheriges nächstes »
Seiten: [1] Drucken
Autor Thema: String Mengen Abfragen???  (Gelesen 2399 mal)
downloads
Newbie
*
Offline Offline

Beiträge: 19



WWW
« am: 05.03.2002, 09:59:12 »

Hallo,

ich habe einen String aus ca 3 Zeichen 'S +'
nun möchte ich diesen prüfen und ja nach Inhalt etwas anderes ausführen. Mit if then wäre dies einfach möglich.
if cmd='AAA' then etc...

aber ich möchte den String mit 3 Vorgegebenen Menge Verleichen
Bsp.
Menge1 enthält 'AAA' 'BBB' 'CCC'
Menge2 enthält 'DDD' 'EEE' 'FFF'
Menge3 enthält 'GGG' 'HHH' 'III'
Ist der gegebene Sting in Menge 1 so wird die Funktion 1 ausgeführt, ist er in Menge2 enthalten Funktion 2, etc... sonst Funktion Error.

Wie kann man so was erreichen?
const Menge1 = ['AAA','BBB','CCC'] funktioniert nicht? Ordinal Typ erförderlich ??

Das Abfragen sollte meiner Meinung nach mit if cmd in Menge1 möglich sein?

Dank für eure Hilfe
Grüsse
Severin
Gespeichert
Thomas Stutz
Global Moderator
Hero Member
*****
Offline Offline

Beiträge: 1784



WWW
« Antworten #1 am: 05.03.2002, 10:16:38 »

[font  size=2 face="Courier New" color="#000000"]Hi,

1) Definieren kannst du deine Menge so:

const
 
Menge1 : array[0..2] of string = ('AAA','BBB','CCC');


2) Zugreifen auf die Menge1 kannst du so:

[font color="#000080"]// 1. Element in Label1 anzeigen.
[/font]Label1.Caption := Menge1[0]
[/font]
Gespeichert

(¯`·._tom_.·´¯)

Tipp: Viele Antworten auf Fragen gibt's hier:
http://www.swissdelphicenter.ch/de/tipsuchen.php
downloads
Newbie
*
Offline Offline

Beiträge: 19



WWW
« Antworten #2 am: 05.03.2002, 11:06:36 »

Hallo

das Definieren funktioniert auf diese Weise wunderbar, aber ist die Abfrage nicht einfacher zu erledigen als alle Elemente einzeln mit dem vorgabe Wert zu verglichen?
so was wie ist "cmd" enthalten im Array?

Grüsse
Severin
Gespeichert
Thomas Stutz
Global Moderator
Hero Member
*****
Offline Offline

Beiträge: 1784



WWW
« Antworten #3 am: 05.03.2002, 11:21:10 »

// Hinter einer Funktion "if cmd in Menge1" steckt aber auch eine Schleife!

function StringInMenge(AString: string; AMenge: array of string): Boolean;
var
  i: Word;
begin
  Result := False;
  for i := Low(AMenge) to High(AMenge) do
  begin
    if AString = AMenge then
    begin
      Result := True;
      Break;
    end;
  end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  if StringInMenge('AAA', Menge1) then
    ShowMessage('Yes...!');
end;
Gespeichert

(¯`·._tom_.·´¯)

Tipp: Viele Antworten auf Fragen gibt's hier:
http://www.swissdelphicenter.ch/de/tipsuchen.php
downloads
Newbie
*
Offline Offline

Beiträge: 19



WWW
« Antworten #4 am: 05.03.2002, 11:29:31 »

Vielen Dank

Habe gedacht Delphi hätte schon so was eingebaut.
Gespeichert
Peda
Newbie
*
Offline Offline

Beiträge: 38


58549660
WWW
« Antworten #5 am: 05.03.2002, 14:52:00 »

Zitat

Habe gedacht Delphi hätte schon so was eingebaut.

schon, nur kannst du die Mengen-Funktionen nur bei Typdeklarationen der Form set of anwenden, was wieder nur bei aufzählbaren Typen bis maximal 256 Items funktioniert. Dann wären Abfragen à la 'in Menge enthalten', 'Schnittmenge', etc. möglich.
Gespeichert

So long...
Seiten: [1] Drucken 
« vorheriges nächstes »
Gehe zu:  


Einloggen mit Benutzername, Passwort und Sitzungslänge

Powered by MySQL Powered by PHP Powered by SMF 1.1.11 | SMF © 2006, Simple Machines LLC Prüfe XHTML 1.0 Prüfe CSS