Ich habe eine große Menge an CSV-Dateien, die bereinigt werden müssen. Alle diese Dateien haben das gleiche Format, was die Aufgabe etwas vereinfacht. Meine anfängliche CSV-Datei hat das folgende Format:
| Artikelrezept: (001) 48pt | | | | | |
| Bühnenrezept: 48pt | | | | | |
| Chargen-ID: Prod1 | | | | | |
| Artikel-ID: 42 | | | | | |
| Datum/Uhrzeit: 1.5.2017 16:28:56 | | | | | |
| | | | | | |
| Punkt | Messung | Gewinnen | GFit | X | Y |
| 1 | 12.3 | 99,7 | 0,99 | 1 | 1 |
| 2 | 12.2 | 99,9 | 0,98 | 2 | 2 |
| 3 | 12.1 | 99,8 | 0,98 | 3 | 3 |
Die ersten 6 Reihen müssen aufgeräumt werden. Ich denke daran, die ersten 6 Zeilen in eine neue Tabelle zu bekommen und sie zu transponieren. Verbinden Sie nach der Traspose den Tisch mit dem anderen Abschnitt. Meine ideale JMP-Tabelle ist die folgende:
| Artikelrezept: | Bühnenrezept: | Batch-ID: | Artikel Identifikationsnummer: | Terminzeit: | Punkt | Messung | Gewinnen | GFit | X | Y |
| (001) 48pt | 48pt | Prod1 | 42 | 01.05.2017 16:28:56 | 1 | 12.3 | 99,7 | 0,99 | 1 | 1 |
| (001) 48pt | 48pt | Prod1 | 42 | 01.05.2017 16:28:56 | 2 | 12.2 | 99,9 | 0,98 | 2 | 2 |
| (001) 48pt | 48pt | Prod1 | 42 | 01.05.2017 16:28:56 | 3 | 12.1 | 99,8 | 0,98 | 3 | 3 |
| | | | | | | | | | | |
Ich versuche ein jsl-Skript, aber es geht im Moment über meine Fähigkeiten hinaus. Kann mir jemand eine Idee geben, wie ich das hinbekomme?
Vielen Dank
Hallo Craige,
Es funktioniert wie beworben.
Ich danke dir sehr
Schöne Beschreibung des Problems, und ich denke, Ihr Plan wird funktionieren. Sie können den Vorschauassistenten für den Textimport verwenden, um einen Teil der Arbeit zu erledigen. Indem Sie die Anzahl der Zeilen auf 5 begrenzen, können Sie die Kopfzeile erhalten, und indem Sie Felder mit fester Breite auswählen, können Sie zwei Spalten erhalten (oder vielleicht würden Leerzeichen im Plural noch besser für das Trennzeichen funktionieren). (Wenn mein Ausschneiden und Einfügen Ihrer Daten Tabulatoren und Leerzeichen durcheinander gebracht hat, müssen Sie möglicherweise die Spaltentrennzeichen ein wenig anpassen). Das Quellskript befindet sich in der Tabelle und Sie können eine Kopie davon für Ihr größeres Skript abrufen:
Open(
"C:\Users\v1\Desktop\x.txt",
columns(
Column( "c000001", Character, "Nominal" ),
Column( "c000002", Character, "Nominal" ),
Omitted Column( . )
),
Import Settings(
Fixed Column Widths( 13, 28, 98 ),
Strip Quotes( 0 ),
Use Apostrophe as Quotation Mark( 0 ),
Use Regional Settings( 0 ),
Scan Whole File( 1 ),
Treat empty columns as numeric( 0 ),
CompressNumericColumns( 0 ),
CompressCharacterColumns( 0 ),
CompressAllowListCheck( 0 ),
Labels( 0 ),
Column Names Start( 1 ),
Data Starts( 1 ),
Lines To Read( 5 ),
Year Rule( "20xx" )
)
)
First five linesFirst five linesDie ersten fünf Zeilen
Importieren Sie als Nächstes erneut, überspringen Sie die 5 Zeilen und holen Sie sich auch dieses Skript:
Open(
"C:\Users\v1\Desktop\x.txt",
columns(
Column( "Point", Numeric, "Continuous", Format( "Best", 12 ) ),
Column( "Measurement", Numeric, "Continuous", Format( "Best", 12 ) ),
Column( "Gain", Numeric, "Continuous", Format( "Best", 12 ) ),
Column( "GFit", Numeric, "Continuous", Format( "Best", 12 ) ),
Column( "X", Numeric, "Continuous", Format( "Best", 12 ) ),
Column( "Y", Numeric, "Continuous", Format( "Best", 12 ) )
),
Import Settings(
End Of Line( CRLF, CR, LF ),
End Of Field( Tab, CSV( 0 ) ),
Strip Quotes( 1 ),
Use Apostrophe as Quotation Mark( 0 ),
Use Regional Settings( 0 ),
Scan Whole File( 1 ),
Treat empty columns as numeric( 0 ),
CompressNumericColumns( 0 ),
CompressCharacterColumns( 0 ),
CompressAllowListCheck( 0 ),
Labels( 1 ),
Column Names Start( 7 ),
Data Starts( 8 ),
Lines To Read( "All" ),
Year Rule( "20xx" )
)
)
Data at bottom of fileData at bottom of fileDaten am Ende der Datei
Die gesamte obige JSL wurde vom Vorschauassistenten für den Textimport geschrieben und im Quellskript gespeichert, das an die Tabelle angehängt ist.
The Subset section has part of the answerThe Subset section has part of the answerDer Subset-Abschnitt enthält einen Teil der Antwort