Перейти к содержимому

Фотография

Проблема с function.


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 4

#1 natali.ancharuk

natali.ancharuk

    Новый участник

  • Members
  • Pip
  • 72 сообщений
  • ФИО:Анчарук Наталья Владимировна

Отправлено 11 июля 2005 - 10:54

У меня опять проблема с Function. Winrunner
Пишу так
i=3;
Cifry(i);
public function Cifry(in i)
{
i=i+5;
report_msg(i);
}
все правильно все видит.
а так:
for(i=1;i<n-1;i++)
{ file_getline("C:\\Formy_FLK\\201_00FLK.csv",line);
st=line;
r=1;
for (o=1;o<length(st);o++)
{ if (substr(st,o,1)==";")
r++;

else
Masdann[i,r]=Masdann[i,r]+substr(st,o,1);

}
file_getline("C:\\Itog\\OT.txt",line);
Znachenie=line;
pause (st);
pause ( Masdann[i,6]);
switch (Masdann[i,6])
{

case 1:
Cifry(Masdann[i,9]);<---Ругается на то что не обявлена. Хотя она описана внизу.

}
}


public function Cifry(out Masdann[i,9])
{
# cifry
if (Masdann[i,9]="ðíí")
{file_open("C:\nccod.txt",FO_MODE_READ);
Rnn=substr(znachenie,1,4);
ch=substr(znachenie,5,1);
n=0;
{while(file_getline("C:\nccod.txt",line)==0)
n++;
}
MasKodNalog[n];
lik=n;
schet=0;
file_close("C:\nccod.txt");
file_open("C:\nccod.txt",FO_MODE_READ);
j=0;
while(file_getline("C:\nccod.txt",line)==0)
{ j++;
MasKodNalog[j]=line;
if (Rnn=MasKodNalog[j])
{ z=1;
break;
}

if ((ch<"0") && (ch>"2"))
{ file_printf("C:\\Itog\\Itog_error.csv","%s\r\n"&toupper(line),masdann[i,2]);
file_printf("C:\\Itog\\Itog_Ob_data.csv.csv","%s\r\n"&toupper(line),masdann[i,2]);
else
file_printf("C:\\Itog\\Itog_pass_data.csv","%s\r\n"&toupper(line),masdann[i,2] );
file_printf("C:\\Itog\\Itog_Ob_data.csv.csv","%s\r\n"&toupper(line),masdann[i,2] );
}
}
Плиззз помогите голова уже болит от изучения трех ПО.
  • 0

#2 Mike

Mike

    Консультант

  • Members
  • PipPipPipPipPipPip
  • 1 079 сообщений
  • Город:Москва

Отправлено 11 июля 2005 - 12:45

Наталья, пожалуйста, когда пастите код в своё сообщение используйте таг "CODE" (что-бы не потерять отступы). Вот так, например:
public function Cifry(in i)
{
      i=i+5;
      report_msg(i);
}


Во-вторых, функции надо объявлять в начале скрипта (если вы их не выносите в отдельный модуль, что предпочтительнее), основной код теста - нмже объявления функций. Использовать из "тела скрипта" функции, объявленные ниже - нельзя. Может я Вас не так понял, но из Вашего кода создаётся впечатление, что вы так делаете...

Далее. Не понял строчку:
if ((ch<"0") && (ch>"2"))

Это как это у Вас ch одновременно будет <0 и >2?! "&&" это AND а не OR.

Ещё не понял заголовка функции:
public function Cifry(out Masdann[i,9])
{
   <...>
}

Это как? Может Вы имели в виду:

public function Cifry(out Masdann[])
{
   <...>
}
?:dirol:
  • 0
Best regards,
Майк.

#3 natali.ancharuk

natali.ancharuk

    Новый участник

  • Members
  • Pip
  • 72 сообщений
  • ФИО:Анчарук Наталья Владимировна

Отправлено 12 июля 2005 - 03:46

Простите я недавно на форуме, можете делать мне замечания я буду исправляться.

Я объявила функцию в начале вроде ничего. Только Ошибка Masdann [] не может иметь свойства 'in'. как его обявить? я написала так (in если не ошибаюсь параметр назначен изнутри функции)(как у меня):
function Cifry(in Masdann[])
{
pause ("ok1");
if (Masdann[i,9]="ðíí")  
{	file_open("C:\nccod.txt",FO_MODE_READ);
    Rnn=substr(znachenie,1,4);
    n=0;
}
}
и на каждую переменную он говорит что не обявлена.
А если объявляю inout то говорит (Variable i has not been declared).
В моем случае все переменные должны быть глобальными. :new_russian:
  • 0

#4 Mike

Mike

    Консультант

  • Members
  • PipPipPipPipPipPip
  • 1 079 сообщений
  • Город:Москва

Отправлено 12 июля 2005 - 10:32

Наталья, сорри, пожалуйста, привидите ещё раз Ваш код полностью. И вопросы.
  • 0
Best regards,
Майк.

#5 natali.ancharuk

natali.ancharuk

    Новый участник

  • Members
  • Pip
  • 72 сообщений
  • ФИО:Анчарук Наталья Владимировна

Отправлено 12 июля 2005 - 13:26

Большое спасибо, я все уже сделала сама. Правда болит голова.
Работает!
  • 0


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных