![]() |
Delphi Wildcard ? gibts sowas ?
Hallo liebe DP-Gemeinde.
Ich hätte mal ein Frage: "Gibt es in Delphi eine Art Wildcard, wie z.B. LIKE in SQL ?" Ich habe nämlich folgendes Problem: Aus einer DB (juhu, es funktioniert endlich, danke nochmal an sukura :thuimb: ) bekomme ich u.a. die Personalnummer geliefert. Diese muss ich dann weitergeben und weiterverarbeiten. Sie ist ein string und mus auch als String weiter gegeben werden. Das Problem ist, dass sie auf 2 verschiedene Arten und Weisen verarbeitet werden müssen. Und das hängt von der Struktur dieser ab. Strukturen der PersonalNummern: 1. Möglichkeit: '12345/6789' 2. Möglichkeit: '54321/9876' Wenn Struktur 1 vorliegt, muss sie nach Methode 1 verarbeitet werden. Wenn Struktur 2 vorliegt, muss sie nach Methode 2 verarbeitet werden. Nun wäre es natürlich am einfachsten, wenn ich sowas wie LIKE und dann eine WildCard nutzen könnte. Also soetwas hier:
Delphi-Quellcode:
Könnte mir wohl jemand dabei helfen dieses Problem zu lösen, oder sagen, ob es eine solche Like Funktion mit Wildcard gibt?
Procedure TForm1.verarbeiten(Sender: TObject);
Begin if PeronalNummer LIKE 12345/% then weiterverarbeiten1(Personalnummer) else if PeronalNummer LIKE 54321/% then weiterverarbeiten2(Personalnummer) else Showmessage('Weiterverarbeitung der Personalnummer nicht moeglich, da sie eine falsche Struktur aufweist.'); end; Das wäre sehr nett, wenn ihr mir dabei helfen könntet. MfG manu |
Re: Delphi Wildcard ? gibts sowas ?
HI!
Wie greifst du denn auf die DB zu? Vielleicht kannst du es ja schon beim Zugriff regeln? Ciao fkerber |
Re: Delphi Wildcard ? gibts sowas ?
Hallo Manu-ela,
versuche es doch mal mit der Funktion Pos.
Delphi-Quellcode:
if Pos ('54321',PeronalNummer) > 0 then
weiterverarbeiten2(Personalnummer); |
Re: Delphi Wildcard ? gibts sowas ?
Hallo,
es ist ne blöde Access DB und ich greife über die ADOConnection drauf zu. Ausgegeben wird es dann in einem DBGrid. Per ButtonClick wird dann der markierte Datensatz weiterverarbeitet. Hoffe, dass das alles war, was man wissen muss. |
Re: Delphi Wildcard ? gibts sowas ?
Du kannst es mit copy machen:
Ließ die ersten 5 Zeichen und vergleich sie dann mit den Vorlagen
Delphi-Quellcode:
Toxman
astring:=copy(personalnummer,0,5);
if astring='12345' then ... if astring='54321' then ... |
Re: Delphi Wildcard ? gibts sowas ?
Zitat:
|
Re: Delphi Wildcard ? gibts sowas ?
Super Jungs, Danke erstmal für diese Superfixen und kompetenten Antworten.
Ich habe die DB leider nur auf der Arbeit und muss morgen direkt auf einen Lehrgang. Habe nicht mit so einer schnellen und prompten Bedienung gerechnet. Musste die Frage aber jetzt schon stellen, weil sie mich das ganze Wochenende schon plagt :wall: Sobald ich wieder an die DB am Dienstag komme, werde ich es sofort ausprobieren :bouncing4: Zitat:
Danke nochmal Jungs, und nen schönen Sonntag noch. MfG manu |
Re: Delphi Wildcard ? gibts sowas ?
hallo Manuela,
binde mal die Unit "Masks" ein und benutz due Funktion "MatchesMask", also ca so:
Delphi-Quellcode:
if MatchesMask(dein string, '54321/*') then
blub; Edit: hab glaube ic was falsch verstanden :mrgreen: |
Re: Delphi Wildcard ? gibts sowas ?
Juhu, danke Jungs.
Habs nun mit
Delphi-Quellcode:
gemacht und es funktioniert einwandfrei.
astring:=copy(personalnummer,0,5);
if astring='12345' then Das nächste Problem ist nun aber aufgetreten :gruebel: Mein Chef kommt mir immer wieder mit neuen Ideen, die er hat :wall: und ich bin doch eigentlich nicht als Programmiererin hier eingestellt :gruebel: Ich muss nun nämlich die Personalnummer in einer weiteren Funktion weiterverarbeiten. Dabei muss ich aber den / aus der Nummer raus kriegen, um sie dann weiterzugeben. Also, sie kommt so an: '12345/6789' und soll so weitergegeben werden : '123456789' Könnt ihr mir dabei noch einmal helfen ? Ist auch das letzte mal *liebguck* Er hat mir schon gesagt, dass es das letzte Programm ist, was ich schrieben muss. |
Re: Delphi Wildcard ? gibts sowas ?
vielleicht so
Delphi-Quellcode:
raik
var s:string;
begin s:='12345/678'; delete(s,6,1); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:20 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz