Es gibt eine Möglichkeit, eine CSV-Datei zu importieren, bei der die Kopfzeilen nicht in der ersten Zeile beginnen. Sie geben einfach an, in welcher Zeile sich die Überschriften befinden.
Aber sagen wir mal, nachdem ich etwas mit der Datentabelle gemacht habe und sie wieder in das gleiche Format exportieren möchte, wie würde ich das machen? Nehmen wir an, ich habe den Text und er besteht nur aus einer Zeile.
Damit diese CSV in Excel so aussieht:

und in einem Notepad sieht es so aus:

Gibt es eine saubere Möglichkeit, dies rein in JSL zu tun?
So versuche ich es derzeit:
Den umgekehrten Vorgang zum Lesen einer CSV-Datei mache ich, indem ich CSV als Textdatei einlese ex , herausfinden, wo meine Kopfzeilen beginnen (sie können an verschiedenen Stellen beginnen) und die Zeilennummer als abrufen headersLocation , dann tun:
dtInt_ = Open(
Char To Blob( ex ),
Import Settings(
End Of Line( CRLF, CR, LF ),
End Of Field( Comma, 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( headersLocation ),
Data Starts( headersLocation + 1 ),
Lines To Read( "All" ),
Year Rule( "20xx" )
),
Invisible
);Mein aktueller Plan besteht also darin, meine verarbeitete Datentabelle irgendwie in ein BLOB umzuwandeln und dann einfach die entgegengesetzte Funktion „Blob To Char()“ auszuführen, ihr etwas Text voranzustellen und sie als CSV-Datei zu speichern.
Ich bin dabei, die Datentabelle in ein Blob umzuwandeln, damit ich sie in Char umwandeln kann (was wahrscheinlich nicht der richtige Weg ist) oder die Datentabelle irgendwie als Text in das CSV-Format umwandeln (nicht als Datei speichern) kann.
Alternativ kann ich es in einer CSV-Datei speichern, diese Datei dann als Text zurücklesen, eine Zeile voranstellen und sie erneut speichern (wobei die temporäre CSV-Datei gelöscht wird) – aber das scheint eine sehr umständliche Vorgehensweise zu sein.
Danke,
M.