Wenn ich sowas schon lese …

… kriege ich regelmäßig einen Föhn 👿

function ChkSub(const aString: string; iStart, iEnd: integer): boolean;
var
  n: integer;
begin
  for n := iStart to iEnd do
  begin
    if aString[n] in ['0'..'9', 'A'..'F'] then
    else
    begin
      Result := False;
      break;
    end;
  end;
end;

Zur Erklärung: Der Code durchsucht eine übergebene Zeichenkette (aString) zwischen zwei Positionen (iStart und iEnd) und prüft, ob an der jeweiligen Position ein Buchstabe oder eine Zahl steht. Ist dem nicht der Fall, wird der Durchlauf der Schleife mittels break abgebrochen und die Funktion liefert false als Ergebnis zurück.

Diese anscheinend von Anfängern ((nicht abwertend gemeint)) geschriebenen Code kann man aber wunderbar verkürzen und dann sieht das ganze so aus:

function ChkSub(const aString: string; iStart, iEnd: integer): boolean;
var
  n: integer;
begin
  for n := iStart to iEnd do
  begin
    Result := (aString[n] in ['0'..'9', 'A'..'F']);

    if not Result then
      Break;
  end;
end;

Ist doch gleich ein ganzes Stück kürzer und leserlicher 😉

Von Heiko

👟 Fitnesstrainer (C-Lizenz) ⚓ #kommandofischfrikadelle 4 life 🚫 keInfluencer 💯% ich 🌊 Nordish by nature 📍 Butenfriese in Coburg 🏃‍♂️🚶‍♂️🧘🏻🏋️‍♂️🚴‍♂️

2 Kommentare

Kommentare sind geschlossen.