Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Überprüfen ob ein String-Array ein gewisses Zeichen enthält (https://www.delphipraxis.net/109892-ueberpruefen-ob-ein-string-array-ein-gewisses-zeichen-enthaelt.html)

STaRDoGGCHaMP 9. Mär 2008 19:29


Überprüfen ob ein String-Array ein gewisses Zeichen enthält
 
Moin,
Wie der Titel schon unschwer vermuten lässt bin ich auf der Suche nach einer Funktion, die überprüft ob ein gewisses Zeichen in einem Array vorhanden ist. Ich suche jetzt schon etwas länger und würde sie nur sehr ungern selber schreiben :mrgreen:

SirThornberry 9. Mär 2008 19:36

Re: Überprüfen ob ein String-Array ein gewisses Zeichen enth
 
handelt es sich um ein Array of String wo du wissen willst ob ein Zeichen in einem der Strings enthalten ist oder ist es ein Array von Zeichen oder ist es einfach nur ein String?
Wenn du das nur ungern selbst schreiben würdest deutet es darauf hinn das du dich nicht sonderlich damit auskennst (denn es sind nur paar Zeilen). Und in dem Falle empfehle ich eigentlich "selbst schreiben" damit du was lernst.

STaRDoGGCHaMP 9. Mär 2008 19:38

Re: Überprüfen ob ein String-Array ein gewisses Zeichen enth
 
Es ist ein Array (ein-dimensional), das pro Index jeweils ein Zeichen enthält und ich könnte problemlos so eine Funktion schreiben, allerdings achte ich sehr auf eleganten Code und deshalb würde ich gerne wissen ob es so eine Funktion schon gibt, wenn ja benutz ich sie wenn nicht schreib ich sie selber.

Fussball-Robby 9. Mär 2008 19:40

Re: Überprüfen ob ein String-Array ein gewisses Zeichen enth
 
Wenn du es selber schreiben würdest, wäre es so ziemlich genau eine einzige Zeile. Ich denke, das ist kurz genug, oder?

Mfg

Klaus01 9. Mär 2008 19:44

Re: Überprüfen ob ein String-Array ein gewisses Zeichen enth
 
Delphi-Quellcode:
i:=low(array)
found := false;
while (not found) and (i <= high(array)) do
  begin
    found := array[i] = gesuchtesZeichen;
    inc(i);
  end;
Elegant genug?

Gut, wenn man noch ein Funktion (frei nach Beitrag #7) drumherumbasteln möchte:

Delphi-Quellcode:
function isCharIn(const CArray: Array of char; c : Char):boolean;
var
  i: Integer;
begin
  result := false;
  i := low(CArray)
  while (not result) and (i <= high(CArray)) do
  begin
    result := CArray[i] = c;
    inc(i);
  end;
end;
Grüße
Klaus

semo 9. Mär 2008 19:44

Re: Überprüfen ob ein String-Array ein gewisses Zeichen enth
 
siehe Unit StrUtils --> AnsiIndexText (steht erst in den höheren Delphi-Versionen zur Verfügung)

1234588 9. Mär 2008 19:57

Re: Überprüfen ob ein String-Array ein gewisses Zeichen enth
 
Delphi-Quellcode:
function IsCharIn(const c: array of char; s: Char): Boolean;
var
  i: LongInt;
begin
  for i := low(c) to high(c) do
  begin
    IsCharIn := s = c[i];
    if IsCharIn then break;
  end;
end;
wuerde ich sogar noch eleganter finden :o)

Hawkeye219 9. Mär 2008 20:47

Re: Überprüfen ob ein String-Array ein gewisses Zeichen enth
 
Hallo,

hier ist noch ein Vorschlag:

Delphi-Quellcode:
var
  ch    : Char;
  SArray : array [0..10] of Char;
  DArray : array of Char;
begin
  if Pos(ch, SArray) > 0 then
    ShowMessage ('found');

  if Pos(ch, string(DArray)) > 0 then
    ShowMessage ('found');
end
Gruß Hawkeye

SirThornberry 9. Mär 2008 22:00

Re: Überprüfen ob ein String-Array ein gewisses Zeichen enth
 
ich hätte eher an eine While schleife gedacht die solange durchläuft bis das ende erreicht ist (bzw. welche rückwärts läuft solange der Index > -1 ist) und das Zeichen nicht erreicht wurde.
Delphi-Quellcode:
var i: Integer;
begin
  i := length(array) - 1;
  while ((i > -1) and (array[i] <> gesuchtes_zeichen)) do
    dec(i);
  result := (i > -1);


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:56 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