AGB  ·  Datenschutz  ·  Impressum  







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

Enthält String bestimmte Zeichen

Ein Thema von Jelly · begonnen am 13. Sep 2005 · letzter Beitrag vom 13. Sep 2005
Antwort Antwort
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#1

Enthält String bestimmte Zeichen

  Alt 13. Sep 2005, 11:49
Ich möchte prüfen, ob ein String bestimmte Zeichen enthält. So à la

if S[1] in ['a'..'z'] then Result := true else Result := false ; Das klappt aber nur für Chars. Ich möchte aber jetzt nicht den ganzen String Zeichen für Zeichen prüfen. Gibts da ne fertige Funktion in Delphi. Dei Hilfe mir nicht viel geboten.

Das ganze soll eine Paswortvalidierung sein, die bestimmten Kriterien entpsrechen müssen. Es müssen Kleinbuchstabem Grossbuchstaben und Sonderzeichen enthalten sein.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.202 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Enthält String bestimmte Zeichen

  Alt 13. Sep 2005, 11:59
Pos-Funktion (Siehe Delphi-Hilfe).
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von leddl
leddl

Registriert seit: 13. Okt 2003
Ort: Künzelsau
1.613 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Enthält String bestimmte Zeichen

  Alt 13. Sep 2005, 12:01
Das wollte ich auch schreiben, das ist aber nicht das, was er will. Mit Pos könnte er sehen, ob ein bestimmtes Zeichen im String ist. Er will aber schauen, ob eines von mehreren Zeichen im String enthalten sind.
Allerdings sehe ich auch keine andere Möglichkeit, als per Schleife mit Pos alle Zeichen durchzugehen. Kannst das ja nett in eine Funktion verpacken und mit einer Menge als Parameter aufrufen.
Axel Sefranek
A programmer started to cuss, cause getting to sleep was a fuss.
As he lay there in bed, looping round in his head
was: while(!asleep()) ++sheep;
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Enthält String bestimmte Zeichen

  Alt 13. Sep 2005, 12:04
Hai Jelly,

ich habe das jetzt weiter geprüft aber eventuell ist ja TRegExpr etwas für dich?

Aber mit einer kleinen Schleife solltest Du das auch ganz schnell mit Boardmitteln machen können.
Delphi-Quellcode:
type
  TCharSet = set of char;

function CharInString(aString: string; achars: TCharSet): boolean;
var
  ndx: integer;
begin
  Result := True;
  for ndx := 1 to Length(aString) do
  begin
    if not (aString[ndx] in achars) then
    begin
      Result := False;
      exit;
    end;
  end;
end;

procedure TForm1.btn_StringTestClick(Sender: TObject);
begin
  if not (CharInString('Test',['a'..'z'])) then
  begin
    ShowMessage('blubb');
  end;
end;
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#5

Re: Enthält String bestimmte Zeichen

  Alt 13. Sep 2005, 12:13
@Fischli:
dein CharInString sieht aber mehr nach "besteht String nur aus diesen Chars" aus.

Aber so wie ich das verstanden hab, will er wissen, ob einer der Chars in dem String ist
Code:
function CharInString(aString: string; achars: TCharSet): boolean;
var
  ndx: integer;
begin
  Result := [color=red]False[/color];
  for ndx := 1 to Length(aString) do
  begin
    if [color=red]aString[ndx] in achars[/color] then
    begin
      Result := [color=red]True[/color];
      exit;
    end;
  end;
end;
@leedl
man kann ja das Pos auch mit mehreren Chars durchfüren und wenn eines davon > 0 ausgibt, dann ist eines der Zeichen vorhanden.
$2B or not $2B
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#6

Re: Enthält String bestimmte Zeichen

  Alt 13. Sep 2005, 12:14
Noch eine kleine Anregung von mir:

Delphi-Quellcode:
const
  cgUcase = 0;
  cgLcase = 1;
  cgPunct = 2;

  MIN_PSWD_LEN = 8;

function IsStrongPassword(s: string): boolean;
var
  cGroup: array [cgUcase..cgPunct] of byte;
  i: integer;
begin
  ZeroMemory(@cGroup, SizeOf(cGroup));
  for i := 1 to Length(s) do
    case s[i] of
      'A'..'Z': Inc(cGroup[cgUcase]);
      'a'..'z': Inc(cGroup[cgLcase]);
      else Inc(cGroup[cgPunct]);
    end;
  Result := (Length(s) >= MIN_PSWD_LEN)
    and (cGroup[cgUcase] > 0)
    and (cGroup[cgLcase] > 0)
    and (cGroup[cgPunct] > 0);
end;
Grüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von Kara
Kara

Registriert seit: 2. Aug 2005
113 Beiträge
 
#7

Re: Enthält String bestimmte Zeichen

  Alt 13. Sep 2005, 12:32
(OT) In Perl könnt ich das (/OT)
--- yesterday is gone, tomorrow has not yet come, we have only today. let us begin. ---
  Mit Zitat antworten Zitat
Benutzerbild von leddl
leddl

Registriert seit: 13. Okt 2003
Ort: Künzelsau
1.613 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Enthält String bestimmte Zeichen

  Alt 13. Sep 2005, 12:34
Zitat von himitsu:
man kann ja das Pos auch mit mehreren Chars durchfüren und wenn eines davon > 0 ausgibt, dann ist eines der Zeichen vorhanden.
Klar, hab ich ja auch geschrieben. Nur müßte er eben dafür ein Char nach dem anderen durchgehen. Ich gehe mal davon aus, daß er wissen wollte, ob es einen einfaches Befehl gibt, so daß er es lösen kann, wie mit einzelnen Chars.

//Edit:
Oder meintest du, daß man mehrere Chars als Parameter auf einmal übergeben kann? Hab ich noch gar nicht gewußt...
Axel Sefranek
A programmer started to cuss, cause getting to sleep was a fuss.
As he lay there in bed, looping round in his head
was: while(!asleep()) ++sheep;
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#9

Re: Enthält String bestimmte Zeichen

  Alt 13. Sep 2005, 13:21
OK, die CharInString Funktion machts, wie's aussieht. Ich dachte nur Delphi liefert sowas von Haus aus mit. Nachdem ich schon mehrmals mir ne eigene Funktion gebastelt habe, und später in Erfahrung gebracht habe, dass es genauso was in OP schon gibt, dacht ich mir diesmal, ich frag mal lieber hier nach.

Danke für den Code
  Mit Zitat antworten Zitat
Benutzerbild von SubData
SubData

Registriert seit: 14. Sep 2004
Ort: Stuhr
1.078 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: Enthält String bestimmte Zeichen

  Alt 13. Sep 2005, 13:25
Versuchs mal mit Regular Expressions... www.regexpstudio.com

Wie weiter oben schon gesagt wurde: Mit Perl geht das; Und zwar mit der gleichen Methode ^^
Ronny
/(bb|[^b]{2})/
  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:28 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