Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
Delphi 12 Athens
|
Re: "doppelten code" vermeiden?
17. Jan 2004, 13:13
Noch ein paar kleine Fragen zu deinem Code:
Trim(params);
Bist du sicher, das hier auch das gemacht wird, was du willst?
Ich denke mir mal, es sollt wohl eher so aussehn:
params := Trim(params);
und dieser Teil dürft wohl auch nicht die gewünschten Resultate bringen:
Pos('', params)
Bei mir ist das Ergebnis immer 0:
Pos('', params) = 0
Du könntest ja an params einfach ein ' ' anhängen, dann hat sich dein Problem gelöst:
Delphi-Quellcode:
begin
Delete(params, 1, Pos(':', params)+1);
params := Trim(params) + ' ';
while params <> '' do
begin
SetLength(NickInfo, high(NickInfo)+1);
NickInfo[high(NickInfo)].Nick := Copy(params, 1, Pos(',', params)-1);
Delete(params, 1, Pos(',', params));
NickInfo[high(NickInfo)].ClanID := Copy(params, 1, Pos(',', params)-1);
Delete(params, 1, Pos(',', params));
NickInfo[high(NickInfo)].LongIP := Copy(params, 1, Pos(' ', params)-1);
Delete(params, 1, Pos(' ', params));
end;
end;
oder du arbeitest sauber (ohne vorher ein Pseudoleerzeichen anzuhängen) und machst das mit Length(params), was dann zum wegfallen von Copy und Delete führt:
Delphi-Quellcode:
begin
Delete(params, 1, Pos(':', params)+1);
Trim(params);
while params <> '' do
begin
if Pos(' ', params) > 0 then
begin
SetLength(NickInfo, high(NickInfo)+1);
NickInfo[high(NickInfo)].Nick := Copy(params, 1, Pos(',', params)-1);
Delete(params, 1, Pos(',', params));
NickInfo[high(NickInfo)].ClanID := Copy(params, 1, Pos(',', params)-1);
Delete(params, 1, Pos(',', params));
NickInfo[high(NickInfo)].LongIP := Copy(params, 1, Pos(' ', params)-1);
Delete(params, 1, Pos(' ', params));
end
else
begin
SetLength(NickInfo, high(NickInfo)+1);
NickInfo[high(NickInfo)].Nick := Copy(params, 1, Pos(',', params)-1);
Delete(params, 1, Pos(',', params));
NickInfo[high(NickInfo)].ClanID := Copy(params, 1, Pos(',', params)-1);
Delete(params, 1, Pos(',', params));
{NickInfo[high(NickInfo)].LongIP := Copy(params, 1, Length(params));}
NickInfo[high(NickInfo)].LongIP := params;
{Delete(params, 1, Length(params));}
params := '';
end;
end;
end;
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
|