のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,645,882人
昨日:no data人
今日:
最近の注目
人気の最安値情報

私的良スレ書庫

不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitter
ログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。

元スレ+ JavaScript の質問用スレッド vol.78 +

JavaScript スレッド一覧へ / JavaScript とは? / 携帯版 / dat(gz)で取得 / トップメニュー
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
レスフィルター : (試験中)
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
201 : Name_Not - 2010/05/22(土) 15:45:49 ID:??? (+56,+27,-6)
そもそもPHP使わなきゃいけない処理のなのかな?
202 : Name_Not - 2010/05/22(土) 15:47:03 ID:??? (+67,+29,-46)
>>201
そこはスレ違いだからどうでもいいだろw
仮に二倍するような処理って書いただけで実際はもっと複雑なんだろうし。
204 : Name_Not - 2010/05/22(土) 15:53:29 ID:??? (-4,-29,-45)
順番に配列に入れるなら
必要な長さの空文字列の配列を作成
successのコールバックでインデックスを指定して配列に入れる
表示する時は毎回joinで全てテキストエリアを上書き
209 : Name_Not - 2010/05/22(土) 16:09:11 ID:WnZ6qoN8 (-21,+29,-28)
>>207
なるほど。
知識が足りず完全には理解できないですが、
ちょっと仰る通りに書いてみます。
(理解はあとでw)
210 : Name_Not - 2010/05/22(土) 16:11:38 ID:??? (+62,+29,-25)
>>204がいいんでない?
返るって来るのが遅いデータは空行になって、データ:結果は一致するんじゃないかな。
211 : Name_Not - 2010/05/22(土) 16:15:42 ID:??? (-2,-29,-16)
>>193
自分で試してみたら、このハッシュの返し方イマイチだったわ
{
index: 1,
val: 6
}
とかの方がrespons.indexとかで拾えるから楽なんだった
216 : Name_Not - 2010/05/22(土) 22:41:10 ID:??? (+32,-29,-11)
>>215
Firefoxで試した
1.2.6できない
1.3.1できない
1.4.1できる
217 : Name_Not - 2010/05/22(土) 23:04:52 ID:??? (+6,-16,+0)
mapとか使わんわ
219 : Name_Not - 2010/05/22(土) 23:17:31 ID:??? (+62,+29,-18)
>>216
ぐはぁっ
やっぱりか・・

mapはjQuery使わずやるか・・
220 : Name_Not - 2010/05/23(日) 00:41:22 ID:??? (+53,+25,-3)
mapも使いこなせないカスがいるのか
221 : Name_Not - 2010/05/23(日) 01:46:54 ID:??? (+52,+29,-14)
そう自虐的になるなよ
223 : Name_Not - 2010/05/23(日) 02:23:25 ID:??? (+29,+11,+0)
作れ
224 : Name_Not - 2010/05/23(日) 03:24:12 ID:??? (+42,+24,+0)
作ろう
225 : Name_Not - 2010/05/23(日) 03:33:33 ID:??? (+0,-30,-196)
>>180
説明ありがとうございました
結局少し仕様を変更する事にしたのですが、少々テキストファイルの読み込み等で質問があります。

上で記載した感じで、最終的にセレクトリストで選択した物、例えば"短剣"を元に、外部ファイル"item.text"から
一行ずつ読み出してその中に一致している文字列があれば指定文字毎に読み出してHTMLのテーブルに表示させたいと思っています。

このプログラムに必要な要素について説明されてるサイト等を教えていただけないでしょうか?
もしくは上記プログラムに必要な要素を教えていただけないでしょうか?

参考情報
・item.text
木炭,1,木材\n
銅,1,木炭,2,銅鉱石\n
青銅,1,錫,1,銅\n
鉄,1,木炭,2,鉄鉱石\n
短剣,3,鉄,1,木材\n

このテキストファイルを読み込んで下のように表示させたい(┳、━、┗等はとりあえず分かりやすくするために記載)

短剣┳鉄[3]┳木炭[3]
   ┃    ┗鉄鉱石[6]
   ┗木材[1]

※上の図は短剣で検索された行を読み込んだ後、さらに鉄を検索して材料と必要個数を表示。
226 : Name_Not - 2010/05/23(日) 03:38:44 ID:??? (+62,+29,-30)
すいません、グダグダと書きましたが

・外部ファイルから1行読み出し
・長い文字列と指定された短い文字列の一致判定
・指定区切り毎の読み取り

の3点がおそらく自分が理解してない事だと思っているため、よろしくお願いいたします。
227 : 179 - 2010/05/23(日) 05:03:57 ID:??? (+0,+27,-144)
まず外部のファイルを読み込むのには俗に言うAjax、XMLHttpRequest(XHR)を使う。
ブラウザによって実装に色々と差があって面倒なので、
特に理由がないのであればその辺をまとめて吸収してくれるライブラリを使うべき。
流行ってるし使いやすいのでjQueryおすすめ。
http://semooh.jp/jquery/api/ajax/jQuery.get/+url%2C+data%2C+callback+/
こんな風に1文でGETを発行して結果をまとめて文字列として取得できる。
1行ずつ処理したければ\nでsplitすればいい。
http://www.google.co.jp/search?hl=ja&q=javascript+split

item.txtの書式はよく分からないので何とも言えないけれど
(例:「短剣」が最上位の要素になることはどのようにして決まるのか)、
JavaScriptの連想配列の使い方を少し調べれば
ツリーを表す構造を表すのもそんなに難しくないことは分かると思う。
(探索するのはちょっと面倒かも。これはJavaScriptではなくアルゴリズムの問題)
もうちょっと情報があれば頭の体操に考えてみるかも。
228 : Name_Not - 2010/05/23(日) 05:27:53 ID:??? (+54,+26,-33)
jQueryで済む程度なら、今はXHRのブラウザ差なんかほとんどないけどな
229 : Name_Not - 2010/05/23(日) 05:49:45 ID:??? (+53,+25,-29)
jQueryはほとんどの差すらないからな
230 : Name_Not - 2010/05/23(日) 06:28:21 ID:??? (+100,+27,-1)
それはない。まじで
231 : Name_Not - 2010/05/23(日) 07:01:45 ID:??? (+11,-30,-95)
>>227
他に慣れた言語があるなら、そっちでitem.textをJSONモドキのitem.jsに変換して
<script src="item.js">で一発ロードしたほうがなにかと楽

もし他言語使えないのなら・・・JSから生成するとなると結局XHRに頼ることになるから
キャッシュ的効果しか意味ねーな
手作業での変換はミスの元だし
232 : Name_Not - 2010/05/23(日) 08:12:24 ID:??? (+0,-28,+0)
>結局XHRに頼ることになる

textareaにぶち込んでおく方法を忘れてた
233 : Name_Not - 2010/05/23(日) 11:11:28 ID:??? (+29,-1,-1)
>>230
例えば?
234 : Name_Not - 2010/05/23(日) 11:48:45 ID:??? (+71,+29,-5)
>>230
何を根拠にそう言ってんの?
235 : Name_Not - 2010/05/23(日) 12:23:08 ID:??? (+0,+29,-291)
>>227
レス感謝です

テキストファイル読み込むのって結構ややこしいんですね・・・と思ったのですが、ちょっと勘違いをされてる可能性があるので
補足しておきますが、テキストファイル自体はサーバー側にあるものを読み込みます。


作りたい物としては、ゲーム内でのアイテム生産時の必要材料の個数等を表示させるものです。

まず材料か製品か、次にそれぞれで何を作るか(武器、防具、消耗品等)、その後どの生産レベルの物を作るか、最後に品名を選択。(セレクトリスト自体は計4つ)
このリストを順に選んでいき、最終的に作る品名を選択した時点で下の適当な位置に>>225の下の図のような感じで必要な材料と個数を表示させるというものです。

処理としては、品名を選択したらテキストファイルを読み込み、1行取り出し、その行内に品名と同じ文字列があるかどうかを確認、
一致するものがあれば先頭からカンマ区切りで配列に読み込んでいき、配列の3つ目、5つ目、7つ目、11つ目、15つ目がある場合にその文字列を元に再度ファイル先頭から
1行ずつ読み込み確認していく。

これで最終的に原料(生産物で無い物)までを配列に格納され、後はそれを順に書き出す。


テキストファイル内の書式
アイテム名 , 材料1個数 , 材料1 , 材料2個数 , 材料2 , 材料3個数 , 材料3 ・・・ \n
236 : Name_Not - 2010/05/23(日) 12:25:07 ID:??? (+57,+29,-31)
この他に材料の個数自体を計算する処理とかがありますが、このあたりは省きます
237 : Name_Not - 2010/05/23(日) 12:44:35 ID:??? (+27,+0,-18)
失礼しました・・・テキストファイル自体がJavaScriptじゃ読み込めないんですね・・・。
238 : Name_Not - 2010/05/23(日) 12:56:17 ID:??? (+0,+0,+0)
JavaScriptでテキストファイルを読みこむ事はできるよ?
>>227をよく読んで調べるといい

あと、>>235の処理だと、連想配列にIDを入れて再帰的に処理した方が楽な気がする
>>225の例で行くと、item.textを適当に書き換え

{
"001":{"name":"木炭","item1":"木材","quantity1":1,"id1":"006"},
"002":{"name":"銅","item1":"木炭","quantity1":1,"id1":"001","item2":"銅鉱石","id2":"007","quantity2":2,},
"003":{"name":"青銅","item1":"錫","quantity1":1,"id1":"008","item2":"銅","id2":"009","quantity2":1},
"004":{"name":"鉄","item1":"木炭","quantity1":1,"id1":"001","item2":"鉄鉱石","id2":"007","quantity2":2},
"005":{"name":"短剣","item1":"鉄","quantity1":3,"id1":"004","item2":"木材","id2":"006","quantity2":1}
//木材・鉄鉱石・錫・銅がなかったので勝手に追加
"006":{"name":"木材"},
"007":{"name":"鉄鉱石"},
"008":{"name":"錫"},
"009":{"name":"銅"},
}

これを読ませて、itemの記述があったらidを元にこの連想配列を再帰的に読みに行くようにすればいいと思う
239 : Name_Not - 2010/05/23(日) 13:32:25 ID:??? (+0,-30,-74)
>>238
わざわざリレーショナルにしなくてもこれでいいんじゃない?
{
"木炭": { "木材": 1 }
"銅": { "木炭": 1, "銅鉱石":2 }
}
木材等の元素的な素材はデータにないようだから
それを逆に使って、undefinedが返ってきたら再起しない
241 : Name_Not - 2010/05/23(日) 15:19:55 ID:??? (+61,+29,-20)
多分ファイルそのものの中身と一致してないんだろう
とりあえずそのページのURL出してみなよ
242 : Name_Not - 2010/05/23(日) 18:08:31 ID:??? (-12,-29,-25)
>>213
見てるか分かんないけど一応。
successの中に書かないと結果が返って来る前に、$("#loading")がハイドされちゃうんじゃ?
243 : 240 - 2010/05/23(日) 18:32:27 ID:??? (+6,-29,-38)
>>241
どうも。
例としては、ttp://sites.google.com/site/gorogoronyan/Home/javascript
の上部分のTestCanvas001.htmlとかTestCanvas002.htmlです。
244 : Name_Not - 2010/05/23(日) 19:05:36 ID:??? (+9,-29,-20)
試してみて文字化けにはならないけど。
使ってるFirefoxのバージョンは?
245 : 240 - 2010/05/23(日) 19:14:38 ID:??? (-2,-29,-1)
>>244
3.6.3です。
246 : Name_Not - 2010/05/23(日) 20:23:20 ID:??? (+6,-30,-36)
>しかし、同じFirefoxでも[meta charset="Shift-JIS"/]にするとOKです。
なんだからShift-JISで保存してるだけでしょ。
utf-8で保存し直しなさいな。
247 : 244 - 2010/05/23(日) 20:27:12 ID:??? (-2,-29,-39)
>>245
Firefoxのバージョンはうちと同じだな。
文字コード変換をする変なテキストエディタとか介したりしてない?
248 : Name_Not - 2010/05/23(日) 21:01:38 ID:KwnuKgRY (+58,+29,-34)
今書いてる文字のエンコードがなんなのかわからなくなる
エディタは使いづらいね。
249 : Name_Not - 2010/05/23(日) 21:02:06 ID:??? (+65,+29,+1)
>>248
メモ帳のことですね。わかります。
250 : Name_Not - 2010/05/23(日) 21:22:05 ID:??? (+44,+21,-1)
メモ帳の自動改行は罠
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

類似してるかもしれないスレッド


トップメニューへ / →のくす牧場書庫について