Форум о FIFA 15, FIFA 14, PES 2014 и других футбольных симуляторах на fifasoccer.ru

Форум о FIFA 15, FIFA 14, PES 2014 и других футбольных симуляторах на fifasoccer.ru (http://fifasoccer.org/forum/index.php)
-   Программирование (http://fifasoccer.org/forum/forumdisplay.php?f=40)
-   -   Скрипты Java (http://fifasoccer.org/forum/showthread.php?t=3402)

Nefelim 22.12.2005 19:15

Скрипты Java
 
Первый буду. Не нах ли? ;)

Итак, здесь хотелось бы обсуждать разнообразные скрипты на языке Java.

-------------------------

Собственно, в настоящий момент мне глубоко интересен такой скриптик...
Есть текстовый файл определенной структуры. Скажем, такой:

наименование_параметра = значение1, значение2, значение3, ..., значениеN;

Нужен скрипт, который бы считывал эти параметры из этого файла и подставлял их в HTML-форму при загрузке страницы. Такая своеобразная БД получается. вегуд, правда, сказал, что это проще на PHP написать, но мне с JS-ами проще...

Nefelim 22.12.2005 23:13

Требую прикрутить вот это к Главной! :)

Жаль, но нужного скрипта я пока не нашел - специфический слишком. Буду компилировать сам, наверное...

вегуд 22.12.2005 23:23

Цитата:

Первый буду. Не нах ли? :rolleyes:
...
не знаю, куда и как ты хочешь эти данные вставлять..
привожу свое видение

если хочешь пользовать JS...
------ твоя страница.html ------
<script src="mydata.js"></script>
Первое значение параметра 1 вот такое: <script> document.write(myparam1[0]); </script><br>
А второе значение параметра 1 вот такое: <script> document.write(myparam1[1]); </script><br>
А третье значение параметра 2 вот такое: <script> document.write(myparam2[2]); </script><br>
-------------------------------

при этом файл с данными будет в виде js:
---- mydata.js ------
var myparam1 = new Array('значение1', 'значение2', 'значение3');
var myparam2 = new Array('значение1', 'значение2', 'значение3');
var myparam3 = new Array('значение1', 'значение2', 'значение3');
...
------------------------


Если хочешь по-хорошему, на php:
----- loadparam.php -----
<?php
$mydatafile = 'mydata.txt';
$lines = file($mydatafile);
while (list(, $line) = each($lines)) {
list($param, $values) = explode('=', $line);
$param = trim($param);
$values = trim($values);
$$param = explode(',', $values);
}
?>
----------------

при этом файл c данными
----- mydata.txt ----
myparam1=Маша,Петя,Вова
myparam2=яблоки,груши,сливы
------------------------

и наконец твой файл
----- твой файл .php -----
<?php
include 'loadparam.php';
?>

<?php echo $myparam1[0] ?> любит <?php echo $myparam2[2] ?> (результат: Маша любит сливы)
<?php echo $myparam1[1] ?> обожает <?php echo $myparam2[1] ?> (результат: Петя обожает груши)
<?php echo $myparam1[2] ?> в гробу видел эти <?php echo $myparam2[0] ?> ...

(можно вместо <?php echo $myparam1[0] ?>
использовать конструкцию <?=$myparam1[0]?>
но это порочная практика ;) )
--------------------------------

в дальнейшем, если ты захочешь перейти на
базу данных - тебе надо будет только заменить loadparam.php


можно совместить эти два подхода
и сделать чтобы php-скрипт генерил js-скрипт.
зачем? например, чтобы php-скрипт положить
на одном сайте, и использовать результат его работы (js-скрипт)
на других сайтах.

пример: скрипт лежит на ф-сайте и выдает
js-скрипт, где в переменных определяются последние заголовки новостей:
var news = new Array();
news.push({title: "А где РПЛ?", author: "Akar", postdate: "2005-12-22 14:00:00"});
news.push({title: "А где WL?", author: "Akar", postdate: "2005-12-22 12:00:00"});
news.push({title: "А где вегуд?", author: "Akar", postdate: "2005-12-22 11:00:00"});

вы этот скрипт подключаете у себя на страничке:
<script src=http://fifasoccer.ru/news/export.php></script>
и используете эти переменные:
Последняя новость с ф-сайта: <script> document.write(news[0].title); </script>, автор:
<script> document.write(news[0].author); </script>, время публикации: <script> document.write(news[0].postdate); </script>

таким образом, ваша страница без php и не имея доступ к базе
данных наших новостей таки показывает желаемую информацию.


для ранее рассмотренного случая - имеем измененный loadparam.php
который будет читать mydata.txt и выдавать js-скрипт
(выходной файл будет примерно такой же как и в начале поста - mydata.js)
----- loadparam.php -----
<?php
$mydatafile = 'mydata.txt';
$lines = file($mydatafile);
while (list(, $line) = each($lines)) {
list($param, $values) = explode('=', $line);
$param = trim($param);
$values = explode(',', trim($values));
echo "var $param = new Array('".join("','", $values)."');\n";
}
?>
----------------

---- mydata.txt ------
myparam1=значение1,значение2,значение3
myparam2=значение1,значение2,значение3
myparam3=значение1,значение2,значение3
...
------------------------



и вот мы его используем в странице:
------твоя страница.html------
<script src="http://somesite.ru/loadparam.php"></script>
Первое значение параметра 1 вот такое: <script> document.write(myparam1[0]); </script><br>
А второе значение параметра 1 вот такое: <script> document.write(myparam1[1]); </script><br>
А третье значение параметра 2 вот такое: <script> document.write(myparam2[2]); </script><br>
-------------------------------


на что следует обратить внимание:
на то, чтобы значения параметров не содержали служебных
знаков (равно и запятая)
если генерится js-скрипт, учитывать кавычки


p.s.
вообще, сейчас модно выдавать xml,
а такой гемор с генерированием js-скрипта
относится к разряду хитрожопств.
однако, такие штуки работали и 5 лет назад, когда xmlом еще еще не пахло,
работают и сейчас... а значит - почему бы и нет?

p.p.s.
работу кода не проверял, мог где-нибудь облажаться :rolleyes:

Nefelim 23.12.2005 07:33

Э-э-э... Спасибо, буду думать... :cool:

Posho 26.12.2005 15:12

у меня вопрос к вегуду: ты не поделишься скриптом для проигрывания музыки? ну тем, что на ф-сайте стоит?

Nefelim 26.12.2005 21:39

А если попробовать сохранить любую f-страничку на диск и поискать там .js-файл? Или, например, поискать в global.js? ;)

Posho 26.12.2005 22:23

Цитата:

А если попробовать сохранить любую f-страничку на диск и поискать там .js-файл? Или, например, поискать в global.js?
я уж поискал, и все, что искал, нашел :)
теперь другие, технические проблемы -- нужно скачать Flash MX.

вегуд 27.12.2005 01:17

Цитата:

Сообщение от Павеллос
я уж поискал, и все, что искал, нашел :)
теперь другие, технические проблемы -- нужно скачать Flash MX.

вот так всегда.. всё сп*здят :rolleyes:
качай сразу Flash8

Posho 27.12.2005 16:59

еще б заставить это работать...

Nefelim 27.12.2005 18:01

СЗОТ, конечно, но зачем это все? Реальный пацаны пользуют WordPad. :) Конкретные - Notepad. Я реальный. Глупо, неудобно, устарело, знаю, но ведь некоторые до сих пор не юзают мышку в шутерах. Аксакалы!

Теперь по теме. вегуд, я немного туплю. Как конкретно вставить данные из .txt-файла в тело странички при помощи приведенного тобой js'а? Скажем, я хочу отобразить текстовую строку-ссылку. Тогда это будет так:

<a href="mailto:admin@microsoft.com">???</a>

Вот вместо "???" я, допустим, хочу поставить значение №2 строки myparam25 из mydata.txt. Вот... :o

m.i.Mo™ 28.12.2005 03:34

Мне нужен скрипт для гостевой книги. Мож я не втему или сам не знаю что пишу, о всё же.

Woo Hoo! 28.12.2005 14:36

Цитата:

Сообщение от Raiv
Мне нужен скрипт для гостевой книги. Мож я не втему или сам не знаю что пишу, о всё же.

http://cgi.myweb.ru/index.phtml ищи что хочешь.

Nefelim 29.12.2005 18:17

Попробую пока использовать JS для доски. У меня есть... хм... несколько :D вопросов. Пока что общеобразовательных, а там - посмотрим. Может, сам дойду. Итак, есть JS-файл с таким содержимым:
Цитата:

// definitions
var user_name = new Array ('Luke', 'Leia', 'Anakin', 'Vader');
var user_status = new Array ('hits', 'loves', 'beats', 'kills');
var misc = new Array ('target', 'mushrooms', 'maniacs', 'Obi-Van');
И есть HTML-файл:
Цитата:

<script type="text/javascript" src="sample.js"></script>

<BODY>

<hr>
<center>
<script>document.write(user_name[0]);</script>
<script>document.write(user_status[0]);</script> the
<script>document.write(misc[0]);</script>!
</center>
<hr>
<center>
<script>document.write(user_name[1]);</script>
<script>document.write(user_status[1]);</script> the
<script>document.write(misc[1]);</script>!
</center>
<hr>
<center>
<script>document.write(user_name[2]);</script>
<script>document.write(user_status[2]);</script> the
<script>document.write(misc[2]);</script>!
</center>
<hr>
<center>
<script>document.write(user_name[3]);</script>
<script>document.write(user_status[3]);</script> the
<script>document.write(misc[3]);</script>!
</center>
<hr>

</BODY>
Какую функцию мне надо написать (или воспользоваться стандартной), чтобы вместо цифр в указаниях параметров стояли случайные величины? Иными словами, как запустить генератор случайных чисел? У меня есть, скажем, матрица с неким набором параметров, причем их количество определено некой константой. Например:


var Array_UserName_RecordsNum = 3; // from 0 to 3
var Array_UserName = new Array ('thegood', 'Akar', 'Nefelim', 'admin');


Тогда эта функция должна считать значение параметра Array_UserName_RecordsNum и выдать любое число от 0 до значения параметра.

Зачем мне это все? Я хочу написать такой код, в котором количество строк было бы разумным и определенным. Скажем, в приведенном HTML-примере, для каждого из массивов мне пришлось писать отдельный блок, схожий с остальными - это неэффективно. Блок должен быть один, а количество его повторов с РАЗНЫМИ вводными определяется или автоматически, или задается. Это уже будет второй вопрос - такая функция тоже понадобится. Используя ее, я смогу построить идентичный ряд строк, скажем - таблицу юзеров. Считываем количество юзеров и это количество раз обрабатываем один и тот же блок кода.

вегуд 29.12.2005 22:25

Цитата:

Сообщение от Nefelim
Какую функцию мне надо написать (или воспользоваться стандартной), чтобы вместо цифр в указаниях параметров стояли случайные величины? Иными словами, как запустить генератор случайных чисел? У меня есть, скажем, матрица с неким набором параметров, причем их количество определено некой константой. Например:


var Array_UserName_RecordsNum = 3; // from 0 to 3
var Array_UserName = new Array ('thegood', 'Akar', 'Nefelim', 'admin');


Тогда эта функция должна считать значение параметра Array_UserName_RecordsNum и выдать любое число от 0 до значения параметра.

в твоем случае Array_UserName_RecordsNum должна равнятся 4,
потому что у тебя 4 элемента ;)
но эта переменная не нужна вовсе, потому что число элементов
можно получить через Array_UserName.length()

твоя функция выглядит примерно так

function getRandomElement(InArray) {
return InArray[ Math.round(Math.random()*(InArray.length() - 1)) ];
}

она возвращает случайный элемент массива
остается только
document.write(getRandomElement(Array_UserName));

Nefelim 30.12.2005 18:21

:( Что-то не работает у меня скрипт. Видать, где-то я что-то не так прописал.
Кстати, я скачал приличный гайд по Яве, так что вопросов, думаю, у меня станет существенно меньше.

вегуд 31.12.2005 01:25

js рекомендую дебажить в firefox
там в инструментах есть джава-консоль, где можно посмотреть подробности ошибки

Nefelim 20.01.2006 08:46

Вложений: 1
Есть скрипт (в аттаче). В "ослике" все работает, а вот FireFox его крутить не хочет - пишет:
Цитата:

Предупреждение: Element referenced by ID/NAME in the global scope. Use W3C standard document.getElementById() instead.
Источник: file:///d:/_httpsrv/home/moddebauch.org/script/flakes.js
Строка: 75".
Вот она строка 75 (и 76):
Код:

si[i].style.pixelLeft=Xpos[i];
si[i].style.pixelTop=Ypos[i]+hscrll;

Как переписать ее, чтобы скрипт работал под FireFox? Скрипт образует на страничке "снегопад" - заданные изображения летят сверху вниз как снежинки.

Bobr 23.01.2006 20:25

Нужен скрипт калькулятора услуг.
Если кто видел что-то похожее, киньте ссылку на архивчик... :o
Код HTML:

<form>
<h3>Календарь карманный</h3>
<table width="100%">
<tr valign="top">
      <td width="10"><input type="checkbox" name="" value="check me"></td>
      <td width="20%">С ламинированием</td>
      <td width="35%">Количество штук: <input name="" type="text" value="1"></td>
      <td width="35%">Цена <input name="" type="text" value="3"></td>
</tr>
<tr valign="top">
      <td><input type="checkbox" name="" value="check me"></td>
      <td>Без ламинирования</td>
      <td>Количество штук: <input name="" type="text" value="100"></td>
      <td>Цена <input name="" type="text" value="250"></td>
</tr>
</table>
<h3>Календарь настенный</h3>
<table width="100%">
<tr valign="top">
      <td width="10"><input type="checkbox" name="" value="check me"></td>
      <td width="20%">Формат А3</td>
      <td width="35%">Количество штук: <input name="" type="text" value="30"></td>
      <td width="35%">Цена <input name="" type="text" value="1500"></td>
</tr>
<tr valign="top">
      <td><input type="checkbox" name="" value="check me"></td>
      <td>Формат А3 +</td>
      <td>Количество штук: <input name="" type="text" value="50"></td>
      <td>Цена <input name="" type="text" value="3000"></td>
</tr>
<tr valign="top">
      <td><input type="checkbox" name="" value="check me"></td>
      <td>Формат А2</td>
      <td>Количество штук: <input name="" type="text" value="250"></td>
      <td>Цена <input name="" type="text" value="7500"></td>
</tr>
</table>
<table>
<tr width="100%">
      <td width="10"></td>
      <td><b>Общая стоимость:</b> <input name="" type="text" value="1500"> рублей.</td>
</tr>
</table>
</form>


Nefelim 23.01.2006 21:01

Посмотри, например, здесь. Не совсем то, но может и сойти. Еще пошукай на softlinks.ru или похожих архивах, где есть скрипты.

Bobr 23.01.2006 22:04

Nefelim, что-то там не то всё...

вегуд 23.01.2006 22:15

Цитата:

Сообщение от Nefelim
Есть скрипт (в аттаче).
Как переписать ее, чтобы скрипт работал под FireFox? Скрипт образует на страничке "снегопад" - заданные изображения летят сверху вниз как снежинки.

Скрипт кривой и старый. Требуется полная переделка. :)
для начала следовало бы убрать поддержку старого NN - то есть
if (ns) { - вырезать - } else { - оставить - }

в целях экономии времени можно так:

вместо
Код:

document.write('<img id="si" src="'+rndPic+'" style="position:absolute;top:0px;left:0px">');
надо
Код:

document.write('<img id="si' + i + '" src="'+rndPic+'" style="position:absolute;top:0px;left:0px">');
и вместо
Код:

si[i].style.pixelLeft=Xpos[i];
si[i].style.pixelTop=Ypos[i]+hscrll;

надо
Код:

document.getElementById('si'+i).style.left=Xpos[i];
document.getElementById('si'+i).style.top=Ypos[i]+hscrll;

результат не проверял :)


Часовой пояс GMT +3, время: 16:52.

Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. Перевод: zCarot