PDA

View Full Version : streamReader(فوري)



Mainar
دوشنبه 21 دی 1388, 06:44 صبح
سلام
من با اين دستورات يه فايل text رو ميخونم و محتوياتش رو تو يه Listbox نمايش ميدم
اما نميدونم چرا خطوط فايل text رو يكي در ميون ميخونه و نمايش ميده!
لطفا راهنماييم كنيد چرا فايل رو اينطوري مي خونه؟!




string line="";
Stream s = new FileStream(@"c:\122.txt", FileMode.Open);

using (StreamReader sr = new StreamReader(s, Encoding.Default))
{
line = "";
while (sr.ReadLine() != null)
{
line = sr.ReadLine();
if (line != null)
{
}
}

mir555
دوشنبه 21 دی 1388, 07:06 صبح
خوب از این فرمان استفاده کن


string str=io.file.readalltext(Filename)

Mainar
دوشنبه 21 دی 1388, 07:50 صبح
محتواي فايل text داسي و با اين روش فرمتش قابل شناسايي نيست از طرفي من ميخوام خط به خط اطلاعاتم رو بخونم.

mir555
دوشنبه 21 دی 1388, 07:55 صبح
اگه می ترسی محتویات فایلت خراب بشه موقع خوند می تونی فایلو به صورت باینری بخونی اگه کل اطلاعاتو یک دفه بخونی تو یک متغییر بریزی خیلی سریعتر می تونی پردازش کنی تا زمانی که خط به خط بخونی


byte[] bt=io.file.readallbyte(filename)

Yasersadegh
دوشنبه 21 دی 1388, 09:47 صبح
سلام دوستان


سلام
من با این دستورات یه فایل text رو میخونم و محتویاتش رو تو یه Listbox نمایش میدم
اما نمیدونم چرا خطوط فایل text رو یکی در میون میخونه و نمایش میده!
لطفا راهنماییم کنید چرا فایل رو اینطوری می خونه؟!



string line="";
Stream s = newFileStream(@"c:\122.txt", FileMode.Open);

using (StreamReader sr = newStreamReader(s, Encoding.Default))
{
line = "";
while (sr.ReadLine() != null)
{
line = sr.ReadLine();
if (line != null)
{
}
}


دوست عزيز شما مشكلتون اينجاست كه يه بار تويه شرط حلقه يه خط رو مي خونيد( جايي هم ذخيره نمي كند) و يه بار هم داخل حلقه يه خط مي خونيد و ذخيره ميكنيد!:متعجب: خطهايي كه داخل شرط خونده ميشن چون ذخيره نمي شن از بين ميرن!!:لبخند:
شما بايد حلقتون رو به شكل زير تغيير بديد:متفکر:


line = sr.ReadLine();
while (line != null)
{
...
line = sr.ReadLine();
}


شما بايد دستور


line = sr.ReadLine();


يكبار در ابتدا خارج حلقه بنويسيد و يكبار هم در داخل و آخر حلقه بنويسيد!!

موفق باشيد:چشمک:

Mainar
دوشنبه 21 دی 1388, 11:25 صبح
متاسفانه درست نشد.
بازم بعضی از خطها رو جا میندازه:عصبانی++::گریه:

Yasersadegh
دوشنبه 21 دی 1388, 11:54 صبح
يعني بازم يكي در ميون جا ميندازه يا بعضي از خطها رو!!؟:متفکر:
احتمالا مشكل از فايل متنتون باشه!!:متفکر:
تو يه فايل متن معمولي كه چند تا خط اسم خودتون رو نوشتيد تست كنيد ببينيد بازم اين مشكل رو داره!!:متفکر:

mir555
دوشنبه 21 دی 1388, 13:09 عصر
string line="";
Stream s = newFileStream(@"c:\122.txt", FileMode.Open);

using (StreamReader sr = newStreamReader(s, Encoding.Default))
{
line = null;
string str=sr.ReadLine();
while (str != null)
{
line += str;
str=sr.ReadLine();
}
}



این کد جواب میده ولی چرا از اونیکی کد که نوشتم استفاده نمی کنی؟؟

ehsan2007
دوشنبه 21 دی 1388, 18:46 عصر
سلام
ببینید این کمکتون میکنه


public string CodeReturn(string C)
{
try
{
StreamReader _Sr = File.OpenText(@"c:\122.txt");
string _Input;
_Input = _Sr.ReadToEnd();
_Sr.Close();
return _Input;
}
catch (Exception) { return "//no file"; }

}

kazemproger
سه شنبه 22 دی 1388, 21:18 عصر
اینطوری بنویس:

StreamReader sr = new StreamReader(@"c:\122.txt");// kk
do // kk
}
.
.
line = sr.ReadLine(); // kk
.
.
{
while(line!=null);//kk

احتمالا درست میشه