Перейти к содержанию
СофтФорум - всё о компьютерах и не только

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


Рекомендуемые сообщения

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

Когда для проверки генерации использовал в оной функции не 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;

Ссылка на комментарий
Поделиться на другие сайты

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

Когда для проверки генерации использовал в оной функции не 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;
Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...