テキストを含む大きなファイルがあり、それを小さなファイルに分割したいと考えています。
この例では、私がすること:
- たとえば、10 000行のテキストファイルを開きます
ここで package=300 の数を設定しました。つまり、これが小さなファイルの制限です。小さなファイルに 300 行が含まれたら、それを閉じて、書き込み用の新しいファイル (package2) などを開きます。
ステップ 2 と同じです。
あなたが既に知っている
これを行う必要がある私の関数のコードは次のとおりです。アイデア (私が知らないこと) は、新しいファイルを閉じて、300 の制限に達したときに新しいファイルを開く方法です (ここの場合)。
私が話していることをお見せしましょう:
int nr = 1;
package=textBox1.Text;//how many lines/file (small file)
string packnr = nr.ToString();
string filer=package+"Pack-"+packnr+"+_"+date2+".txt";//name of small file/s
int packtester = 0;
int package= 300;
StreamReader freader = new StreamReader("bigfile.txt");
StreamWriter pak = new StreamWriter(filer);
while ((line = freader.ReadLine()) != null)
{
if (packtester < package)
{
pak.WriteLine(line);//writing line to small file
packtester++;//increasing the lines of small file
}
else if (packtester == package)//in this example, checking if the lines
//written, got to 300
{
packtester = 0;
pak.Close();//closing the file
nr++;//nr++ -> just for file name to be Pack-2;
packnr = nr.ToString();
StreamWriter pak = new StreamWriter(package + "Pack-" + packnr + "+_" + date2 + ".txt");
}
}
次のエラーが表示されます。
宣言する前にローカル変数 'pak' を使用することはできません
'pak' という名前のローカル変数は、'pak' に別の意味を与えるため、このスコープでは宣言できません。'pak' は、'親または現在の' スコープで別のものを示すために既に使用されています。