ファイル名の形式がすべて同じままである複数のデータ ファイルから特定の情報を読み取って抽出しようとしています。ファイルの形式は XXXXXX_XXXXXX_PCPDTB_ODT.datafile で、X はランダムな数字です。
最初の 6 桁で年、月、日を表し、最後の 6 つの X で時、分、秒を表すため、131005_091429_PCPDTB_ODT.datafile は 2013 年、10 月、5 日などとなり、_PCPDTB_ODT.datafile は常に存在します。
ファイルから目的のデータを正常に収集できます (特定のキーワードの後のすべての情報を抽出します。この場合は「#Footer」がキーワードです)。複数の変化する整数を持つファイル?
これが私の試みです(コーディングの経験がほとんどないのでひどいですが)が、4桁しか入力できず、それ以上は入力できないようです。XXXX_PCPDTB_ODT.datafile や 1304_PCPDTB_ODT.datafile などのファイルへのアクセスのみを許可します。
static void Main(string[] args)
{
var path = @"C:\Users\#####\Desktop\";
var ext = "_PCPDTB_ODT.datafile";
var range = Enumerable.Range(0,9);
var filePaths =
from i1 in range
from i2 in range
from i3 in range
from i4 in range
let file = path + i1 + i2 + i3 + i4 + ext
where File.Exists(file)
select File.ReadLines(file)
.SkipWhile(line => !line.Contains("#Footer"))
.Skip(1);
try
{
Console.WriteLine(String.Join(Environment.NewLine,filePaths.SelectMany(f => f)));
}
catch (Exception e)
{
Console.WriteLine("The file could not be read:");
Console.WriteLine(e.Message);
Console.Read();
}
}
i5、i6、i7などのi値を「_」で追加して、最後の6桁から最初の6桁のスペースを空けようとしましたが、i4を超える大きなi値を使用しても何も起こらないようです。
どんなアイデアでも大いに役立ちます。現時点では私の知識がほとんどないため、私のコーディングはゴミである可能性が高いことに注意してください。