rahimi.mohamad24
شنبه 31 تیر 1391, 20:22 عصر
سلام
من می خوام یه فایل متنی را در حاتی باز کنم که هم بتونم اونو بخونم هم در اون بنویسم.
از کد زیر استفاده کردم ولی وقتی هر خط فایل را می خونم و مثلا میخوام 20 جرف آخر هر خط را پاک کنم، هر خط را 20 حرف آخرش را پاک می کند ولی تغییرات را در یک خط جدید در انتهای فایل درج میکند و خط مورد نظر بدون تغییر باقی می ماند.
مشکل از کجاست؟
if (File.Exists(fileName))
{
FileStream fileStream = new FileStream(fileName, FileMode.OpenOrCreate, FileAccess.ReadWrite);
StreamReader sr = new StreamReader(fileStream);
line = sr.ReadLine().Trim();
lengthLine = line.Length;
isInt = int.TryParse(line.Substring(22), out numberOFTransaction);
if (!isInt)
{
numberOFTransaction = -1;
}
isInt = Double.TryParse(line.Substring(12, 10), out amountTransactions);
if (!isInt)
{
amountTransactions = -1;
}
////Continue to read until you reach end of file
using (var streamWriter = new StreamWriter(fileStream,Encoding.Default,))
{
while ((line = sr.ReadLine().Trim()) != null)
{
lengthLine = line.Length;
if (lengthLine > 0)
{
streamWriter.WriteLine(line.Replace(line.Substring (lengthLine -20), "xxxxxxxxxxxxx"));
}
}
}
sr.Close();
}
من می خوام یه فایل متنی را در حاتی باز کنم که هم بتونم اونو بخونم هم در اون بنویسم.
از کد زیر استفاده کردم ولی وقتی هر خط فایل را می خونم و مثلا میخوام 20 جرف آخر هر خط را پاک کنم، هر خط را 20 حرف آخرش را پاک می کند ولی تغییرات را در یک خط جدید در انتهای فایل درج میکند و خط مورد نظر بدون تغییر باقی می ماند.
مشکل از کجاست؟
if (File.Exists(fileName))
{
FileStream fileStream = new FileStream(fileName, FileMode.OpenOrCreate, FileAccess.ReadWrite);
StreamReader sr = new StreamReader(fileStream);
line = sr.ReadLine().Trim();
lengthLine = line.Length;
isInt = int.TryParse(line.Substring(22), out numberOFTransaction);
if (!isInt)
{
numberOFTransaction = -1;
}
isInt = Double.TryParse(line.Substring(12, 10), out amountTransactions);
if (!isInt)
{
amountTransactions = -1;
}
////Continue to read until you reach end of file
using (var streamWriter = new StreamWriter(fileStream,Encoding.Default,))
{
while ((line = sr.ReadLine().Trim()) != null)
{
lengthLine = line.Length;
if (lengthLine > 0)
{
streamWriter.WriteLine(line.Replace(line.Substring (lengthLine -20), "xxxxxxxxxxxxx"));
}
}
}
sr.Close();
}