Dein Code hat eine schlechte Qualität.
Hier ein Beispiel für eine Funktion, die gleich mehrere Fehler/Mängel hat:
Delphi-Quellcode:
function DoGetSpeakers : pchar;
// warum Pchar ? string ist viel sicherer
var
IDs :
Array[0..1023]
of Integer;
Records : Integer;
I: integer;
PlayersInfo :
Array[0..1023]
of TtsrPlayerInfo;
// Unschön und gefährlich: grosse Arrays auf dem Stack (Stacküberlauf droht)
ID : integer;
begin
result := '
';
Records := 1024;
// unschön, hier wäre Length(PlayersInfo) angebracht
try
if not DisplayResult(tsrGetSpeakers(@playersInfo, @records) )
then exit;
if Records > 0
then ;
// diese Zeile tut nichts. Warum steht sie dann da ?
for I :=0
to Records-1
do
ID := PlayersInfo[i].PlayerID ;
// Unsinn: ID wird zugewiesen - es wird aber damit nicht gearbeitet
for i:= 0
to high(Player)
do // wenn i > Records-1, dann wird auf uninitialisierten Daten gearbeitet !!! ein ganz böses Foul
if Player[i].id = Id
then
result := pchar(player[i].
Name);
// Schleife läuft weiter, obwohl der Player mit der Id gefunden wurde
// fehlt da nicht ein Break ?
except
On E:
Exception Do
hLog.AddException(E);
end;
// Einrückung passt nicht
end;