Jump to content

Помогите найти баг, пжлст


Recommended Posts

Программа использует помошника. На этапе выполнения выдает ошибку "Параметр задан неверно"(выделенная строчка).

Когда для проверки генерации использовал в оной функции не S, а inttostr(n), все шло на ура.

Для справки - программа выдает совет дня. В самой первой строчке файла число, количество советов.

procedure TForm1.FormCreate(Sender: TObject);

var

Rect: TRect;

f:TextFile;

s:string;

i,n:integer;

begin

assignfile(f,'Fraz.txt');

reset(f);

read(f,s);

randomize();

n:=random(strtoint(s));

for i:=1 to n do read(f,s);

Agent1.Connected:=True;

Request:=Agent1.Characters.Load(Agent,Agentpath);

Character:=Agent1.Characters.Character(Agent);

Request:=Character.MoveTo(300, 300,0);

Request:=Character.Show(true);

WaitFor(Request);

Request:=Character.Speak('Совет дня',EmptyParam);

Request:=Character.Speak(S,EmptyParam);

MonthCalendar1.Date:=Now();

end;

Link to comment
Share on other sites

Программа использует помошника. На этапе выполнения выдает ошибку "Параметр задан неверно"(выделенная строчка).

Когда для проверки генерации использовал в оной функции не S, а inttostr(n), все шло на ура.

Для справки - программа выдает совет дня. В самой первой строчке файла число, количество советов.

procedure TForm1.FormCreate(Sender: TObject);

var

Rect: TRect;

f:TextFile;

s:string;

i,n:integer;

begin

assignfile(f,'Fraz.txt');

reset(f);

read(f,s);

randomize();

n:=random(strtoint(s));

for i:=1 to n do read(f,s);

Agent1.Connected:=True;

Request:=Agent1.Characters.Load(Agent,Agentpath);

Character:=Agent1.Characters.Character(Agent);

Request:=Character.MoveTo(300, 300,0);

Request:=Character.Show(true);

WaitFor(Request);

Request:=Character.Speak('Совет дня',EmptyParam);

Request:=Character.Speak(S,EmptyParam);

MonthCalendar1.Date:=Now();

end;

Там в начале нам нужно не read(f,s); а readln(f,s);!!!!

А вообще я бы сделал вот так:

procedure TForm1.FormCreate(Sender: TObject);varTip:TStringList;s:string;{...}beginTip:=TStringList.Create;Tip.LoadFromFile('Fraz.txt');randomize;s:=Tip[Random(strtoint(Tip[0]))+1];{или}s:=Tip[Random(Tip.Count)]; {тогда и первая строка с количеством не надо}{...}Tip.Free;end;
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...