Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 12-08-2005, 14:13   #1 (permalink)
Neuer User
 
Registriert seit: Sep 2003
Ort: göttingen
Beiträge: 80
aus excel.CSV mehrdimensionales array?

Moin!
Ich muss mehrere CSV aus Excel einlesen und hab grad die totale Denkblockade

5 Spalten, 135 Reihen in diesem besonderen Fall, aber ich brauchs allgemein.

das hier hab ich gefunden:
[as]// csv:
Schadstoff;ODP;GWP;AP;POCP
CFC-11;1;4000;;
CFC-12;1;8500;;

// Flash
loader = new LoadVars();
loader.onLoad = function(ok) {
if(ok) {
ActionScript:
  1. meinArray = this.split(";");
  2.         }
  3. };
  4. loader.load("mein.csv");

mit
ActionScript:
  1. meinArray = this.split("\\n");
kann ich ja vorher die einzelnen Reihen abspalten, aber wie arbeite ich jetzt mit dem array weiter, daß ich jede Reihe in weitere Elemente des arrays lege?

Ich möchte nachher mit meinArray[2][3] auf die dritte Zeile viertes Element zugreifen können.

Danke,
Basti
__________________
kein plan, aber das wird sich jetzt ja ändern

Geändert von huegenbegger (12-08-2005 um 14:14 Uhr)
huegenbegger ist offline   Mit Zitat antworten
Alt 12-08-2005, 15:57   #2 (permalink)
_//\\#//\\_
 
Benutzerbild von warrantmaster
 
Registriert seit: Jan 2003
Beiträge: 7.060
Zitat:
Zitat von huegenbegger
....aber wie arbeite ich jetzt mit dem array weiter, daß ich jede Reihe in weitere Elemente des arrays lege?

korrrrrrrekt!
jede zeile ein array im hauptarray.
warrantmaster ist offline   Mit Zitat antworten
Alt 12-08-2005, 16:02   #3 (permalink)
Neuer User
 
Registriert seit: Sep 2003
Ort: göttingen
Beiträge: 80
äh, ja das ist es was ich anstrebe, ich weiß nur nicht wie, deshalb meine Frage

aus irgend einem Grunde funktioniert das mit dem array auch nicht...
ActionScript:
  1. CSVarray1 = new Array();
  2. CSVloader = new LoadVars();
  3. CSVloader.onLoad = function(ok) {
  4.         if(ok) {
  5.             trace ("geladen");
  6.             CSVarray1 = this.split(";");
  7.             trace (CSVarray1[0]);
  8.         }
  9.         else {
  10.             trace("nix geladen");
  11.         }
  12. }
  13. CSVloader.load("Schadstofftabelle.csv");

das trace gibt dann
geladen
undefined
__________________
kein plan, aber das wird sich jetzt ja ändern
huegenbegger ist offline   Mit Zitat antworten
Alt 12-08-2005, 16:11   #4 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Pack mal ein trace(this) in den onLoad. Dann siehst du, warum das nicht geht...
ActionScript:
  1. CSVarray1 = unescape(this).split(";");
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 12-08-2005, 16:39   #5 (permalink)
Neuer User
 
Registriert seit: Sep 2003
Ort: göttingen
Beiträge: 80
Boah, wie geil, da wär ich im Leben nicht drauf gekommen

Danke Dir !!!

Aber meine Frage bleibt, wie kann ich jetzt aus dem Array mit den einzelnen Reihen ein array der Form

meinArray[reihe][spalte]

machen?

Gruß, Basti
__________________
kein plan, aber das wird sich jetzt ja ändern
huegenbegger ist offline   Mit Zitat antworten
Alt 12-08-2005, 16:51   #6 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Den Schrott, der da jetzt noch drinsteht, kriegst du jetzt aber selber da raus
ActionScript:
  1. CSVloader = new LoadVars();
  2. CSVloader.onLoad = function(ok) {
  3.     if (ok) {
  4.         CSVarray2 = unescape(this).split("\\n");
  5.         for (var x = 0; x<CSVarray2.length; x++) {
  6.             CSVarray2[x] = CSVarray2[x].split(";");
  7.         }
  8.         trace(CSVarray2);
  9.         trace(CSVarray2[0][0]);
  10.         trace(CSVarray2[1][2]);
  11.     } else {
  12.         trace("nix geladen");
  13.     }
  14. };
  15. CSVloader.load("Schadstofftabelle.csv");
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 12-08-2005, 17:14   #7 (permalink)
Neuer User
 
Registriert seit: Sep 2003
Ort: göttingen
Beiträge: 80
das klappt Danke schön.

was mich allerdings erstaunt hat, ist daß ich
for (i=0; i<(CSVarray.length-1); i++)
nehmen musste, sonst kam die letze Reihe sowas hier:
=&onLoad=[type Function]

kommt das durch das letzte \n im CSV?

ActionScript:
  1. stop();
  2. textoutstring = "Ausgabe Schadstofftabelle\\n";
  3. CSVarray = new Array();
  4. CSVloader = new LoadVars();
  5. CSVloader.onLoad = function(ok) {
  6.         if(ok) {
  7.             CSVarray = unescape(this).split("\\n");
  8.             for (i=0; i<(CSVarray.length-1); i++){
  9.                 CSVarray[i] = CSVarray[i].split(";");
  10.                 for (j=0; j < CSVarray[i].length; j++){
  11.                     if (CSVarray[i][j]== ""){
  12.                         CSVarray[i][j]= "0";
  13.                     }
  14.                     textoutstring = textoutstring + CSVarray[i][j] +" ";
  15.                 }
  16.             }
  17.         }
  18.         else {
  19.             trace("nix geladen");
  20.         }
  21. }
  22. CSVloader.load("Schadstofftabelle.csv");
__________________
kein plan, aber das wird sich jetzt ja ändern
huegenbegger ist offline   Mit Zitat antworten
Alt 12-08-2005, 17:20   #8 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Nee. Das kommt durch das "this". Normalerweise übergibt man Variablen ja so:
Code:
Textdatei z.B.:
&variable=hallo du! was geht?&
ActionScript:
  1. deineLoadVars.onLoad = function(ok) {
  2.         if(ok) {
  3. trace(this.variable)
  4. ...
  5. ...
Bei dir ja ohne Variablennamen:
ActionScript:
  1. CSVloader = new LoadVars();
  2. CSVloader.onLoad = function(ok) {
  3. };
  4. trace(CSVloader)
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 15:35 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele