こんばんは。
このカテゴリでよいのかわかりませんが、質問させてください。

"item","price"
"バッグ","30,000"
"シューズ","12,800"

こんな感じでカンマ入りの金額データや日本語を含むCSVを2次元の配列に読み込んで、CSSなどを付与してホームページを作りたいと考えています。

検索してサンプルやライブラリを探しているのですが、文字コードをいろいろ変えても日本語だと文字化けしてしまうものや、見つけてもコンマ付きデータに対応していなかったりします。近いものを見つけて改良しようにも、Javascriptやajax初心者なので、どこをいじるのが適切なのか判断がつかず四苦八苦しております。

一応、Flash ActionscriptやVBでのプログラミングは一通りできるのでJavascriptも本腰をいれればできるはずなのですが、時間が限られておりまして基礎が曖昧なままリファレンス本を片手に挑戦している次第です。

すみませんが、僕の希望に合うサンプルや紹介しているURLまたはライブラリをご存知でしたら教えて頂けないでしょうか。全く同じでなくても、多少は自分で工夫するつもりです。

何卒よろしくお願い致します。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

手前味噌ですが、日本語のデータもパース出来るCSVパーサを書いています。


http://vird2002.s8.xrea.com/javascript/rfc4180.h …
https://gist.github.com/606500

RFC4180 はCSVフォーマットを規定していますが、日本語には対応していません。
日本語を含むCSVフォーマットは公的な規定が存在しない(少なくとも私は知りません)ので、独自の解釈が必要だと思います。
http://www.ietf.org/rfc/rfc4180.txt
    • good
    • 0
この回答へのお礼

お礼遅くなりまして申し訳ございませんでした。
日本語対応というのは簡単にはいかないのですね。
教えて頂いた内容は僕には少し難しくて勉強が必要ですが、参考にさせて頂きます。

どうもありがとうございました。

お礼日時:2011/07/04 16:23

>>このカテゴリでよいのかわかりませんが、質問させてください。



 カテゴリー的には微妙ですね。javascriptではファイルの読み込みが出来ないので、サーバー側にリクエストして、サーバー側のファイルを読み込んでもらった結果をなんらかの型式(HTML、XML、JSON、CSV等:基本的にはテキストデータ)で返してもらい、処理します。それをAJAXと呼びます。


>>僕の希望に合うサンプルや紹介しているURLまたはライブラリをご存知でしたら教えて頂けないでしょうか。全く同じでなくても、多少は自分で工夫するつもりです。

納期がない(目的が学習)のなら、ライブラリを探すより、本腰を入れてファレンス本を片手に挑戦を続ける方がより幸せになれます。自分の書いたコードをここに的確に載せればアドバイスしてくれる人も多いでしょう。

※あと、IE限定ならデータバインド機能で<object>を使ってCSVがそのまま<table>になるやつも昔あったような...(今でもあるか)

こっちの方は「IE OBJECT TABLE CSV」をキーワードに探してくだされ

http://www.tohoho-web.com/wwwxx085.htm
とか
    • good
    • 0
この回答へのお礼

お礼遅くなりましてすみません。
最初からCSVやJSON形式でアップしたデータをHTMLにロードするのはAjaxとは言わないのですね。

>※あと、IE限定ならデータバインド機能で<object>を使ってCSVがそのまま<table>になるやつも昔あったような...(今でもあるか)

テーブルにロードするサンプルは僕も見つけたのですが、テーブルではなく変数にロードしてそのデータを自由に組み替えたりレイアウトしたりしたかったのでうまく利用できませんでした。

データバインド機能がとても便利そうすが、IE限定なのが残念です・・・。引き続き勉強してみます。

どうもありがとうございました。

お礼日時:2011/07/04 16:27

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QC言語で、他の関数で配列を書き換えられないようにしたい

下のCのプログラムでは、func関数は配列aの先頭要素へのポインタを返します。

main関数の側では配列aの中身を表示します。
しかし、main関数のfor文の中の★の部分をコメントアウトせずに入れると、この配列の中身が書き換わってしまいます。
 私はfunc関数以外では、この配列の中身をいじられたくないのです。
 なんとかfunc関数を工夫して作成して、func関数以外では、配列の中身が変わらないようにしたいのですが、どうすればよいでしょうか。
 
 とは言ったものの、多分できないだろうなあ、という気がします。
 できないならばできないでも仕方ないのですが、確信が持てないのです。

条件があります。
funcでは表示は行なわない。
配列aの中身を表示できるように、funcから呼び出し元へ、aのアドレスまたはaの先頭要素のアドレスがわかるような情報を返す。


#include <stdio.h>

char *func(int i)
{
static char a[]="AAAA";
a[i]='z';
return a;
}

int main(void)
{
int i;
for(i=0; i<4; i++)
{
char *p=func(i);
/* p[i]='X'; ★配列の中身を書き換えてしまう。 */
puts(p);
}
return 0;
}

下のCのプログラムでは、func関数は配列aの先頭要素へのポインタを返します。

main関数の側では配列aの中身を表示します。
しかし、main関数のfor文の中の★の部分をコメントアウトせずに入れると、この配列の中身が書き換わってしまいます。
 私はfunc関数以外では、この配列の中身をいじられたくないのです。
 なんとかfunc関数を工夫して作成して、func関数以外では、配列の中身が変わらないようにしたいのですが、どうすればよいでしょうか。
 
 とは言ったものの、多分できないだろうなあ、とい...続きを読む

Aベストアンサー

staticな変数を使う限りは無理な話です。

func内でnon-staticな領域にコピーしたものをreturnする。
仕様を明記し,funcを呼び出した先で別のバッファへコピーして使うよう徹底する。

などの対策をするしかないでしょう。
こういう仕様では,逆にfunc関数以外で使っていた文字列の内容が funcの呼び出しによって意図せず書き換えられてしまう,といった逆のパターンも往々にしてあります。要注意。

Q[Ajax]外部HTMLの特定範囲のみ読み込む

以前Ajaxで、外部HTMLの指定した範囲部分のみをLightboxのような感じで表示できるようなサンプルを見かけたような気がするのですが、いくら探しても出てきません。

外部HTMLを丸々読み込むタイプのものは、結構出てくるのですが、部分的に読み込むものはありません。Lightboxのような表示方法でなくとも、データだけ引っ張ってこれればよいのですが...

もしご存知の方いらっしゃいましたら教えてください。

Aベストアンサー

私も使わせてもらっていますが、Highslide.jsはいかがでしょうか。
非商用サイトなら自由に使えます。
http://highslide.com/

Barebones Samplesにサンプルがあります。

Qエクセルの配列関数の制限について

エクセルの配列関数の制限について


V列にX列・Y列・Z列・AA列・AB列・AC列・AE列・AG列・P列を参照した配列関数を
下のように入力しています。

{=SUM((Y$1:Y$500=F7)*(Z$1:Z$500=H7)*(AA$1:AA$500)*(P7="○"),(AB$1:AB$500=F7)
*(AC$1:AC$500=H7)*(AE$1:AE$500=H7)*(AG$1:AG$500)*(P7="×"))}

このY列・Z列・AA列・AB列・AC列・AE列・AG列は、ぞれぞれ200行くらいしか
文字が入力されていない場合には、配列関数の結果がうまく表示されました。


これらのセルの200行以降から300行・400行と項目を増やしていったところ、
配列関数の結果がうまく表示されないセルが出てきました。


これは、配列関数の参照するセルに制限があるということでしょうか?

Aベストアンサー

>SUMPRODUCT関数でも同様に0が表示されました。

F9キーで再計算しても「0」と表示されるなら、集計対象のセルがないということです。

>配列数式の結果で0が表示された件について、Y列・Z列の文字に半角と全角の括弧
「()」と「()」が混在していたことが原因と判明しました!

この意味が不明ですが(仮に混在しているとしても「0」と表示されることはない)、今回の「0」が表示される原因は解明できたということでしょうか?

>再計算されるまでに10分~15分かかり、メールやインターネットや他のエクセルなどが
使用できずに固まってしまいます。そのため、手動で再計算されるようにして何とか
使用しています。

再計算に1分以上かかることはほとんど考えられないのですが、いずれにしろ今回のようなデータ範囲の広い配列数式を多数入力するのは全く実用に堪えないと思いますので、数式部分を適宜「値」化して(古いデータを修正する場合は必要に応じて計算式を少しずつオートフィルする)、必要最小限の数式だけを残して作業することをお勧めします(VBAを使用しても計算に時間がかかる可能性が高いと思います)。

>SUMPRODUCT関数でも同様に0が表示されました。

F9キーで再計算しても「0」と表示されるなら、集計対象のセルがないということです。

>配列数式の結果で0が表示された件について、Y列・Z列の文字に半角と全角の括弧
「()」と「()」が混在していたことが原因と判明しました!

この意味が不明ですが(仮に混在しているとしても「0」と表示されることはない)、今回の「0」が表示される原因は解明できたということでしょうか?

>再計算されるまでに10分~15分かかり、メールやインターネットや他のエク...続きを読む

QIEでJSONが読み込めない

IEでJSONが読み込めないので、以下のサイトのソースをそのまま持ってきて動かしてみましたが、読み込めませんでした。

http://www.outcut.de/MooFlow/example-ajax.html

なので多分プログラム自体には問題がないのだと思うので、サーバの設定か何かかなと予想されるのですが、IEでJSONを読み込ませるために何かサーバの設定をしなければならないのでしょうか?

ご教授ください。よろしくお願いいたします。

Aベストアンサー

追加
こちらもご覧ください。

参考URL:http://d.hatena.ne.jp/khiker/20081026/javascript_json

Q関数へのポインタ渡しでの配列の初期化について

はじめまして、C言語の基本的な質問をさせてください。

C言語で、外部関数へポインタで引数を渡す場合に、
関数に渡されるのはアドレスですよね?

で、渡された関数側でそのポインタの配列の初期化を
するときにはアドレスだけの情報だと、要素数がいくつ
あるか分からず、領域の破壊をしてしまいそうな気が
するのですが?いかがでしょうか?

また、関数かなんかで、配列の要素数が分かる関数が
あったような気がするのですが、それもアドレスだけ
でわかるのでしょうか?

Aベストアンサー

疑問に思っていらっしゃる通りです。

渡された関数側では、要素数がいくつあるかわかりません。
初期化をするならば、ポインタと一緒に、要素数の情報も渡してやる必要があります。

配列の要素数がわかる関数はありません。
マクロ(プリプロセッサ)で、配列要素数を計算するのは可能ですが、
これは使用場所が限定されています。
配列を宣言したすぐ近くでないと役に立ちません。
渡された関数側では使えません。

C言語では、配列はその要素数とともに扱う必要があり、
そこをうっかりするとバグが発生する危険があります。

QAviutlにAVIファイルが読み込めません

Aviutlで編集をしていて
2分頃までは読み込めていたのですが

その後[対応していないフォーマット]と出て
読み込めませんでした

調べてプラグインが足りないと知りましたが
何が足りないのかわかりません
教えてください

Aベストアンサー

https://www.youtube.com/watch?v=99ZohaZ_Bb8&hd=1
すべての設定はお済ですか?

Q関数を使った配列計算

関数を用いて配列を使った行列の演算(入力された行列の行列式、転置行列、逆行列)をするプログラムを見やすくしたいのですが、配列を関数に渡すやり方がわかりません。


出来れば実際のプログラムで教えてもらいたいです。よろしくお願いします。

Aベストアンサー

C言語の場合ですが、

void test(int a[10])
{
a[0] = 10;
}

int main(void)
{
int a[10];

test(a);
}

↑このような記述で配列を関数に渡すことが出来ます。
関数test内で書き換えた配列はmainでも反映されてます。

QjQueryのloadメソッドは外部XMLは読み込めないのでしょうか?

jQueryのloadメソッドは外部XMLは読み込めないのでしょうか?

タグが<aaa></aaa>となっているところの文字を抽出したいのですが外部にあるXMLは読み込めないものでしょうか?
$("#my1").load( "http://server.com/hoge.xml .aaa" );

テキストファイルでタグを書くと読み込みが出来るのですが、なぜかXMLにするとうんともすんとも動きません

Aベストアンサー

QueryのloadメソッドはHTMLを読み込み、DOMに挿入するものです。
XMLの読み込みは$.ajax、$.get、$.postで行い、XMLのノード取得には、
セレクターにXpath表現が使用できます(最新のjQueryにする事!)

↓で、できませんか

$.get("http://server.com/hoge.xml",function(xmldata){
$("#my1").append($("//aaa",$(this)));
});

Q配列を書き換える関数を作成してみたいのですが、

配列を書き換える関数を作成してみたいのですが、

int a[10]={3,5,7,6,7,8,10,2,3,11};

上記のような配列があるとして、
0~9のうち特定の添字を指定して、a[]の中身を書き換える関数を作る場合は、
どのような方法があるのでしょうか?

Aベストアンサー

#4 訂正
>ネストを似やすくするため全角スペースを入力しています
ネストを見やすくするため全角スペースを入力しています

どうせなので
多分間違いだとは思いますが#3さんのは
>change(a, a, 2);
change(a, 1, 2); の打ち間違いだと思われます

更に思いつき#1さんのをちょっと書き方変えてみました
>void change(int a[],int i,int n){
>a[i]=n;
>}

コール側
change(a, 1, 2);    //a[1] に2を代入する
関数側
void change(int *addr, int pt, int newdata){
  *(addr+pt) = newdata;
}

もありかな(同じくコンパイルなどはしてません)

Qjqueryで読み込みが終わった画像から処理する

現在、下記のコードで画像を読み込んで処理をしているのですが、
画像の読み込みを待たずに、画像のリサイズ処理が実行されて画像が表示されない
現象に陥りました。

読み込みが終わった画像から処理する方法を
ご教授ください。

よろしくお願いいたします。


$.each(json.img,function(){
$('<img/>').attr('src',this).appendTo(images);
});
preview.append(images);
//この後にリサイズ処理

Aベストアンサー

[No.2]さんの回答にちょっと補足

IE は、たしかキャッシュされた画像への onload は、発火しなかったはずなので、 jQuery でそのあたりが対処されているか確認した方がいいかも?

jQuery で対処されてなかったら、
IE 画像 キャッシュ onload
あたりのキーワードで検索をかければ対処方法のかかれたページが見つかるよ。


人気Q&Aランキング

おすすめ情報