Verwenden Sie JSL, um falsch ausgerichtete tabellarische Daten aus der TXT-Datei abzurufenHallo,
Ich habe große Schwierigkeiten, die benötigten Daten aus einer Textdatei zu extrahieren. Daten sind eine TXT-Datei mit dem folgenden Format (angehängte Datei) und werden in einer großen Datei (100 MB) wiederholt:
Temperatur 0x100
TEILE-ID 0x5A6A111F
5626 0 PASS DC_VoLevels.4 GPIO_32 312 1,0000 V 3,1638 V 3,3000 V -4,0000 mA 0
Site Sort Behälter
------------------------------------
0 123 4
Ich muss eine Datentabelle mit 2 Spalten und Überschriften Part ID und Bin und den unten aufgeführten Daten erstellen:
PART ID Bin
0x5A6A111F 4
Ich kann die Teilekennung ziehen, aber mit der Bin und der Nummer unten habe ich Probleme. Jede Hilfe wäre sehr dankbar.
Jen
Betreff: Verwenden Sie JSL, um falsch ausgerichtete tabellarische Daten aus der TXT-Datei abzurufenDanke, das sieht gut aus, ich werde es versuchen.Betreff: Verwenden Sie JSL, um falsch ausgerichtete tabellarische Daten aus der TXT-Datei abzurufenDas Importieren von Daten ist schwierig, aber Sie können die Datei Zeile für Zeile lesen und nach Schlüsselwörtern suchen, um festzustellen, was mit den Daten zu tun ist. Siehe Beispiel unten für Details.
// load the file to be imported as a string
str = Load Text File( "$downloads\SampleFile.jsl" );
// create a table to add to
nt = New Table( "Example",
New Column( "PartID", "Character" ),
New Column( "Bin", "Numeric" )
);
// create a list with strings of each line of data
lines = Words( str, "\!N" );
// loop through each line of the file
for(i=1,i<=nitems(lines),i++,
if( // If the line starts with PART ID,
starts with(lines[i], "PART ID" ),
// it's the start of a new row
nt << add rows(1);
// grab the PartID at the end of the line
nt:PartID = Word( -1, lines[i] );
,
// if it starts with a bunch of dashes
starts with(lines[i], "---" ),
// the next line must contain column values
// so grab them and split them by spaces
colVals = Words( lines[i+1], " " );
// set the Bin column to the value in the third position
nt:Bin = colVals[3];
);
)
Dieses Skript erstellt die folgende Tabelle:
