PDA

View Full Version : رمزگذاری خط به خط



Arrowtic
جمعه 11 فروردین 1391, 00:34 صبح
سلام.کد زیر مشکلش چیه به نظرتون؟میخوام اینطور کار کنه:فایلی به نام input که در درایو D هست رو خط به خط خودش بخونه و وقتی یه خطو خوند اون رو رمزگذاری کنه(کلاس رمزگذاریو قبلا نوشتم Encd() رمز گذاری میکنه یه نوشته رو طبق الگویی که قبلا بهش دادم) و وقتی رمزگذاری کرد اونو توی فایل "coded" input که در همون درایو D میسازه ذخیره کنه.یعنی اگه فایل ورودی 2 خطه خروجیم 2 خط باشه که هر کدوم رمزگذاری شده خطی با همون شماره تو ورودی باشه.
برنامه زیر که با کمک خودم نوشتم(+ سرچ هایی در گوگل) کار نمیکنه و فقط خط آخر در فایل خروجی قرار داره:


namespace Readtext
{
public class Class2
{
public static void Encdtxt(string input)
{
string line;
string lone;
string path = @"D:\"+"coded "+input+".txt";
System.IO.StreamReader filename =new System.IO.StreamReader( "D:\\" + input + ".txt");
while ((line=filename.ReadLine()) != null)
{
using (StreamWriter sw = File.CreateText(path))
{
lone = Encodeclass.Class1.Encd(line);
sw.WriteLine(lone);
}
}
}
}
}

C#.net
جمعه 11 فروردین 1391, 10:04 صبح
یه نگاهی به کدتون انداختم، ظاهرا مشکل نداره اما
اگه از این کد استفاده کنید، ساده تر هست و درگیر کار با جزئیات نمی شید:

string[] lines = System.IO.File.ReadAllLines(@"YourPath\YourFile.txt");
حالا می تونید به راحتی با آرایه کار کنید و در آخر :


System.IO.File.WriteAllLines(@"YourPath\YourFile.txt , lines);

Arrowtic
جمعه 11 فروردین 1391, 13:19 عصر
ممنون!
من خیلی با آرایه ها بلد نیستم.اونوقت کد رمزگذاریمو کجاش بذارم؟درضمن من اون Class کدگذاریم روی String کار میکنه برا همین ارور میده نمیذاره آرایه رو رمزگذاری کنم!
ویرایش:یه ذره کد رو عوض کردم.بهتر شد فقط مشکل اینه که بازم فقط خط آخرو رمز میذاره!


namespace Readtext
{
public class Class2
{
public static void Encdtxt(string input)
{
string[] lines =System.IO.File.ReadAllLines(@"D:\d.txt");
foreach (string str in lines)
{
System.IO.File.WriteAllText(@"D:\d2.txt", Class1.Encd(str));
}
}
}
}

Arrowtic
جمعه 11 فروردین 1391, 14:12 عصر
مشکل حل شد!


namespace Readtext
{
public class Class2
{
public static void Encdtxt(string input)
{
string[] lines = System.IO.File.ReadAllLines(@"D:\d.txt");
using (StreamWriter sw = File.CreateText(@"D:\d2.txt"))
{
foreach (string str in lines)
{
sw.WriteLine(Class1.Encd(str));
}
}
}
}
}



فقط یه چی:خودم نفهمیدم چه کردم!یه لحظه یه فکر اومد تو ذهنم گفتم بذار این کدو هم اضافه کنم درست شد!یکی بهم چیزی که نوشتمو خط به خط توضیح میده؟!:لبخندساده: