AGB  ·  Datenschutz  ·  Impressum  







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

String Collection

Ein Thema von Evian · begonnen am 20. Apr 2006 · letzter Beitrag vom 20. Apr 2006
Antwort Antwort
Benutzerbild von Evian
Evian

Registriert seit: 10. Apr 2003
Ort: Berlin
485 Beiträge
 
Delphi 6 Professional
 
#1

String Collection

  Alt 20. Apr 2006, 15:30
Mh.. ich habe gerade irgendwie nen totalen Blackout und bitte daher um Hilfe
Ich brauche eine kostannte Sammlung von bestimmten Strings, sodass ich später per 'in'-Operator prüfen kann, ob ein anderer String eines dieser Elemente enthält. Aber wie verflixt noch mal, kann man so eine konstante Collection deklarieren?!

Danke,

Evian
-> www.Phillsoft.de

Ich bin nun Mathematiker, aber meine Freundin bleibt trotzdem unberechenbar!
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#2

Re: String Collection

  Alt 20. Apr 2006, 15:34
Also von einzelnen Zeichen geht so

Delphi-Quellcode:
const
  Coll = ['a', 'b', 'c'];
var
  C: Char;
begin
  C := 'd';
  if C in Coll then ...
end;
Also Sets mit Strings, wo man mit dem "in" Operator arbeiten kann, sind mir allerdings in Delphi.Win32 nicht bekannt...
(Edit: Da gibts lediglich die typisierten Arrays, die Du initialiseren kannst, da geht der in Operator aber nicht...)


mfG
mirage228
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
Benutzerbild von H4ndy
H4ndy

Registriert seit: 28. Jun 2003
Ort: Chemnitz
515 Beiträge
 
Delphi XE3 Professional
 
#3

Re: String Collection

  Alt 20. Apr 2006, 15:41
Das wird nicht gehen, da in einem Set nur "ordinale" Werte gespeichert werden können.
Diese oridinalen Werte wiederum dürfen nur eine maximalen Umfang von 0-254 haben,
das heisst, sie müssen 1 Byte groß sein (Sprich du kannst Zahlen von 0-254 sowie einzelne
Zeichen darin speichern)

Deklarierst du ein Set als (mtBla, mtBlubb, mtSowieso), dann werden diese intern auch
nur als Byte-Zahlen behandelt (mtBla = 0, mtBlubb = 1, mtSowieso = 2,....).
Manuel
  Mit Zitat antworten Zitat
Benutzerbild von Evian
Evian

Registriert seit: 10. Apr 2003
Ort: Berlin
485 Beiträge
 
Delphi 6 Professional
 
#4

Re: String Collection

  Alt 20. Apr 2006, 15:45
Mh.. man kann nur Ordinal Typen in ein solches Set schreiben?!
Och schade, dachte dass man das auc bei Strings machen kann, also dass ich es dann nutzen kann wie TShiftstate, nur eben als Konstante.
-> www.Phillsoft.de

Ich bin nun Mathematiker, aber meine Freundin bleibt trotzdem unberechenbar!
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#5

Re: String Collection

  Alt 20. Apr 2006, 16:37
Du deklarierst ein Array Of String als Konstante
Delphi-Quellcode:
Const
  cStrings : Array [0..4] of String = ('Zero','Eins','Dwa','Thrie','Vor');
und suchst dann per For-Schleife:
Delphi-Quellcode:
Function StringIn (Const aPattern : String; aStringArray : TStringArray) : Boolean;
Begin
  For i:=....
End;
Oder du packst die Strings in einen String, mit delimiter und suchst mit Pos:
Delphi-Quellcode:
Const
  ccStrings = '#Zero#Eins#Dwa#Thrie#Vor';

Begin
  If Pos ('#'+aPattern, ccStrings)<>0 Then ....
Beides kurz und knapp und ausreichend schnell (wenn man es nicht gerade 100000000 aufruft).
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Benutzerbild von Evian
Evian

Registriert seit: 10. Apr 2003
Ort: Berlin
485 Beiträge
 
Delphi 6 Professional
 
#6

Re: String Collection

  Alt 20. Apr 2006, 18:41
naja ich hatte es jetzt mit IF und mehrmals or gelöst, aber Deine Lösung gefällt mir besser .. Danke!
-> www.Phillsoft.de

Ich bin nun Mathematiker, aber meine Freundin bleibt trotzdem unberechenbar!
  Mit Zitat antworten Zitat
Antwort Antwort


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 20:50 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