Code: Alles auswählen
for i:= 0 to strtoint(Anzahl) do
begin
numbers := numbers + ' ' + inttostr(random(10)); //Das ist Zeile 45
end;
random.lpr(45,50) Fatal: Syntax error, "." expected but "(" found
hinter random
Code: Alles auswählen
for i:= 0 to strtoint(Anzahl) do
begin
numbers := numbers + ' ' + inttostr(random(10)); //Das ist Zeile 45
end;
Code: Alles auswählen
library random;
{$mode objfpc}{$H+}
uses
classes,
sysutils,
strutils,
uPluginHeader in '..\uPluginHeader.pas';
var
Irc: TIrcInterface;
function InitProc(uid: cardinal; version: Cardinal; IrcInterface: TIrcInterface; DoJoinProc: TDoJoinProc; DoPartProc: TDoPartProc; DoSayProc: TDoSayProc; DoRawProc: TDoRawProc; DoNickChangeProc : TDoNickChangeProc): Boolean;
begin
Result := true;
Irc := IrcInterface;
Randomize;
end;
procedure MessageProc(AUser: PChar; AChannel: PChar; AMessage: PChar);
var
content, s :string;
i, trenner, atrenner, AVG :integer;
Min, Max, Anzahl, numbers :string;
begin
content := AMessage;
if AnsiStartsText('!rnd ', Content) then
begin
s := Copy(Content, 6, length(Content));
if s <> '' then
begin
//ermittelt minimalwert
trenner := Pos('|', s);
Min := Copy(s, 0, trenner-1);
atrenner := trenner;
//ermittelt max wert
trenner := PosEx('|', s,atrenner);
Max := copy(s, atrenner+1, trenner-1);
atrenner := trenner;
//ermittelt anzahl an zahlen
trenner := PosEx('|', s,atrenner);
Anzahl:= Copy(s, atrenner+1, trenner-1);
for i:= 0 to strtoint(Anzahl) do
begin
numbers := numbers + ' ' +inttostr(random(10));
end;
end;
writeln('Min:'+ Min + ' Max:' + Max + ' Anzahl:' + Anzahl);
Say(Achannel, AUser + ': ' + Numbers)
end;
end;
procedure JoinProc(AUser: PChar; AChannel: PChar);
begin
end;
procedure NickChangeProc(AOldNick : PChar; AHost : PChar; ANewNick : PChar);
begin
end;
procedure PartProc(AUser: PChar; AChannel: PChar);
begin
end;
function RawProc(ARaw: PChar):Boolean;
begin
end;
procedure InfoProc(out Name: PChar; out Version: Cardinal; out Description: PChar);
begin
Name := 'rnd';
Version := 1;
Description := 'Erzeugt random numbers';
end;
exports InitProc, MessageProc, JoinProc, PartProc, RawProc, InfoProc, NickChangeProc;
begin
end.
Code: Alles auswählen
numbers := numbers + ' ' +inttostr(system.random(10));
Code: Alles auswählen
Irc.Say(Achannel, AUser + ': ' + PChar(numbers));
Code: Alles auswählen
var pnumbers : pchar;
und im code:
pnumbers := PChar(numbers);
Irc.Say(Achannel, AUser + ': ' + pnumbers);
Die Konkatenation von Strings und Pchar ist auch wieder ein String versuche:Dragon hat geschrieben:@theo
Das dieser fehler jetzt nicht mehr auftritt dafür ein anderer
wirft: random.lpr(50,50) Error: Incompatible type for arg no. 2: Got "AnsiString", expected "PChar"Code: Alles auswählen
Irc.Say(Achannel, AUser + ': ' + PChar(numbers));
habs sogar schon über eine zweite Varable probiert
beiwirft aber den selben errorCode: Alles auswählen
var pnumbers : pchar; und im code: pnumbers := PChar(numbers); Irc.Say(Achannel, AUser + ': ' + pnumbers);
Code: Alles auswählen
Irc.Say(Achannel, PChar(AUser + ': ' + numbers));
Ich meinte das Wort "gelößt" gibt nicht. Es heißt "gelöst" oder "erledigt".Dragon hat geschrieben:@theo
Das dieser fehler jetzt nicht mehr auftritt dafür ein anderer