Зверюга Posted March 18, 2007 Report Share Posted March 18, 2007 Программа использует помошника. На этапе выполнения выдает ошибку "Параметр задан неверно"(выделенная строчка). Когда для проверки генерации использовал в оной функции не 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 More sharing options...
LomaK.XP Posted March 23, 2007 Report Share Posted March 23, 2007 Программа использует помошника. На этапе выполнения выдает ошибку "Параметр задан неверно"(выделенная строчка). Когда для проверки генерации использовал в оной функции не 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 More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now