Zurück   Flashforum > Flash > Flash Fortgeschritten > Flash 8

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 28-12-2010, 08:18   #1 (permalink)
Neuer User
 
Benutzerbild von Herzenslicht
 
Registriert seit: Aug 2006
Ort: Hamburg
Beiträge: 736
txt in array

Hi Flasher,
kurze Frage:

Habe eine txt-Datei mit beispielsweise folgendem Inhalt :

PHP-Code:
"Montag","17:34"
"Montag"
,"18:49"
"Dienstag"
,"16:34"
"Dienstag"
,"16:54"
"Dienstag"
,"17:14"
"Mittwoch"
,"17:34" 
Nun möchte ich die Werte in ein Array einlesen, um diese später abzufragen
(Handelt es sich um den heutigen Wochentag ?...wenn ja welches ist die nächste folgende Uhrzeit und wielange dauert es bis zu dieser ?)

Frage : Wie fülle ich ein Array mit den Werten ?
Mein bisheriger Versuch:

PHP-Code:
var txt this.meinTXT;
var 
lo = new LoadVars();
var 
datensatz_1:Array = new Array();
var 
datensatz_2:Array = new Array();

var 
i:Number=0;

    
lo.onLoad = function(ok){
    
    if(
ok){
        
datensatz_1[i]=this.datum;
        
datensatz_2[i]=this.uhrzeit;
        
        
i+=1;
                
        
    }else{
        
trace("Fehler beim Laden !");
        
        
    }
    
}
lo.load("system.txt"lo"POST");  
stop(); 
Nun paßt der Inhalt der txt jdoch nicht mit dem Quelltext überein,
aber wie mache ich das am sinnvollsten ?
__________________
_________________
Liebe Grüße
Herzenslicht ist offline   Mit Zitat antworten
Alt 28-12-2010, 09:38   #2 (permalink)
experience++;
 
Benutzerbild von salazar
 
Registriert seit: Jul 2002
Ort: Düsseldorf
Beiträge: 11.347
hi,
zeig doch mal genau auf wie deine txt datei aussieht. im as code steht was von this.datum und this.uhrzeit aber beide finde ich nicht in deiner txt, bzw sind da ja keine benannten vars drinn.

cheers,
sal
__________________
Bitte keine Flashfragen an mich schicken. Dafür ist ja das Forum da! Das betrifft auch Profilnachrichten.
Chuck Norris hat den Flash Player für alle mobilen Betriebssysteme!
salazar ist offline   Mit Zitat antworten
Alt 28-12-2010, 10:08   #3 (permalink)
Neuer User
 
Benutzerbild von Herzenslicht
 
Registriert seit: Aug 2006
Ort: Hamburg
Beiträge: 736
Hi Sal,
schön mal wieder etwas von Dir zu "lesen".

Zitat :
PHP-Code:
Nun paßt der Inhalt der txt jdoch nicht mit dem Quelltext überein,
aber wie mache ich das am sinnvollsten 
Genau das ist ja die erste Frage.
Wenn ich es so wie in dem Beispiel der txt-Datei beschrieben anlege,
müßte ich ja die gesamte txt lesen, wobei ich nach jeder Zeile den Zähler hochsetze und im Array die Werte splitte (Wochentag, Uhrzeit).

Habe folgendes vor:
Möchte die Abfahrtszeiten eines Busses in der txt anlegen.
Anschl. möchte ich die verbleibende Zeit (std,min,sek) bis zur nächsten Abfahrt ermitteln und anzeigen.

Ich frage mich jedoch derzeit, wie ich dieses am sinnvolsten löse !?

Wie würdest Du dieses umsetzen ?
__________________
_________________
Liebe Grüße
Herzenslicht ist offline   Mit Zitat antworten
Alt 28-12-2010, 10:58   #4 (permalink)
experience++;
 
Benutzerbild von salazar
 
Registriert seit: Jul 2002
Ort: Düsseldorf
Beiträge: 11.347
bei dem ganzen schonmal an eine alternative zur txt datei gedacht? z.B. xml?

cheers,
sal
__________________
Bitte keine Flashfragen an mich schicken. Dafür ist ja das Forum da! Das betrifft auch Profilnachrichten.
Chuck Norris hat den Flash Player für alle mobilen Betriebssysteme!
salazar ist offline   Mit Zitat antworten
Alt 28-12-2010, 12:01   #5 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 6.162
Oder an AS3? Dort hast Du die Möglichkeit beliebig formatierte Textdateien zu laden.

In AS2 geht das meines Wissens nur als LoadVars oder XML und Deine .txt ist leider keins von beidem.

Wenn man am Aussehen der .txt und der AS-Version nichts ändern kann, würde ich Dir vorschlagen die .txt serverseitig mit php oder Perl in ein vernünftiges Format zu parsen.
__________________
Viele Grüße // Martin

Martin Kraft // Interaktionsdesign

Hilfreiche Websites:
// Hilfe zur Adobe Flash Plattform
// ActionScript 2 Referenz
// ActionScript 3 Referenz
// ActionScript 3 Arbeitshandbuch
// weitere Flash Ressourcen

Bitte keine Flashfragen per PM oder Profilnachricht! Dafür ist das Forum da!
Martin Kraft ist gerade online   Mit Zitat antworten
Alt 28-12-2010, 13:05   #6 (permalink)
about nothing
 
Benutzerbild von M!ch!
 
Registriert seit: Mar 2002
Ort: Borken
Beiträge: 724
Hi,

also ich würde die ganzen Informationen in eine XML-Datei packen und dann verarbeiten. Ist am komfortabelsten, denn dann kannst du deine Daten direkt in ein Array packen. Deine XML könnte so aussehen:
PHP-Code:
<?xml version="1.0" encoding="UTF-8"?>
<abfahrtszeiten>
    <tag name="Montag" stunde="17" minute="34" />
    <tag name="Montag" stunde="18" minute="49" />
    <tag name="Dienstag" stunde="16" minute="34" />
    <tag name="Dienstag" stunde="16" minute="54" />
    <tag name="Dienstag" stunde="17" minute="14" />
</abfahrtszeiten>
Und so könntest du das ganze (mit AS3) in ein Array packen:
PHP-Code:
// XML AUSLESEN UND INHALT IN ARRAYS PACKEN
var i:int;
var 
abfahrt:Array = new Array();
var 
xmlFile:String "deineXML.xml";

var 
xmlRequest:URLRequest = new URLRequest(xmlFile);
var 
xmlLoader:URLLoader = new URLLoader();
    
xmlLoader.load(xmlRequest);
    
xmlLoader.addEventListener(Event.COMPLETEhandleComplete);

// Funktion die ausgeführt wird, wenn XML erfolgreich geladen wurde
function handleComplete(event:Event):void {
    var 
xmlData:XML = new XML(event.target.data);
        
xmlData.ignoreWhite true;
    
    
// Anzahl der Einträge unter dem Tag "abfahrtszeiten"
    
var xmlLength:int xmlData.abfahrtszeiten.length();

    
// Alle Daten solange in ein Array-Object packen wie vorhanden sind
    
for (i=0i<xmlLengthi++) {
        
abfahrt[i] = {dayxmlData.tag[i].@namehourxmlData.tag[i].@stundeminutexmlData.tag[i].@minute};
    }
}

// Tag des Datensatzes 0 ausgeben
trace (abfahrt[0].day); 
Viele Grüße
__________________
M!ch! ist offline   Mit Zitat antworten
Alt 28-12-2010, 13:08   #7 (permalink)
Neuer User
 
Benutzerbild von Herzenslicht
 
Registriert seit: Aug 2006
Ort: Hamburg
Beiträge: 736
Hi Martin,
habe noch nicht mit as3 gearbeitet (Flash8).
wie könnte man es denn mit XML umsetzen ?
__________________
_________________
Liebe Grüße
Herzenslicht ist offline   Mit Zitat antworten
Alt 28-12-2010, 13:10   #8 (permalink)
Neuer User
 
Benutzerbild von Herzenslicht
 
Registriert seit: Aug 2006
Ort: Hamburg
Beiträge: 736
Hi M!ch!,
vielen Dank für das Bsp.
ist es so auch in AS2 möglich ?
__________________
_________________
Liebe Grüße
Herzenslicht ist offline   Mit Zitat antworten
Alt 28-12-2010, 13:12   #9 (permalink)
about nothing
 
Benutzerbild von M!ch!
 
Registriert seit: Mar 2002
Ort: Borken
Beiträge: 724
Hallo,

ja das ist in AS2 auch möglich, allerdings nicht mit dem AS-Code den ich gepostet habe. Der ist explizit für AS3.

Es gibt hier im Forum ein super Tutorial zur Verarbeitung von XML-Daten (AS2). Musst mal nach suchen. Wenn ich es finde melde ich mich nochmal.

Gruß
__________________
M!ch! ist offline   Mit Zitat antworten
Alt 28-12-2010, 13:21   #10 (permalink)
about nothing
 
Benutzerbild von M!ch!
 
Registriert seit: Mar 2002
Ort: Borken
Beiträge: 724
Ich habe es gefunden. Schau dir das hier mal an.

In AS2 könnte die Verarbeitung so aussehen (ohne es getestet zu haben!):
PHP-Code:
var abfahrt = [];
var 
xmlData = new XML();
xmlData.ignoreWhite=true;
xmlData.load("deineXML.xml");
xmlData.onLoad = function(success) {
    
//liest die anzahl der elemente aus!
    
xmlLength xmlData.firstChild.childNodes.length;
    
    
// Daten auslesen und in Array packen
    
for (i=0i<xmlLengthi++) {
            
abfahrt[i] = {dayxmlData.firstChild.childNodes[i].attributes.namehourxmlData.firstChild.childNodes[i].attributes.stundeminutexmlData.firstChild.childNodes[i].attributes.minute}; 
    }

Gruß
__________________
M!ch! ist offline   Mit Zitat antworten
Alt 28-12-2010, 16:57   #11 (permalink)
Neuer User
 
Benutzerbild von Herzenslicht
 
Registriert seit: Aug 2006
Ort: Hamburg
Beiträge: 736
Habe es jetzt mal so gemacht:
xml:
PHP-Code:
<?xml version="1.0" encoding="UTF-8"?>
<abfahrtszeiten>
    <tag name="Montag" stunde="17" minute="34" />
    <tag name="Montag" stunde="18" minute="49" />
    <tag name="Dienstag" stunde="16" minute="34" />
    <tag name="Dienstag" stunde="16" minute="54" />
    <tag name="Dienstag" stunde="17" minute="14" />
    <tag name="Mittwoch" stunde="16" minute="34" />
    <tag name="Mittwoch" stunde="16" minute="54" />
    <tag name="Mittwoch" stunde="17" minute="14" />
    <tag name="Donnerstag" stunde="16" minute="34" />
    <tag name="Donnerstag" stunde="16" minute="54" />
    <tag name="Donnerstag" stunde="17" minute="14" />
</abfahrtszeiten>
AS2:
PHP-Code:
stop();
var 
arr = ["Montag""Dienstag""Mittwoch""Donnerstag""Freitag""Samstag""Sonntag"];
var 
= new Date;//Wäre der 1. Juli, da Monate bei 0 anfangen
var minuten=d.getMinutes();
var 
stunden=d.getHours();

var 
XMLdaten = new XML();
XMLdaten.ignoreWhite=true;
XMLdaten.load("fahrplan.xml");
XMLdaten.onLoad = function(success) {//wenn die Datei geladen wird
    
XMLdaten_namen = [];
    
XMLdaten_stunde = [];
    
XMLdaten_minute = [];
                        
    if (
success) { //wenn das laden der File erfolgreich war
        
for (var i=0i<XMLdaten.firstChild.childNodes.lengthi++) {
            
XMLdaten_namen[i] = XMLdaten.firstChild.childNodes[i].attributes.name
            
XMLdaten_stunde[i] = XMLdaten.firstChild.childNodes[i].attributes.stunde
            
XMLdaten_minute[i] = XMLdaten.firstChild.childNodes[i].attributes.minute
            
            
_root.fz.text=XMLdaten_stunde[i]+':'+XMLdaten_minute[i]+':00';
            
        }
        
        
    }

Wie kann ich denn nun bestimmen,wann die nächste Abfahrtszeit ist ?
Ich kann nicht mehr klar denken. (Bin seit fast 52 Std wach)
__________________
_________________
Liebe Grüße
Herzenslicht ist offline   Mit Zitat antworten
Alt 28-12-2010, 18:36   #12 (permalink)
experience++;
 
Benutzerbild von salazar
 
Registriert seit: Jul 2002
Ort: Düsseldorf
Beiträge: 11.347
Zitat:
Zitat von Herzenslicht Beitrag anzeigen
Ich kann nicht mehr klar denken. (Bin seit fast 52 Std wach)
sorry, aber das ist schonmal sehr schlecht!?!
klar denken ist beim scripten meistens recht wichtig...

hat sich ja einiges getan hier! mit 'ner xml ist das doch direkt viel komfortabler?!

Zitat:
Zitat von Herzenslicht Beitrag anzeigen
Wie kann ich denn nun bestimmen,wann die nächste Abfahrtszeit ist ?
willste das jetzt mit dem aktuellen datum abgleichen oder was haste jetzt überhaupt genau vor?

cheers,
sal
__________________
Bitte keine Flashfragen an mich schicken. Dafür ist ja das Forum da! Das betrifft auch Profilnachrichten.
Chuck Norris hat den Flash Player für alle mobilen Betriebssysteme!
salazar ist offline   Mit Zitat antworten
Alt 28-12-2010, 18:41   #13 (permalink)
about nothing
 
Benutzerbild von M!ch!
 
Registriert seit: Mar 2002
Ort: Borken
Beiträge: 724
Nun, ich habe sowas noch nicht gemacht, aber ich würde schauen wie ich mir das aktuelle Datum mit Wochentag heranziehen kann und alles aufsplitten. Das dann mit den Array-Einträgen vergleichen und mit entsprechenden Abfragen herausfiltern.

Ich persönlich würde mir die Arrays auch anders befüllen, so wie ich es in meinem Beispiel gemacht habe. Dann hast du alle Einträge zusammen, also soll heißen unter abfahrt[0] findest du den Wochentag, Stunde und Minute (man kann auch noch mehr hinzufügen wenn du willst). Mit trace (abfahrt[0].day); lässt du dir den Tag des ersten Array-Eintrags ausgeben. Ist doch easy, oder nicht?

Und gönn' dir mal ne Auszeit. Meistens bringts was, wenn man ne Nacht drüber schläft und am nächsten Tag weiter macht. Das wird dir dein Körper auch danken.

Viele Grüße
__________________

Geändert von M!ch! (28-12-2010 um 18:42 Uhr)
M!ch! ist offline   Mit Zitat antworten
Alt 28-12-2010, 20:47   #14 (permalink)
about nothing
 
Benutzerbild von M!ch!
 
Registriert seit: Mar 2002
Ort: Borken
Beiträge: 724
Ich hatte lange Weile und habe mal was kleines auf die Beine gestellt. Dort wo das Ergebnis ausgetraced wird, musst du halt das einfügen was damit passieren soll. Z.B. in einem Textfeld ausgeben.

Außerdem müsste noch eingebaut werden, dass wenn am heutigen Tag keine Abfahrt mehr stattfindet, der erste Abfahrtstermin vom nächsten Tag genommen wird. Aber das Grundgerüst steht schonmal und sollte dir helfen.

PHP-Code:
var abfahrt = new Array();
var 
checkDay 0;
var 
xmlLength 0;

var 
date = new Date();
var 
dateName = ["""Montag""Dienstag""Mittwoch""Donnerstag""Freitag""Samstag""Sonntag"];
var 
_day date.getDay();
var 
_minute date.getMinutes();
var 
_hour date.getHours();

//trace (dateName[_day] + " - " + _hour + ":" + _minute); 

var xmlData = new XML();
    
xmlData.ignoreWhite true;
    
xmlData.load("deineXML.xml");

xmlData.onLoad = function(success) {
    
//liest die anzahl der elemente aus!
    
xmlLength xmlData.firstChild.childNodes.length;
    
    
// Daten auslesen und in Array packen
    
for (i=0i<xmlLengthi++) {
        
abfahrt[i] = {dayxmlData.firstChild.childNodes[i].attributes.namehourxmlData.firstChild.childNodes[i].attributes.stundeminutexmlData.firstChild.childNodes[i].attributes.minute}; 
    }
    
    for (
i=0i<xmlLengthi++) {
        
// prüfen ob der gespeicherte Tag der aktuelle ist
        
if (abfahrt[i].day == dateName[_day]) {
            
// prüfen ob die gespeicherte Stunde größer/gleich der aktuellen ist
            
if (abfahrt[i].hour >= _hour) {
                
// wenn größer/gleich prüfen ob sie gleich ist
                
if (abfahrt[i].hour == _hour) {
                    
// wenn sie gleich ist, prüfen ob die gespeicherte Minute größer/gleich der aktuellen ist
                    
if (abfahrt[i].minute >= _minute) {
                        
trace (abfahrt[i].day " - " abfahrt[i].hour ":" abfahrt[i].minute);
                    }
                } else {
                    
trace (abfahrt[i].day " - " abfahrt[i].hour ":" abfahrt[i].minute);
                }                
            }
        }
    }

Viele Grüße
__________________
M!ch! ist offline   Mit Zitat antworten
Alt 29-12-2010, 10:41   #15 (permalink)
Neuer User
 
Benutzerbild von Herzenslicht
 
Registriert seit: Aug 2006
Ort: Hamburg
Beiträge: 736
Hallöchen Ihr,
nachdem ich eine Mütze Schlaf genommen habe geht es nun also weiter.

@M!ch!
Vielen Dank für Deine Mühe.In Deinem Bsp. werden jedoch alle Abfahrtszeiten des Tages angezeigt.

@Sal
Zitat:
willste das jetzt mit dem aktuellen datum abgleichen oder was haste jetzt überhaupt genau vor?
Habe in xml-Datei alle Abfahrtszeiten einer Buslinie und möchte
den jeweils folgenden anzeigen.
Der Abgleich mit Wochentag bzw. Uhrzeit ist also klar.

Nachdem ich (siehe Anhang) die fla etwas umgeschrieben habe,
klappt es auch.
Allerdings muß ich die fla noch etwas Aufräumen.

Des Weiteren sollen 10 Buslinien gleichzeitig angezeigt werden (untereinander)

Ihr könnt euch ja mal das Durcheinander ansehen.

Die derzeitige xml-Datei:
PHP-Code:
<?xml version="1.0" encoding="UTF-8"?>
<abfahrtszeiten>
    <tag name="Montag" stunde="17" minute="34" />
    <tag name="Montag" stunde="18" minute="49" />
    <tag name="Dienstag" stunde="16" minute="34" />
    <tag name="Dienstag" stunde="16" minute="54" />
    <tag name="Dienstag" stunde="17" minute="14" />
    <tag name="Mittwoch" stunde="23" minute="57" />
    <tag name="Mittwoch" stunde="23" minute="58" />
    <tag name="Mittwoch" stunde="23" minute="59" />
    <tag name="Donnerstag" stunde="00" minute="01" />
    <tag name="Donnerstag" stunde="00" minute="02" />
    <tag name="Donnerstag" stunde="00" minute="03" />
</abfahrtszeiten>
Angehängte Dateien
Dateityp: fla fahrplan.fla (32,0 KB, 3x aufgerufen)
__________________
_________________
Liebe Grüße
Herzenslicht 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


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
External Array Class Global Array über alle views ? chrisz Flex programmieren 1 11-12-2010 15:51
for...in Array Eintrag in anderen Array suchen und ausgeben lassen dr monk ActionScript 3 10 12-10-2009 10:12
Array shift -> ändert array.length Wert nicht? jakez ActionScript 2 2 27-11-2008 11:27
jedes zweite array element in neuem array speichern dizzlwizzl Flash MX 2 24-01-2005 00:01
Array test2 soll den Inhalt von Array test1 bekommen! Artblue ActionScript 1 11 28-02-2003 13:22


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:05 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele