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;