複数のファイルを開いてファイル名を比較する<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />こんにちは、みんな、
特定のフォルダから複数のファイルを開く必要があります(特に、.csvファイルのみを開きたい)。私はまた、評価されているファイルのファイル名からいくつかの情報を抽出したいと思います。
現在私はこれを持っています...
カレントディレクトリを設定します( "C:\ Jan_24th \")。
files =ディレクトリ内のファイル( "C:\ Jan_24th");
(i = 1、i <= Nアイテム(ファイル)、i ++、
開いた(
ファイル 、
.........
1。これで、フォルダ内にあるすべてのファイルを開くことができます。しかし、問題は、.csvファイルだけでなく、自分のフォルダーにあるすべてのファイルを開くことができるということです。
2。現在のファイル名に基づいてジャーナルにテキストボックスを作成します。
たとえば、if(files == "Red_color.csv"、テキストボックス( "Red")<< Journal;);
if(ファイル == "Green_color.csv"、テキストボックス( "Green")<< Journal;);
if(ファイル == "Blue_color.csv"、テキストボックス( "Blue")<< Journal;);
これがうまくいかない… また、複数のforループを使用する代わりに、これを実行するための洗練された方法(#2)が必要です。ここで "substr"コマンドを使用できるかどうかわかりません。
ありがとうございます。
複数のファイルを開いてファイル名を比較する違いは、置換文字列 "\ 1"を指定すると、関数は最初の括弧内のものだけを返すという点です。これは "\ 1"がなくてもうまく動作しますが、現在の例では、単に "Red"ではなく "Red_"となります。
複数のファイルを開いてファイル名を比較するMSありがとう それは魅力のように働いた。
初心者向けの質問ですが、正規表現に\ 1を使用したのはなぜですか。なぜ(。+?)を再検索する必要があるのですか... それは大したことではありませんが、私が尋ねたいと思ったことです。
複数のファイルを開いてファイル名を比較するcsvファイルのファイル名が常に.csvで終わっていれば、#1にEnds With()を使用できると思います。#2の場合、正規表現はSubstrよりも汎用性があります。例:
デフォルトディレクトリを設定 ( "子:\ Jan_24th \" ) ;
ファイル = ディレクトリ内のファイル ( "子:\ Jan_24th \" ) ;
にとって ( 私 = 1 、私 <= N個のアイテム ( ファイル ) 、私 ++、
もし ( で終わる ( ファイル [ 私 ] 、 ".csv" ) 、
開いた ( ファイル [ 私 ] ) ;
テキストボックス ( 正規表現 ( ファイル [ 私 ] 、 "(。+?)_" 、 "\ 1" ) ) << ジャーナル ; //ファイル内の最初の "_"より前のすべてのテキスト私の名前がジャーナルに記録されています
)
) ;