Просмотр полной версии : Чтение переменных из txt
Вобщем у меня возникла такая проблема
из файла считую значения переменных но цифры не воспринимаются как цифры тоесть я не могу делать с ними арифметич операции. Я уже пробовал преобразовывать их Функцией Number() и другими- не помогает
как быть ?
-----------------------------
извиняюсь если похожая тема есть , но я ее не нашел
если есть дайте ссылку
Жень Шень
12.08.2005, 18:27
Исходник б посмотреть, а так гадать... :rolleyes:
motor4ik
12.08.2005, 19:14
попробй trace что скажет :)
Вобщем фигня какая-то:
у меня в файле хранятся x=100 &y=100 и тд
пишу trace(tipeof(Number(x))); пишет number но все равно при операциях пишет Nan(не является числом) а иногда если еще че-нить напишу несущественное
пишет undefined
а вот сам код
loadVariables("vars1.txt", "_root"); // загружаю переменные x=100.&y=100 из файла vars1.txt
createEmptyMovieClip("container", 1);
x1=Number(x); //преобразовую в число и присваиваю люб переменной
c=10+x1 //любая арифметич операция и присвоение люб переменой
trace(с);
в итоге пишеться Nan :confused:
как выход из положения
loadVariables("vars1.txt", "_root"); // загружаю переменные x=100.&y=100 из файла vars1.txt
this.onEnterFrame=function(){
if(x!==undefined){
delete this.onEnterFrame;
trace(typeof x+' : '+x+ ' : '+Number(x)+' : '+parseFloat(x))//string : 100 : NaN : 100
x1=parseFloat(x);
c=10+x1
trace(c); //110
}
}а почему Number() не работает не сумел понять
зы: сори, все решилось банально просто: у меня в файле стоял пробел перед &y=100 - убрал и заработала Number() loadVariables("vars1.txt", "_root");
this.onEnterFrame=function(){
if(x){
delete this.onEnterFrame;
x1=Number(x);
c=10+x1
trace(c); //110
}
}
т.е. выходит что Number не пытается преобразовать 'неправильную' строку как parseFloat, а дает NaN
почему у тебя не работает (из-за подобного пробела или потому что пытаешься использовать, не дождавшись загрузки) уж сам гляди..
motor4ik
15.08.2005, 11:13
у меня недавно такая же тема была!! Number не хотел ниче делать, и писал потом NaN!
Я из Xml считывал аргумент x
<moto>x</moto>
вот ниче не мог с ним сделать!! че за фигня???
motor4ik
15.08.2005, 11:15
пробелов никаких небыло! т.е. trace показывал значение x , а сделать с ним ниче не мог!!! ну вместо x понятно было написано число! <moto>26</moto>
просто считывается неверный тип данных, вместо стринга объект. поэтому чтоб получить корректно данные надо сделать следующее.
бла_бла = Number(Х_данные.toString());
motor4ik
15.08.2005, 11:31
все верно! спасибо!! :)
просто считывается неверный тип данных, вместо стринга объект. поэтому чтоб получить корректно данные надо сделать следующее.
бла_бла = Number(Х_данные.toString());
Я не знаю как сказал silin у меня получилось, причем убрал пробелы в тектовике и только тогда получилось, а бла_бла = Number(Х_данные.toString()); чето ниче не дало все равно пишет Nan.
Незнаю но мне кажется что от того что у меня 2004 mx может поэтому все эти глюки
У меня вопрос к silin-у я так понял что только внутри этой функции видно эти переменные, как только пытаюсь сделать trace() снаружи функции пишет undefined
получается все надо делать только внутри этой функции this.onEnterFrame=function()
а если надо значения передать куда-нить еще как быть?
суть не в том, что переменные видно внутри onEnterFrame, а в том что их видно после загрузки,
onEnterFrame для этого (чтоб отследить загрузку) и использовалась..
см. еще LoadVars class, да и вообще тема избитая..
а может они у тебя просто не успевают загрузиться?
ты протрейсь переменные загружаемые
(пока писал уже по теме ответили ) :cool:
Да они внатуре не успевают загрузится сделал еще 1 кадр там написал gotoAndPlay(1) сначала написало 3 штуки Nan а потом намана,
вот только попытался убрать этот кадр и в 1-ом где весь код находиться
попытался поставить все в цикле пошли сплошные наны, ну мне кажеться шо надо не все в цикл засунуть или может что-то одно буду пробовать
присваивай сначала переменным какие-либо значения и потом зацикливай кадр пока не выполнится условие что все загружаемые переменные сменили свои значения
Мляяяя херня какая-то в цикле, который в 1 кадре нифига не получатся он переменные не хочет грузить, только если в др. кадре ставлю gotoadplay тогда грузит, ну и бред какой-то :confused:
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.