Bu yüzden, Values.txt dosyasındaki değerleri (sayıları) okuyan ve bunları tamsayılar dizisine depolayan bir program yazmalıyım (başlangıçta numarayı bilmiyorum) dosyadaki değerlerin çok uzun olduğunu bilmiyorum). İlk önce dosyada dolaşıyorum ve diziye depolanacak değerlerin sayısını almak için sayaç değişkenini kullanın. Sonra sorun geliyor, değerleri yakalamak ve bunları dizi halinde depolamak için dosyanın başından nasıl başlayacağımı bilmiyorum. Çalıştığımda sonuç olarak 0 0 0 0 0 aldım. yerineBir dosyanın başlangıcından itibaren okumaya başlamak için StreamReader'ı yeniden başlatma
myReader.DiscardBufferedData();
myReader.BaseStream.Seek(0, SeekOrigin.Begin);
myReader.BaseStream.Position = 0;
I myReader.Close()
ve sonra myReader = new StreamReader("Values.txt)
kullanırsanız
, sonuç birileri bunun neden açıklayabilir misiniz, doğrudur ve ben bu kodu :)
string lineOfText = "";
int counter = 0;
int[] intArray;
StreamReader myReader = new StreamReader("Values.txt");
while(lineOfText != null)
{
lineOfText = myReader.ReadLine();
if(lineOfText != null)
{
counter++;
}
}
intArray = new int[counter];
myReader.DiscardBufferedData();
myReader.BaseStream.Seek(0, SeekOrigin.Begin);
myReader.BaseStream.Position = 0;
counter = 0;
while(lineOfText != null)
{
lineOfText = myReader.ReadLine();
if (lineOfText != null)
{
intArray[counter] = int.Parse(lineOfText);
}
counter++;
}
myReader.Close();
for (int j = 0; j < intArray.Length; j++)
{
Console.WriteLine(intArray[j]);
}
_If, sadece çağırarak bu biraz basitleştirmek olabilir (https://msdn.microsoft.com/en-us/library [ 'File.ReadAllLines()'.] /s2tte0y1(v=vs.110).aspx) – CodingGorilla