Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Nur auf vorhandene Arrayelemente zugreifen (https://www.delphipraxis.net/66577-nur-auf-vorhandene-arrayelemente-zugreifen.html)

xZise 31. Mär 2006 16:49


Nur auf vorhandene Arrayelemente zugreifen
 
Ich habe mir ein kleines Programm gebastelt.
Jetzt habe ich einen Bestimmten Text geteilt (immer nach dem Leerzeichen).
Nun muss ich in bestimmten fällen auf die Arraystelle "2" zugreifen, die aber nicht zwingen Vorhanden sein muss!

Ich habe das mit "SaveRead" gelöst, aber vielleicht gibt es ja schon vorgefertige Varianten?
Wenn es noch keine vorgefertige Variante gibt:
Wie kann ich ein ggf. ein Array übergeben (wenn ich das erweitere)?

Delphi-Quellcode:
function TFCommands.Command(Line : string) : string;
var
  i : Integer;
begin
  SetLength(Commands, 1);
  Commands[0] := '';

  // Kommandos filtern
  for i := 1 to Length(Line) do
    if Line[i] = ' ' then
      SetLength(Commands, Length(Commands) + 1)
    else
      Commands[High(Commands)] := Commands[High(Commands)] + Line[i];

  for i := 0 to High(Commands) do
    Commands[i] := lowercase(Commands[i]);

  // Überprüfen
  if SaveRead(0) = 'say' then
    Result := 'Sagen'
  else if SaveRead(0) = 'me' then
    Result := 'Aus 3. Person erzählen'
  else if SaveRead(0) = 'nickserv' then begin
    if SaveRead(1) = 'identify' then
      Result := 'Identifizieren bei Nickserv'
    else
      Result := 'Unbekanntes Nickservcommando';
  end else if SaveRead(0) = 'chanserv' then begin
    if SaveRead(1) = 'identify' then
      Result := 'Identifizieren bei Chanserv'
    else
      Result := 'Unbekanntes Chanservcommando';
  end else if SaveRead(0) = 'memoserv' then begin
    if SaveRead(2) = 'read' then
      Result := 'Lesen einer Memoservnachricht'
    else
      Result := 'Unbekanntes Memoservcommando';
  end
end;

function TFCommands.SaveRead(ArrIndex : Integer) : string;
begin
  Result := '';
  Showmessage(IntToStr(High(Commands)));
  if High(Commands) <= ArrIndex then
    Result := Commands[ArrIndex];
end;

pacman1986 31. Mär 2006 16:53

Re: Nur auf vorhandene Arrayelemente zugreifen
 
frag doch einfach die länge ab

xZise 31. Mär 2006 16:55

Re: Nur auf vorhandene Arrayelemente zugreifen
 
Tue ich auch (@ Saveread), aber es in Command würde es die struktur zerstören und wollte es deshalb auslagern (>>> SaveRead).


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