Füllen Sie nach dem Öffnen von .txt nachHallo alle,
Ich habe ein Programm, das flache TXT-Dateien exportiert, die der angehängten ähnlich sind. Ich möchte ein Skript schreiben, das die erste Spalte übernimmt, neue Werte erstellt und diese Werte auffüllt. Ich war bei der Implementierung von JSL, das ich auf der Website gefunden habe, nicht erfolgreich.
Mit dem JSL-Skript möchte ich "Column 1" in "Example Before" in drei neue Spalten unterteilen, entsprechende Instanzen in dieser Spalte benennen und sie bis zum nächsten gültigen Wert füllen. Wie in "Beispiel nach" zu sehen.
Beispiel vor

Beispiel nach:

Re: Füllen Sie nach dem Öffnen von .txtFrage: Die verschachtelte Struktur Ihres Textes erinnert an XML. Ist dies der ursprüngliche Text oder eine Version nach einiger Bearbeitung, z. B. das Entfernen von Tags?
Re: Füllen Sie nach dem Öffnen von .txtDies ist nur etwas, das ich schnell gemacht habe und die flachen Dateien nachahmt, mit denen ich arbeite. Wir haben keine Lizenzen für die Software (HAScientific, SLIM), die die TXT-Datei exportiert. Ich bin mir also eigentlich nicht sicher, wie die Daten nativ strukturiert sind. Ich denke, es basiert auf SQL, ich habe einfach keine Schlüssel in dieses Schloss. Während dies ein Problem ist, ist die Arbeit, mit der ich gekommen bin, ein JSL-Skript, das die Textdateien liest und bereinigt.
Re: Füllen Sie nach dem Öffnen von .txt @ danielrbiber Das angehängte Skript wurde mit Blick auf die geschachtelte XML-ähnliche Struktur geschrieben: Rufen Sie einen Wert ab, der bis zur Änderung unverändert bleibt. Erstellen Sie eine neue Zeile und schreiben Sie die Ergebnisse, wenn der Zeitpunkt geändert wird. Beachten Sie, dass hier möglicherweise nicht alle Instanzen Ihrer Dateien behandelt werden, dies aber für Ihre Beispieltextdatei genau das Richtige ist.
Sie müssen den Pfad der Textdatei ändern, um sie auszuführen.
Names Default to Here(1);
dt0 = Open(
"C:\Users\_xx\Downloads\Example Before.txt",
Table Contains Column Headers (1),
End of Line ( CRLF, CR, LF),
End of Field (comma, CSV(0)),
Column Names Start(1));
//create a new table
dt = New Table("Restruct",
New Column( "Column 1", Character),
New Column( "Meta Data", Character),
New Column( "Data", Numeric),
New Column( "Project", Character),
New Column( "Time Point", Character),
New Column( "Condition", Character) );
//Initialize values
md="";
dv=empty();
tp="";
pj="";
cd="";
crow = 0;
//new rows will be created for new time point
//this might not cover all files, but matches your sample text data.
for(i=1,i<=nrow(dt0),i++,
cval = dt0:Column 1[i];
If(cval =="", Continue());
if(starts with(cval,"PT"), pj=cval);
if(contains(cval,"/"), cd = cval);
if(contains(cval,"Initial") | contains(cval,"month"),
tp = cval;
if(trim(cval)=="Initial", cd = cval);
md = dt0:Meta Data[i];
dv = dt0:Data[i];
dt << add rows(1, At End);
crow++;
dt:Column 1[crow] = cval;
dt:Meta Data[crow] = md;
dt:Data[crow] = dv;
dt:Time Point[crow] = tp;
dt:Project[crow] = pj;
dt:Condition[crow] = cd;
); // end if
); // end for
Re: Füllen Sie nach dem Öffnen von .txtDies ist ein wesentlich anderer Weg, als ich an die Lösung des Problems gedacht habe. Ich denke es sollte mit ein bisschen Basteln klappen. Danke für die Hilfe.