テキストファイルを添付するこんにちは、みんな、
2800 個のテキスト ファイルを含むフォルダーがあります。 各テキスト ファイルには 3 つの列があります。 これらすべてのテキスト ファイルを 1 つの JMP ファイルに結合できるようにしたいのですが (行番号による結合を実行することで)、この JMP ファイルには 2800*3 列が含まれることになります。
備考:
すべてのファイルを結合する前に、各ファイルの列にタイトルを追加する必要があります。
タイトル列 1: x-ファイル名
タイトル列 2: y-ファイル名
タイトル列 3: ファイル名-値
「nomdufichier」は、開かれているファイルの名前に対応します。
次のコードを使用して、フォルダーの名前と、このフォルダー内で開くすべてのテキスト ファイルの名前を取得できます。
// Chemin du répertoire contenant les fichiers textes
chemin_du_repertoire = "chemin\du\dossier";
// Parcourir le répertoire et obtenir les noms des fichiers
noms_fichier = Files In Directory(chemin_du_repertoire, "\*.txt");
しかし、それでは残りの出発点がありません。
ご協力とご回答ありがとうございました!
自動化とスクリプト作成データアクセスRe: ジョインドル・フィシエのテキスト適切な開始点を取得するには、JMP を使用して 1 組のファイルに対して対話形式でアクションを実行し、拡張ログからスクリプトをコピーします。 その後、JMP が作成したスクリプトの変更を開始して、スクリプト内でより簡単に機能するようにすることができます。
Re: テキストファイルを添付するテキスト ファイルを正しい列タイトルを持つ JMP ファイルに変換できるスクリプトをなんとか書くことができました。
ただし、これらすべてのファイルをオンラインで結合するのはさらに困難です。
次のスクリプトで試してみました。
// Chemin du dossier contenant les fichiers texte
dossier = "......";
// Obtenir la liste de tous les fichiers dans le dossier
listeFichiers = Files In Directory(dossier);
// Créer une nouvelle table pour stocker les données combinées
table = New Table("Data Table");
// Boucle pour charger et combiner les fichiers
for (i = 1, i <= N Items(listeFichiers), i++,
fichierCourant = dossier || listeFichiers[i];
dt = Open(fichierCourant);
// Ajouter les colonnes du fichier courant à la table combinée
table << Join(With(dt),By Row Number);
// Fermer le fichier courant
Close(dt, NoSave);
);Re: ジョインドル・フィシエのテキスト結合では、常に新しいテーブルを作成する可能性が高いため、それも処理する必要があります。 代わりに「更新」を使用することもできます。
Names Default To Here(1);
dt = New Table("Untitled",
Add Rows(3),
Compress File When Saved(1),
New Column("A1", Numeric, "Continuous", Format("Best", 12), Set Values([1, 2, 3]))
);
dt1 = New Table("Untitled 2",
Add Rows(3),
Compress File When Saved(1),
New Column("B1", Numeric, "Continuous", Format("Best", 12), Set Values([4, 5, 6]))
);
wait(1);
dt << Update(
With(Data Table("Untitled 2")),
Replace Columns in Main Table(None)
);
Close(dt1, no save);
(これも最初に対話型オプションで試してください)
Re: テキストファイルを添付する以下のスクリプトはうまく機能しますが、2800 個のファイルを実行するには時間がかかります。
Names Default To Here( 1 );
// Début de la mesure du temps
start=tick seconds();
// Chemin du dossier contenant les fichiers texte
dossier = "...";
// Obtenir la liste de tous les fichiers dans le dossier
listeFichiers = Files In Directory(dossier);
For ( i = 1 , i <= 2862 , i++,
Names Default To Here( 1 );
if( i == 1,
fichierCourant = dossier || listeFichiers[1];
fichierCourant1 = dossier || listeFichiers[Num(i+1)];
dt = Open(fichierCourant);
dt1 = Open(fichierCourant1);
dt << Join(
With( dt1 ),
By Row Number,
Output Table( "Sans titre.jmp" )
);
Close(dt,NoSave);
Close(dt1,NoSave);
dt = current data table();
,
dt = current data table();
fichierCourant1 = dossier || listeFichiers[Num(i+1)];
dt1 = Open(fichierCourant1);
dt << Join(
With( dt1 ),
By Row Number,
Output Table( "Sans titre.jmp" )
);
Close(dt,NoSave);
Close(dt1,NoSave);
);
);
end=tick seconds();
runtime=end-start;
durée=runtime/60;
result=(Char("La durée est de ")||Char(durée,5) || " "||Char("minutes"));
show(result);ご協力いただきありがとうございます !