Entwickler-Ecke

Datenbanken - Wie in Datenbank suchen (z.B. *k*)


IhopeonlyReader - Mi 12.06.13 20:32
Titel: Wie in Datenbank suchen (z.B. *k*)
Guten Tag,
bevor ich soetwas selbst programmiere, wollte ich fragen ob es soetwas schon gibt..
Eine Function wie IstDrin( Text, ZuSuchen: String): Boolean

* = irgendein String (besteht mindestens aus einem Zeichen)
*k wäre also alles, wo ein String-länger 1 (>=2) und am Ende ein k hat z.B. look oder ik, nicht aber k
# = Ziffer (0..9)
? = Buchstabe (a..z, A..Z)

Falls es soetwas nicht gibt, sollte man ein Array of Array übergeben, in denen die möglcihen enthalten sind..
zB.
[ [#1,#65..#81] [#1..#255] #65...#81 ]
dieser String besteht nun aus 2 Zeichen, das 1ste Zeichen ist entwedr ein Leerzeichen, oder eine Großbuchstabe...
der 2te Buchstabe ist irgendein Zeichen...
Danach müssen (mindestens 1, maximal Unbegrenzt) Großbuchstaben folgen...
ich hoffe ihr wisst was ich meine ;)


FinnO - Mi 12.06.13 20:34

Moin,

du suchst Wildcards [http://www.w3schools.com/sql/sql_wildcards.asp].


IhopeonlyReader - Mi 12.06.13 20:56

nicht FÜR Datenbanken, sondern WIE bei Datenbanken...
also als Unit übergeben.. ich habe keine Datenbank, da es eigentlich IMMER nur ein String ist..
Deshalb auch nur die Überprüfung: ist x (z.B. *k) = string (z.B. super) liefert False


FinnO - Mi 12.06.13 21:20

Wer sich bedeckt hält...

Ich hätte noch Regular Expressions [http://www.regular-expressions.info/] im Angebot. Aber ich glaube kaum, dass das ist, was du willst.


IhopeonlyReader - Mi 12.06.13 21:35

user profile iconFinnO hat folgendes geschrieben Zum zitierten Posting springen:
Wer sich bedeckt hält...

Sorry, das ich das nicht genauer beschreiben kann.. Stell dir einen Chat vor, an dem ein Text nur an Leute, die das Kriterium (z.B. *k*) erfüllen, geschickt werden...
Da der einzelne User nicht weiß, "wer" alles da ist, wird dieses *k* an den Server geschickt, dieser "testet" dann alle namen und schickt den befehl an die entsprechenden Leute


Gerd Kayser - Mi 12.06.13 22:07

Wie wäre es mit Pos oder PosEx in Verbindung mit UpperCase und dergleichen? Wird was gefunden, liefern die Funktionen eine Zahl größer 0 zurück.


Quitzlinga - Mi 12.06.13 22:23

Hi,

vielleicht trifft dieser Artikel dein Problem Artikel [http://www.delphipraxis.net/125813-stringvergleich-mit-wildcards.html]

MfG

Quitzlinga


IhopeonlyReader - Fr 14.06.13 17:17

user profile iconGerd Kayser hat folgendes geschrieben Zum zitierten Posting springen:
Wie wäre es mit Pos oder PosEx in Verbindung mit UpperCase und dergleichen? Wird was gefunden, liefern die Funktionen eine Zahl größer 0 zurück.


Solche ("Grund"-)Befehle kenn ich ;) deshalb fragte ich auch nicht WIE, sondern ob es das schon gibt


Delete - Sa 15.06.13 09:09

user profile iconIhopeonlyReader hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconGerd Kayser hat folgendes geschrieben Zum zitierten Posting springen:
Wie wäre es mit Pos oder PosEx in Verbindung mit UpperCase und dergleichen? Wird was gefunden, liefern die Funktionen eine Zahl größer 0 zurück.


Solche ("Grund"-)Befehle kenn ich ;) deshalb fragte ich auch nicht WIE, sondern ob es das schon gibt


Also irgendwie verstehe ich dich nicht: Du schreibst als Überschrift "Wie in Datenbank suchen (z.B. *k*)", dann antwortest du, es gäbe überhaupt keine Datenbank, und man nennt dir Pos und PosEx als Such-Befehle, die du aber schon kennst. Wonach suchst du dann eigentlich? Ob es was schon gibt? Natürlich gibt es Pos schon, es gibt sogar noch mehr: StrUtils.ContainsStr und StrUtils.ContainsText ...


IhopeonlyReader - Sa 15.06.13 14:41

Wie gesagt, ich habe ein Array of String und bekomme einen "Suchbefehl" (z.B. *##*)
nun möchte ich wissen welche Strings aus dem Array dem Suchbefehl (nach dem Muster einer Datenbank) entsprechen


Delete - Sa 15.06.13 14:45

user profile iconIhopeonlyReader hat folgendes geschrieben Zum zitierten Posting springen:
Wie gesagt, ich habe ein Array of String und bekomme einen "Suchbefehl" (z.B. *##*)
nun möchte ich wissen welche Strings aus dem Array dem Suchbefehl (nach dem Muster einer Datenbank) entsprechen

Na dann such doch einfach in deinem String-Array nach dem String *##* ...


IhopeonlyReader - Sa 15.06.13 22:37

Ließ bitte mein 1 Post, *=irgendeinstring...


Delete - Sa 15.06.13 22:48

user profile iconIhopeonlyReader hat folgendes geschrieben Zum zitierten Posting springen:
Ließ bitte mein 1 Post, *=irgendeinstring...

Frag jemand anderen ...


nahpets - So 16.06.13 10:34

In der Datenbank suchst Du so:

Delphi-Quelltext
1:
select * from tabelle where name like '%k%';                    

Für etwas adäquates in Delphi fallen mir da auch nur reguläre Ausdrücke ein.

Schau mal bitte hier http://www.regexpstudio.com/tregexpr/tregexpr.html nach, es gibt dort eine entsprechende Klasse.


platzwart - So 16.06.13 16:43

Dann speicher doch dein Array in eine DB uns suche dort... :lol:


IhopeonlyReader - Di 18.06.13 20:22

wäre eine Möglichkeit :D, sind meist aber nur 1 oder 2 :/... lohnt sich das?