我有一個以下格式的文本文件。Flash動作腳本:如何從文本文件中逐行提取變量?
39.570 -0.246 0.074 1.004 0
39.822 -0.344 0.094 0.887 0
40.083 -0.262 0.234 0.926 0
40.335 -0.457 0.160 0.813 0
40.578 -0.242 0.063 1.008 0
40.830 -0.285 0.172 0.988 0
41.082 -0.277 0.129 0.918 0
41.334 -0.332 0.145 0.996 0
41.586 -0.332 0.156 0.910 0
41.843 -0.340 0.160 0.941 0
42.092 -0.371 0.121 0.793 0
正如您所見,沒有區分字符可將數據分解爲變量。我需要做的是將每行分成5個單獨的變量
例如, 39.570 -0.246 0.074 1.004 0
將是
變種timestamp01 = 39.570
變種xaccel01 = -0.246
變種yaccel01 = 0.074
變種zaccel01 = 1.004
變種boardheat01 = 0
和t對每行重複一次帽子直到文檔結束,其中每個變量具有不同的值,這取決於它所在的行是哪一行。 timestamp02將涉及第二行的第一個數字,例如39.822
我不斷查找部分信息,但通常最終需要在文本文件中標識(& &以及類似的東西)。
這是我到目前爲止有:
import flash.filesystem.File;
import flash.filesystem.FileMode;
import flash.filesystem.FileStream;
movieClip_1.addEventListener(MouseEvent.CLICK, fl_OpenFile);
var fl_OpenFileStream:FileStream = new FileStream(); // FileStream used to read from the file
var fl_OpenFileChooser:File = File.documentsDirectory; // Default to the documents directory
fl_OpenFileChooser.addEventListener(Event.SELECT, fl_FileOpenSelected);
// Main function for opening a file
function fl_OpenFile(event:MouseEvent):void
{
fl_OpenFileChooser.browseForOpen("Select a text file.");
}
// Opens a FileStream object to read the file
function fl_FileOpenSelected(event:Event):void
{
fl_OpenFileChooser = event.target as File;
fl_OpenFileStream = new FileStream();
fl_OpenFileStream.addEventListener(Event.COMPLETE, fl_FileReadHandler);
fl_OpenFileStream.openAsync(fl_OpenFileChooser, FileMode.READ);
}
// Write data from the file to the Output Panel
function fl_FileReadHandler(event:Event):void
{
var fileData:String = fl_OpenFileStream.readMultiByte(fl_OpenFileStream.bytesAvailable, File.systemCharset);
// The data loaded from the file can now be used from the variable fileData.
//Split the string by a newline character
var arLines:Array = fileData.split("n");
var x;
for each (var singleLine:String in arLines)
{
//More code coming up
x = String(arLines).substr(0,6)
// This example code displays data from the file in the Output panel.
outputMod.text = String(x);
}
fl_OpenFileStream.close();
}
其中x是數據的第一行的第一位。你會注意到我的編程技巧很低,但只要我有一個出發點,我就可以快速學習。如果有人能夠解釋這個問題,或者甚至指出我會朝着正確的方向發展,那將是輝煌的。
你應該能夠分割空格字符上的每一行。 x = singleLine.split(''); var timestamp01 = x [0]; //等等 –