PDA

View Full Version : codepageمربوط به برنامه بیمه چیست؟



pariisa
دوشنبه 22 مهر 1387, 11:32 صبح
سلام
من می خوام یک سری اطلاعات (هم فارسی ، هم اعداد ) را درون فایلی با پسوند bdf.
که توسط یک برنامه تحت داس ساخته شده بریزم(faxpro)
این برنامه مربوط به شرکت بیمه است .برای اینکار تابعی پیدا کردم که هر رشته ای را با داشتن
codepageفعلی و codepage که قرار به آن تبدیل بشه میگیرد و تبدیل لازم را انجام می دهد .
من برنامه مبدل بین دیتابیس ها را هم از همین قسمت دانلود کردم ولی به دردم نخورده.
الان سوالی که دارم اینه که من برای قسمت مقصد چه عددی را قرار بدم که در فایل مورد نظرم که با همان برنامه تحت داس باز میشه حروف فارسی قابل خواندن باشه .من این کار را از طریق یک برنامه تحت ویندوز (#C) دارم انجام می دم. codepageهای 864و720و... رابرای محیط داس امتحان کردم ولی فایده نداشته.
تابع اینه :

public static string CPConvert(int nCurrentCodePage, int nNewCodePage, string cExpression)
{
int i=0;
int nLength = cExpression.Length;

//Create a current and new array of bytes with the length of the string
byte[] aCurr = new byte[nLength];
byte[] aNew = new byte[nLength];

//Fill the current array from the string
for (i=0; i< cExpression.Length; i++)
{
aCurr[i] = Convert.ToByte(cExpression[i]);
}

//Get the encoding objects for the current and new Code Pages
Encoding CurCP = Encoding.GetEncoding(nCurrentCodePage);
Encoding NewCP = Encoding.GetEncoding(nNewCodePage);

//Fill the new array after converting current code page to new code page
aNew = Encoding.Convert(CurCP, NewCP, aCurr);

//We still have bytes so we convert each byte to a char and add it to a string builder
StringBuilder sb = new StringBuilder();
for (i=0; i< cExpression.Length; i++)
{
sb.Append(Convert.ToChar(aNew[i]));
}

//Return a string back
return sb.ToString();

}

مشکل من اینجاست:


string MyString = "äää";


String s = CPConvert(1256, ????, MyString);