PDA

View Full Version : خواندن تک به تک اعداد از فایل



Mahdi_110
چهارشنبه 08 دی 1395, 00:41 صبح
با سلام
در اینجا یک فایل داریم که به صورت زیر مقداردهی شده است . (تعداد اعداد هر خط مشخص نیست و تا 1200 عدد در هر خط هم میرسد)

1,22,3,4,55
6,77,8,99,10

به جای کاراکتر (,) فاصله هست .
یعنی بدین صورت نوشته شده است :
55 4 3 22 1
10 99 8 77 6

به چه صورت میتوان تک تک اعداد را در هر خانه ارایه قرار داد ؟ لطفا با ذکر مثال با تشکر

قطعه کد من ، متاسفانه کل خط را به صورت string بر میگرداند و جدا نمیکند .



using (TextReader textReader = new StreamReader(@"File1.txt", System.Text.Encoding.Default) as TextReader)

{

string line;

while ((line = textReader.ReadLine()) != null)

{

int a;

var result = line.Split(System.Environment.NewLine.ToCharArray( ));

int b;

}

}




در برنامه C بدین صورت میتوان انجام داد :
نمونه کد :




FILE *myFile;
myFile = fopen("somenumbers.txt", "r");

int numberArray[16];
int i;

for (i = 0; i < 16; i++)
{
fscanf(myFile, "%d", &numberArray[i]);
}

csharpcollegian
چهارشنبه 08 دی 1395, 11:25 صبح
سلام
می تونید از کد زیر استفاده کنید :

List<string> numbers = new List<string>();
string[] lines = File.ReadAllLines(@"File.txt");
foreach (string line in lines)
{
string[] str = line.Split(' ');
foreach (string num in str)
numbers.Add(num);
}

البته اگر می خواید از روش خودتون استفاده کنید، با یه تغییر جزئی می تونید این کار رو انجام بدید :


List<string> numbers = new List<string>();
using (TextReader textReader = new StreamReader(@"File.txt", System.Text.Encoding.Default) as TextReader)
{
string line;
while ((line = textReader.ReadLine()) != null)
{
string[] nums = line.Split(' ');
foreach (string num in nums)
numbers.Add(num);
}
}

موفق باشید