Zurück   Flashforum > Flex und AIR > Flex programmieren

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 14-06-2011, 14:24   #1 (permalink)
Neuer User
 
Registriert seit: May 2011
Beiträge: 10
Änderungen in Textdatei neu einlesen

Hallo,

ich habe meine Anwendung auf meinem Localen Apache HTTP Server laufen.

auf dem Server liegt eine Textdatei (http://localhost/Messwerte/mess.txt)

die Anwendung läd bei dem creationCompletevent event des Datagrids die "mess.txt" ein und baut mir aus den für mich wichtigen Daten eine Arraycollection, die ich dann in dem DataGrid ausgebe.

Das klappt alles wunderbar

Code:
			[Bindable] private var initDG:ArrayCollection;
			
			
			///////////////////Textdatei einlesen und in Datagrid ausgeben\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
			
			protected function adg2_creationCompleteHandler(event:FlexEvent):void
			{	
				var PATH:String = "http://localhost/Messwerte/mess.txt";
				var urlRequest:URLRequest = new URLRequest(PATH);			
				var loader:URLLoader = new URLLoader;
				
				urlRequest.method = URLRequestMethod.POST;
				
				loader.dataFormat = URLLoaderDataFormat.TEXT; // default (Neben TEXT gibt es noch VARIABLES und BINARES)
				loader.addEventListener(Event.COMPLETE, completeHandler);
				loader.load(urlRequest);				
			}
			
			
			private function completeHandler(event:Event):void 
			{
				var csv:String = new String();
				csv = (event.target.data as String);
				var rows:Array = csv.split("\n");
				var messdaten:Array = new Array(rows.length);

				for(var i:Number=0; i<rows.length; i++)
				{
					messdaten[i] = rows[i].split("\t");
				}
				
				var tabellenlaenge:int = (messdaten.length - 1) / 5;
				var messdatentabelle:Array = new Array(tabellenlaenge);
				var trigger:int = new int();
				var counter:Number= new Number();
				counter = 0;	
				
				for(var j:Number=0; j<messdaten.length; j++)
				{
					
					trigger = parseInt(messdaten[j][1]);
					if (trigger == 1) 
					{
						messdatentabelle[counter] = new Array(messdaten[j][0], messdaten[j][3], messdaten[j][7], messdaten[j+1][7], messdaten[j+2][7], messdaten[j+3][7], messdaten[j+4][7], "WT_ID Scannen");											
						counter=counter+1;
					}
				}					
				
				initDG = new ArrayCollection(messdatentabelle);
				
			}
			//#######################################################################################\\

Zum eigentlichen Problem:

Die "mess.txt" wird von mir per Hand geändert. Zum Beispiel wird eine neue "mess.txt" erstellt und in den Ordner kopiert, somit wird die alte "mess.txt" überschrieben.

Jetzt habe ich mir einen Butten erstellt der beim Klicken eine neue Funktion aufruft, die Eigentlich alle Variablen löschen und die neuen Werte in meine Arraycollection (initDG) schreiben soll.


Code:
			protected function loadMessw_clickHandler(event:MouseEvent):void
			{
				initDG = new ArrayCollection();
				var PATH:String = "http://localhost/Messwerte/mess.txt";
				var urlRequest:URLRequest = new URLRequest(PATH);			
				var loader:URLLoader = new URLLoader;
				
				urlRequest.method = URLRequestMethod.POST;
				
				loader.dataFormat = URLLoaderDataFormat.TEXT; // default (Neben TEXT gibt es noch VARIABLES und BINARES)
				loader.addEventListener(Event.COMPLETE, completeHandler);
				loader.load(urlRequest);
			}
Das Problem ist jetzt, dass das Event die gleichen Daten übergibt wie beim ersten mal. Als hätte der Loader die txt nicht eingelesen. Ich kann sogar die "mess.txt" aus dem ordner löschen und es gibt keine Änderung. Als wenn nicht die Aktuelle Datei eingelesen wird sondern ein Abbild das beim generieren der Anwendung in den Speicher geladen wurde.

Wie Schaffe ich es denn jetzt das die "neue" Textdatei eingelesen wird?

Gruß
CyTrond
CyTrond ist offline   Mit Zitat antworten
Alt 14-06-2011, 17:19   #2 (permalink)
Neuer User
 
Registriert seit: Sep 2006
Beiträge: 670
Ich vermute jetzt einfach mal, dass es mit Textdateien so geht wie auch mit PHP-Dateien: hänge einfach an deinen Dateinamen einen Zeitstempel an.

PHP-Code:
var timestamp:Number = new Date().getTime();
...
suche.url "suche.php?time="+String(timestamp); 
Dann umgeht er den Cache.

MfG Monk
__________________
Flash CS5 / Flex 3 / Flashdevelop / FB 4.6
dr monk ist offline   Mit Zitat antworten
Alt 14-06-2011, 17:19   #3 (permalink)
Neuer User
 
Registriert seit: Oct 2008
Beiträge: 148
hi,
du musst das caching verhindern:

Code:
var PATH:String = "http://localhost/Messwerte/mess.txt?c=" + getTimer();
sytch ist offline   Mit Zitat antworten
Alt 14-06-2011, 18:05   #4 (permalink)
Neuer User
 
Registriert seit: May 2011
Beiträge: 10
Yeah danke!!!


das wars ... juhu es geht

voll gut! Tag gerettet!!
CyTrond 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
Textdatei einlesen? Intikam Flash Einsteiger 5 26-01-2007 10:06
Textdatei einlesen hds26846 Flash Einsteiger 7 10-01-2007 12:15
Text aus Textdatei einlesen ? MalcomX HTML und CSS 4 27-10-2003 16:52
Textdatei in Array einlesen... tOmek ActionScript 1 2 11-03-2003 15:44
Textdatei in array einlesen fagju ActionScript 1 1 21-12-2001 15:40


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:20 Uhr.

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


Copyright ©1999 – 2014 Marc Thiele