• 締切済み

Flash 配列

Flashでcsvファイルを読み込みんでいます。 ▼csvファイル中身 a,あんぱん,100(改行) b,食パン,180(改行) c,カリーパン,120(改行) ▼AS --------------------------------------------------------- var abc = new LoadVars(); var itemlist:Array = new Array(); abc.onData = function(data) { itemlist = data.split("\r\n"); if (itemlist[itemlist.length-1].length == 0) { itemlist.pop(); } for (var i:Number = 0; i<itemlist.length; i++) { itemlist[i] = itemlist[i].split(","); } } abc.load("book1.csv"); --------------------------------------------------------- 上記のASで読み込んだcsvファイルのデータを解析しています。 trace(itemlist[1][1]) で「食パン」を取り出したり出来ています。 ここで、 あんぱん,食パン,カリーパン と、3つの要素を持つ配列を作りたいのですが、 どうすればよいのでしょうか? pushやsliceを使用したのですが無知な為うまくいきませんでした (T_T;)

みんなの回答

  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.1

検証していませんが > trace(itemlist[1][1]) > で「食パン」を取り出したり出来ています。 ということでしたら trace(itemlist[1][1]) を書かれた部分に var myArray:Array = new Array(); for (var i = 0; i<itemlist.length; i++) { myArray[i] = itemlist[i][1]; } trace(myArray); と書けばできませんか?

pory_bekk
質問者

補足

>BlurFiltanさん 回答頂いたスクリプトで出来ました。 ありがとうございました。 回答見てからでは結果論になりますが、 冷静に考えれば全然難しくない処理ですよね。 毎度毎度ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • FLASHでCSVを配列で読込後、読み込んだ配列を関数の外で使いたい。

    FLASHでCSVを配列で読込後、読み込んだ配列を関数の外で使いたい。 下記のスクリプトでCSVから配列を取り込みましたが、 関数の外で、「csvRows」変数の中身を見る方法が分かりません。。 var csvLoader = new LoadVars(); var theFileObj = new LoadVars(); var theFile = csvLoader.sendAndLoad("test.csv",theFileObj,GET ); var csvRows = new Array(); theFileObj.onData = function(src) { var theFileArray = src.split("\r\n").join("\n").split("\n"); var theFieldNames = theFileArray[0].split(","); var numberOfFields = theFieldNames.length; for(var j=0; j<numberOfFields; j++){ theFieldNames[j] = removeQuotes(theFieldNames[j]); } for(var i=0; i<theFileArray.length; i++){ var tempArray = theFileArray[i].split(","); csvRows.push(tempArray); } } function removeQuotes(theString){ if (theString.charAt(0) == '"' || theString.charAt(0) == "'") { return theString.substr(1, theString.length - 2); }else { return theString; } }

    • ベストアンサー
    • Flash
  • 不規則な配列を読む方法

    質問です。 以下のようなcsvファイルを読み込む際に a , b , c d , e , f , g h , i , j k , l , m , n , o <プログラム> var data1 = new Array(); var data2 = new Array(); var data3 = new Array(); var i = 0; do{ data1[i] = objTxt.ReadLine(); data2[i] = data1[i].split(","); data3[i] = Array(data2[i][0] ,data2[i][1] ,data2[i][2] ,data2[i][3] ,data2[i][4]); i = i + 1; }while(!objTxt.AtEndOfLine) といった具合に読んでしまうと、data2[0][4]など ないところのデータまで無理矢理よんでしまうことになります。 undefinedと表示され、使うぶんには困らないのですが、 うまく必要な場所までよむことって可能でしょうか? つまり上の例だとdata2[0][2]まで、次の行はdata2[1][3]まで といった具合です。 もし、方法がありましたら、どなたかお教え願います。

  • FLASHでの多元配列がうまくいかなです・・・。

    FLASHでの多元配列がうまくいかなです・・・。 現在40行で1行あたり5個の要素を持っているデータをFLASH上で使用するべく 悪戦苦闘しています。。。 データをロードしてから行毎にループをかける所から説明します。 for(var i=0; i<theFileArray.length; i++){ var tempArray = theFileArray[i].split(","); var temp_id = tempArray[1]; var temp_cid = tempArray[0]; csvdate[temp_id] = {id:tempArray[0],cid:tempArray[1],price:Number(tempArray[2]}; } trace(csvdate[1].price); 上記のように書いているのですが、カテゴリ毎にループを行えるようにしたいのです。 下記のように設定しなおしたのですが、「undefined」と表示されてしまいます。 for(var i=0; i<theFileArray.length; i++){ var tempArray = theFileArray[i].split(","); var temp_id = tempArray[1]; var temp_cid = tempArray[0]; csvdate[temp_cid][temp_id] = {id:tempArray[0],cid:tempArray[1],price:Number(tempArray[2]}; } trace(csvdate[2][1].price); もう1日中やって、どうしても分からなかったので、質問させていただきました。 どうぞ宜しくお願いします。

    • ベストアンサー
    • Flash
  • javascriptの2次元配列をソートの仕方

    function word_grouping(data) { var code = data; //先頭についている”code="を除去 code = code.replace("code=",""); var = code.split(","); var alpha =new Array(); alpha = ['A','B','C','D','E','F','G','H','I','J','K','L','M']; //2次元配列作成 var array = new Array(); for (i =0; i < alpha.length; i++) { array[i] = [' ','0']: } //グループ名を格納 for( i = 0; i <alpha.length; i++){ array[i][0] = alpha[i] //0番目の項目から順番にグループごとに分ける for( i = 0; i < sp.length; i++){ group = sp[i].substring(0.1); //どのグループに所属しているか調べる for( j = 0; j < alpha.length; j++){ //一致したグループの配列にカウント+1していく if(group == array[j][0]{ array[j][1]++; } } } メモ ・spにはグループのどこかに所属する20個のキーワードが入っていてそれをグループに振り分けている ・グループ分けには”A001”のAだけみて振り分けています したいこと ・arrayに入ったキーワードの数を降順で並び替えたい 分からない所 ・2次元配列をsortする仕方 こんな感じなんです わかる方回答お願いします。

  • 配列に格納した値が保存されない

    DB(Access)から取得した内容を配列に格納し、その内容を取り出すプログラムを 以下のように書いてみました。 whileループ内の alert("ループの中=" + data_array[i]); では配列の中の値が参照できるのですが whileループの外で for(var i=0;i < data_array.length; i++){ alert("ループの外:" + data_array[i]); } 配列の中身を表示させようとしたところdata_array.length の長さが0になっており 配列の中身が参照できない状態です。なにが原因かわかりますでしょうか。 <html> <script language="javascript" type="text/javascript"> function dbSearch() { var sql="select * from URL where flg=0"; var database = dbConnect(); var recordSet = database.Execute(sql); var data_array = new Array(); while (!recordSet.EOF){ data_array[i] = recordSet(0); alert("ループの中=" + data_array[i]); recordSet.MoveNext(); } alert("長さ=" + data_array.length); for(var i=0;i < data_array.length; i++){ alert("ループの外:" + data_array[i]); } database.Close(); return; } //データベースに接続 function dbConnect() { var database = new ActiveXObject("ADODB.Connection"); database.Open("Driver={Microsoft Access Driver (*.mdb)}; DBQ=c:\\test.mdb;"); return database; } </script> <body> <input type="button" value="DB接続" onclick="dbSearch()"> </body> </html>

  • C++/CLIでのDataGridViewの使い方

    以前に質問させていただいたのですが、要点を得ていなかったため再度質問させていただいきます。 VC++2005のC++/CLIでプログラムを作成しています。 CSVファイルから内容を読み込み、DataGridVeiwに表示させたいと考えています。 CSVファイルを配列に読み込んで、表示するところまでは出来ています。 以下CSVファイルを読み込んで、コンソール出力するプログラムの一部 int i; StreamReader^ sr=gcnew StreamReader("hoge.csv"); String^ text=sr->ReadToEnd(); array<String^>^ line=text->Split(gcnew array<String^> {"\r\n", "\r", "\n"},StringSplitOptions::RemoveEmptyEntries); array<array<String^>^>^ table= gcnew array<array<String^>^>(line->Length); for (i=0; i<line->Length; i++) { table[i]=line[i]->Split(','); } for each (array<String^>^ output in table){ for(i=0; i<output->Length; i++){ Console::Write(output[i]); //行出力 } } 初歩的なことだとは思うのですが・・・ コンソール出力部分をDataGridViewで出力表示させるには どのように書けばいいでしょうか。 よろしくお願いします。

  • 区切り文字を配列に格納する方法を教えて下さい。

    区切り文字を配列に格納する方法を教えて下さい。 $array[] = "abc,1981,1,12"; $array[] = "def,1982,2,18"; $array[] = "ghi,1991,4,12"; list($name[$i],$yy[$i],$mm[$i],$dd[$i]) = split("\,",$array[$i]); でループさせればそれぞれの変数に代入できますが、例えば $name["abc"]["yy"] = "1981"; $name["abc"]["mm"] = "1"; $name["abc"]["dd"] = "12"; のように分解するにはどうすれば良いでしょうか?

    • 締切済み
    • PHP
  • Javascriptで二次元配列で高次元の配列サイズを取得する方法を教えてください。

    Javascriptで二次元配列で高次元の配列サイズを取得する方法を教えてください。 var data = [ [1,2,3], [4,5,6], [7,8,9] ]; for (var i = 0; i < data.length; i++){ for (var j = 0; j < data[i].length; j++){ <--- ここで lengthのオブジェクトがNullというエラーになります。 alert(data[i][j]); } } よろしくお願いいたします。

  • jspでの二次元配列

    こんにちは。初めて質問させていただきます。よろしくお願いします。 現在javaで作ったプログラムをjspでも使えるようにしようと考えているのですが、 二次元配列がうまくjspで反映されず困っています。 jspに関してはほとんど無知で一から勉強している次第です。 そのためなるべく簡単に、と思い 以下のプログラムを、<% %>の間に入れるだけで動かせないかと思ったのですが エラーが出てしまいました。一次元の配列ならばできたのですが... ちなみに以下のプログラムはcsvファイルを読み込み、 多次元配列に格納していくというものです。 稚拙なプログラムで申し訳ありません... どなたかご教授いただければ幸いです。 import java.io.*; import java.util.StringTokenizer; import java.util.ArrayList; class Dog{  public static void main(String args[]) throws IOException{      String csv = "dognum.csv";      BufferedReader br = new BufferedReader(new FileReader(csv)); String[][] array = new String[100][]; int i = 0; while (true) { String line = br.readLine(); if(line==null) break; array[i] = line.split(","); i++; } for (i = 0; i < 101; i++) { for (int j = 0; j < array[i].length; j++) { System.out.println("["+i+"]["+j+"] = " + array[i][j]); } } } }

  • 漢字を配列に入れたいのですが

    漢字を配列に入れたいのですが、うまくいきません。 3列、60行のcsvファイルを読み込んで配列に入れようをしているのですが、1列目、2列目、3列目にある漢字をそれぞれ配列に入れようとしているのですが、出力するとうまくいかないんです。誰か教えてください。 #include <stdio.h> #include <stdlib.h> #include <string.h> #define MAXBUFFSIZE 256 #define MAXWORDS 15 int split(char* words[], int length, char* split_ch,char* str){ int i,j; for(i=0;i<length;i++){ if((words[i] = strtok(str,split_ch))==NULL)break; str=NULL; } return(i); } int main(int argc, char* argv[]){ if(argc !=2){ printf("入力エラー"); return(0); } FILE *fp; char *ll, *words[MAXWORDS], ch, buff[MAXBUFFSIZE]; int i,j; unsigned int data1[60], data2[60], data3[60]; if((fp =fopen(argv[1],"r"))==NULL){ printf("ファイルが開けません。\n"); } j=0; ll= fgets(buff,MAXBUFFSIZE,fp); while((ll= fgets(buff,MAXBUFFSIZE,fp)) != NULL){ split(words, MAXWORDS, ",",ll); data1[j] = words[0]; data2[j] = words[1]; data3[j] = words[2]; j++; } printf("%s\n%s\n%s\n", data1,data2,data3); }

専門家に質問してみよう