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ängern1 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 😉

  1. nicht abwertend gemeint []

CC BY-SA 4.0 Wenn ich sowas schon lese … von Heiko Adams ist lizenziert unter Creative Commons Namensnennung-Weitergabe unter gleichen Bedingungen 4.0 international.

2 Antworten auf „Wenn ich sowas schon lese …“

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.