I get error :
Error 1 Inconsistent accessibility: field type 'AndroidApplication18.Farsi.struc[]' is less accessible than field 'AndroidApplication18.Farsi.arrStruc' C:\Users\N53SV\Documents\Visual Studio 2010\Projects\AndroidApplication18\Farsi.cs 61 33 AndroidApplication18
Error 2 Inconsistent accessibility: field type 'AndroidApplication18.Farsi.struc[]' is less accessible than field 'AndroidApplication18.Farsi.arrStrucWoosim' C:\Users\N53SV\Documents\Visual Studio 2010\Projects\AndroidApplication18\Farsi.cs 63 33 AndroidApplication18
and my source code is :
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Android.App;
using Android.Content;
using Android.OS;
using Android.Runtime;
using Android.Views;
using Android.Widget;
namespace AndroidApplication18
{
using Context = Android.Content.Context;
using Typeface = Android.Graphics.Typeface;
public sealed class Farsi
{
public static bool isFarsiConversionNeeded = true;
private static readonly string szLamAndAlef = char.ToString((char)0xfedf) + char.ToString((char)0xfe8e);
private static readonly string szLamStickAndAlef = char.ToString((char)0xfee0) + char.ToString((char)0xfe8e);
private static readonly string szLa = char.ToString((char)0xfefb);
private static readonly string szLaStick = char.ToString((char)0xfefc);
private static readonly string szLamAndAlefWoosim = char.ToString((char)0xe1) + char.ToString((char)0xbb);
private static readonly string szLamStickAndAlefWoosim = char.ToString((char)0x90) + char.ToString((char)0xbb);
private static readonly string szLaWoosim = char.ToString((char)0xd9);
private static readonly string szLaStickWoosim = char.ToString((char)0xd9);
private sealed class struc
{
public char character;
public char endGlyph;
public char iniGlyph;
public char midGlyph;
public char isoGlyph;
public struc(char Character, char EndGlyph, char IniGlyph, char MidGlyph, char IsoGlyph)
{
character = Character;
endGlyph = EndGlyph;
iniGlyph = IniGlyph;
midGlyph = MidGlyph;
isoGlyph = IsoGlyph;
}
}
static struc[] arrStruc = new struc[] { new struc((char)0x630, (char)0xfeac, (char)0xfeab, (char)0xfeac, (char)0xfeab), new struc((char)0x62f, (char)0xfeaa, (char)0xfea9, (char)0xfeaa, (char)0xfea9), new struc((char)0x62c, (char)0xfe9e, (char)0xfe9f, (char)0xfea0, (char)0xfe9d), new struc((char)0x62d, (char)0xfea2, (char)0xfea3, (char)0xfea4, (char)0xfea1), new struc((char)0x62e, (char)0xfea6, (char)0xfea7, (char)0xfea8, (char)0xfea5), new struc((char)0x647, (char)0xfeea, (char)0xfeeb, (char)0xfeec, (char)0xfee9), new struc((char)0x639, (char)0xfeca, (char)0xfecb, (char)0xfecc, (char)0xfec9), new struc((char)0x63a, (char)0xfece, (char)0xfecf, (char)0xfed0, (char)0xfecd), new struc((char)0x641, (char)0xfed2, (char)0xfed3, (char)0xfed4, (char)0xfed1), new struc((char)0x642, (char)0xfed6, (char)0xfed7, (char)0xfed8, (char)0xfed5), new struc((char)0x62b, (char)0xfe9a, (char)0xfe9b, (char)0xfe9c, (char)0xfe99), new struc((char)0x635, (char)0xfeba, (char)0xfebb, (char)0xfebc, (char)0xfeb9), new struc((char)0x636, (char)0xfebe, (char)0xfebf, (char)0xfec0, (char)0xfebd), new struc((char)0x637, (char)0xfec2, (char)0xfec3, (char)0xfec4, (char)0xfec1), new struc((char)0x643, (char)0xfeda, (char)0xfedb, (char)0xfedc, (char)0xfed9), new struc((char)0x645, (char)0xfee2, (char)0xfee3, (char)0xfee4, (char)0xfee1), new struc((char)0x646, (char)0xfee6, (char)0xfee7, (char)0xfee8, (char)0xfee5), new struc((char)0x62a, (char)0xfe96, (char)0xfe97, (char)0xfe98, (char)0xfe95), new struc((char)0x627, (char)0xfe8e, (char)0xfe8d, (char)0xfe8e, (char)0xfe8d), new struc((char)0x644, (char)0xfede, (char)0xfedf, (char)0xfee0, (char)0xfedd), new struc((char)0x628, (char)0xfe90, (char)0xfe91, (char)0xfe92, (char)0xfe8f), new struc((char)0x64a, (char)0xfef2, (char)0xfef3, (char)0xfef4, (char)0xfef1), new struc((char)0x633, (char)0xfeb2, (char)0xfeb3, (char)0xfeb4, (char)0xfeb1), new struc((char)0x634, (char)0xfeb6, (char)0xfeb7, (char)0xfeb8, (char)0xfeb5), new struc((char)0x638, (char)0xfec6, (char)0xfec7, (char)0xfec8, (char)0xfec5), new struc((char)0x632, (char)0xfeb0, (char)0xfeaf, (char)0xfeb0, (char)0xfeaf), new struc((char)0x648, (char)0xfeee, (char)0xfeed, (char)0xfeee, (char)0xfeed), new struc((char)0x629, (char)0xfe94, (char)0xfe93, (char)0xfe93, (char)0xfe93), new struc((char)0x649, (char)0xfef0, (char)0xfeef, (char)0xfef0, (char)0xfeef), new struc((char)0x631, (char)0xfeae, (char)0xfead, (char)0xfeae, (char)0xfead), new struc((char)0x624, (char)0xfe86, (char)0xfe85, (char)0xfe86, (char)0xfe85), new struc((char)0x621, (char)0xfe80, (char)0xfe80, (char)0xfe80, (char)0xfe80), new struc((char)0x626, (char)0xfe8a, (char)0xfe8b, (char)0xfe8c, (char)0xfe89), new struc((char)0x623, (char)0xfe84, (char)0xfe83, (char)0xfe84, (char)0xfe83), new struc((char)0x622, (char)0xfe82, (char)0xfe81, (char)0xfe82, (char)0xfe81), new struc((char)0x625, (char)0xfe88, (char)0xfe87, (char)0xfe88, (char)0xfe87), new struc((char)0x67e, (char)0xfb57, (char)0xfb58, (char)0xfb59, (char)0xfb56), new struc((char)0x686, (char)0xfb7b, (char)0xfb7c, (char)0xfb7d, (char)0xfb7a), new struc((char)0x698, (char)0xfb8b, (char)0xfb8a, (char)0xfb8b, (char)0xfb8a), new struc((char)0x6a9, (char)0xfb8f, (char)0xfb90, (char)0xfb91, (char)0xfb8e), new struc((char)0x6af, (char)0xfb93, (char)0xfb94, (char)0xfb95, (char)0xfb92), new struc((char)0x6cc, (char)0xfbfd, (char)0xfef3, (char)0xfef4, (char)0xfbfc), new struc((char)0x6c0, (char)0xfba5, (char)0xfba4, (char)0xfba5, (char)0xfba4) };
static struc[] arrStrucWoosim = new struc[] { new struc((char)0x630, (char)0xb5, (char)0x82, (char)0xb5, (char)0x82), new struc((char)0x62f, (char)0xb4, (char)0x81, (char)0xb4, (char)0x81), new struc((char)0x62c, (char)0x9b, (char)0xb1, (char)0xf9, (char)0xbf), new struc((char)0x62d, (char)0x9c, (char)0xb2, (char)0xfa, (char)0xc0), new struc((char)0x62e, (char)0x9d, (char)0xb3, (char)0xfe, (char)0xc1), new struc((char)0x647, (char)0xac, (char)0xe4, (char)0x93, (char)0xd5), new struc((char)0x639, (char)0xc9, (char)0xd3, (char)0x8b, (char)0xa4), new struc((char)0x63a, (char)0xca, (char)0xdd, (char)0x8c, (char)0xa5), new struc((char)0x641, (char)0xa6, (char)0xde, (char)0x8d, (char)0xcc), new struc((char)0x642, (char)0xa7, (char)0xdf, (char)0x8e, (char)0xce), new struc((char)0x62b, (char)0xbd, (char)0xaf, (char)0xea, (char)0x99), new struc((char)0x635, (char)0xc4, (char)0xc8, (char)0x87, (char)0xa0), new struc((char)0x636, (char)0xc5, (char)0xcb, (char)0x88, (char)0xa1), new struc((char)0x637, (char)0xc6, (char)0xcd, (char)0xcd, (char)0xa2), new struc((char)0x643, (char)0xcf, (char)0xe0, (char)0x8f, (char)0xa8), new struc((char)0x645, (char)0xd2, (char)0xe2, (char)0x91, (char)0xaa), new struc((char)0x646, (char)0xd4, (char)0xe3, (char)0x92, (char)0xab), new struc((char)0x62a, (char)0xbd, (char)0xaf, (char)0xea, (char)0x99), new struc((char)0x627, (char)0xbb, (char)0x80, (char)0xbb, (char)0x80), new struc((char)0x644, (char)0xd1, (char)0xe1, (char)0x90, (char)0xa9), new struc((char)0x628, (char)0xbc, (char)0xae, (char)0xe9, (char)0x98), new struc((char)0x64a, (char)0xdc, (char)0xe6, (char)0x95, (char)0xdc), new struc((char)0x633, (char)0xc2, (char)0xb8, (char)0xb8, (char)0x9e), new struc((char)0x634, (char)0xc3, (char)0xb9, (char)0xb9, (char)0x9f), new struc((char)0x638, (char)0xc7, (char)0xcd, (char)0xcd, (char)0xc7), new struc((char)0x632, (char)0xb7, (char)0xb7, (char)0xb7, (char)0xb7), new struc((char)0x648, (char)0x94, (char)0x94, (char)0x94, (char)0x94), new struc((char)0x629, (char)0xda, (char)0xda, (char)0xda, (char)0xda), new struc((char)0x649, (char)0xdc, (char)0xe6, (char)0x95, (char)0xdc), new struc((char)0x631, (char)0xb6, (char)0xb6, (char)0xb6, (char)0xb6), new struc((char)0x624, (char)0xe7, (char)0xe7, (char)0xe7, (char)0xe7), new struc((char)0x621, (char)0xba, (char)0xba, (char)0xba, (char)0xba), new struc((char)0x626, (char)0xd7, (char)0xe8, (char)0x97, (char)0xd7), new struc((char)0x623, (char)0x80, (char)0x80, (char)0x80, (char)0x80), new struc((char)0x622, (char)0x80, (char)0x80, (char)0x80, (char)0x80), new struc((char)0x625, (char)0x80, (char)0x80, (char)0x80, (char)0x80), new struc((char)0x67e, (char)0xbc, (char)0xae, (char)0xe9, (char)0x98), new struc((char)0x686, (char)0x9b, (char)0xb1, (char)0xf9, (char)0xbf), new struc((char)0x698, (char)0xb7, (char)0xb7, (char)0xb7, (char)0xb7), new struc((char)0x6a9, (char)0xcf, (char)0xe0, (char)0x8f, (char)0xa8), new struc((char)0x6af, (char)0xcf, (char)0xe0, (char)0x8f, (char)0xa8), new struc((char)0x6cc, (char)0xdc, (char)0xe6, (char)0x95, (char)0xdc), new struc((char)0x6c0, (char)0xac, (char)0xe4, (char)0x93, (char)0xd5) };
private const int N_DISTINCT_CHARACTERS = 43;
private static string ArabicReverse(string s)
{
try
{
string Out = "", rev;
s = MakeReverse(s);
char[] chs = new char[s.Length];
chs = s.ToCharArray();
int i = 0;
while (i < s.Length)
{
if ((chs[i] >= '0' && chs[i] <= '9'))
{
rev = "";
while (i < s.Length && ((chs[i] >= '0' && chs[i] <= '9') || chs[i] == '/'))
{
rev = rev + chs[i];
++i;
}
rev = MakeReverse(rev);
Out = Out + rev;
}
else
{
Out = Out + chs[i];
++i;
}
}
s = Out;
}
catch (Exception ex)
{
}
return s;
}
private static bool isFromTheSet1(char ch)
{
char[] theSet1 = new char[] { (char)0x62c, (char)0x62d, (char)0x62e, (char)0x647, (char)0x639, (char)0x63a, (char)0x641, (char)0x642, (char)0x62b, (char)0x635, (char)0x636, (char)0x637, (char)0x643, (char)0x645, (char)0x646, (char)0x62a, (char)0x644, (char)0x628, (char)0x64a, (char)0x633, (char)0x634, (char)0x638, (char)0x67e, (char)0x686, (char)0x6a9, (char)0x6af, (char)0x6cc, (char)0x626 };
int i = 0;
while (i < 28)
{
if (ch == theSet1[i])
{
return true;
}
++i;
}
return false;
}
private static bool isFromTheSet2(char ch)
{
char[] theSet2 = new char[] { (char)0x627, (char)0x623, (char)0x625, (char)0x622, (char)0x62f, (char)0x630, (char)0x631, (char)0x632, (char)0x648, (char)0x624, (char)0x629, (char)0x649, (char)0x698, (char)0x6c0 };
int i = 0;
while (i < 14)
{
if (ch == theSet2[i])
{
return true;
}
++i;
}
return false;
}
private static string MakeReverse(string text)
{
string Result = "";
char[] Ctext = new char[text.Length];
Ctext = text.ToCharArray();
for (int i = (text.Length) - 1; i >= 0; i--)
{
Result += Ctext[i];
}
return Result;
}
public static string ConvertBackToRealFarsi(string In)
{
if (!isFarsiConversionNeeded)
{
return In;
}
string strOut = "";
StringBuilder strBuilder = new StringBuilder("");
int i = 0;
int j = 0;
char[] chIn = new char[In.Length];
chIn = In.ToCharArray();
for (i = 0; i < In.Length; i++)
{
bool found = false;
for (j = 0; j < arrStruc.Length; j++)
{
if (chIn[i] == arrStruc[j].midGlyph || chIn[i] == arrStruc[j].iniGlyph || chIn[i] == arrStruc[j].endGlyph || chIn[i] == arrStruc[j].isoGlyph)
{
strBuilder.Append(arrStruc[j].character);
found = true;
break;
}
}
if (!found)
{
strBuilder.Append(chIn[i]);
}
}
strOut = strBuilder.ToString();
strOut = strOut.Replace(szLa, "لا");
strOut = strOut.Replace(szLaStick, "لا");
return strOut;
}
public static string ConvertForDrawOnBitmap(string In)
{
return ArabicReverse(Convert(In));
}
public static string Convert(string In)
{
if (!isFarsiConversionNeeded)
{
return In;
}
bool linkBefore, linkAfter;
string Out = In;
char[] chOut = new char[Out.Length];
chOut = Out.ToCharArray();
char[] chIn = new char[In.Length];
chIn = In.ToCharArray();
for (int i = 0; i < In.Length; i++)
{
char ch = chIn[i];
if ((ch >= (char)0x0621 && ch <= (char)0x064a) || (ch == (char)0x067e) || (ch == (char)0x0686) || (ch == (char)0x0698) || (ch == (char)0x06a9) || (ch == (char)0x06af) || (ch == (char)0x06cc) || (ch == (char)0x06c0))
{
int idx = 0;
while (idx < N_DISTINCT_CHARACTERS)
{
if (arrStruc[idx].character == chIn[i])
{
break;
}
++idx;
}
if (i == In.Length - 1)
{
linkAfter = false;
}
else
{
linkAfter = (isFromTheSet1(chIn[i + 1]) || isFromTheSet2(chIn[i + 1]));
}
if (i == 0)
{
linkBefore = false;
}
else
{
linkBefore = isFromTheSet1(chIn[i - 1]);
}
if (idx < N_DISTINCT_CHARACTERS)
{
if (linkBefore && linkAfter)
{
chOut[i] = arrStruc[idx].midGlyph;
}
if (linkBefore && !linkAfter)
{
chOut[i] = arrStruc[idx].endGlyph;
}
if (!linkBefore && linkAfter)
{
chOut[i] = arrStruc[idx].iniGlyph;
}
if (!linkBefore && !linkAfter)
{
chOut[i] = arrStruc[idx].isoGlyph;
}
}
else
{
chOut[i] = chIn[i];
}
}
else
{
chOut[i] = chIn[i];
}
}
Out = "";
for (int j = 0; j < chOut.Length; j++)
{
Out += chOut[j];
}
Out = Out.Replace((char)0x200c, ' ');
Out = Out.Replace(szLamAndAlef, szLa);
Out = Out.Replace(szLamStickAndAlef, szLaStick);
return reorderWords(Out);
}
private static string reorderWords(string strIn)
{
const int ST_RTL = 0;
const int ST_LTR = 1;
string strOut = "";
string prevWord = "";
int state = ST_RTL;
char[] arr = strIn.ToCharArray();
int i = 0;
while (i < arr.Length)
{
if (charIsLTR(arr[i]) && state != ST_LTR)
{
state = ST_LTR;
strOut = prevWord + strOut;
prevWord = "";
prevWord += arr[i];
}
else if (charIsRTL(arr[i]) && state != ST_RTL)
{
state = ST_RTL;
strOut = prevWord + strOut;
prevWord = "";
prevWord += arr[i];
}
else
{
prevWord += arr[i];
}
i++;
}
strOut = prevWord + strOut;
return strOut;
}
private static bool charIsLTR(char ch)
{
return (ch >= (char)65 & ch <= (char)122) | char.IsDigit(ch);
}
private static bool charIsRTL(char ch)
{
return ch >= (char)0x0621;
}
public static string ConvertForPrinterWoosim(string In)
{
try
{
bool linkBefore, linkAfter;
string Out = In;
char[] chOut = new char[Out.Length];
chOut = Out.ToCharArray();
char[] chIn = new char[In.Length];
chIn = In.ToCharArray();
for (int i = 0; i < In.Length; i++)
{
char ch = chIn[i];
if ((ch >= (char)0x0621 && ch <= (char)0x064a) || (ch == (char)0x067e) || (ch == (char)0x0686) || (ch == (char)0x0698) || (ch == (char)0x06a9) || (ch == (char)0x06af) || (ch == (char)0x06cc) || (ch == (char)0x06c0))
{
int idx = 0;
while (idx < N_DISTINCT_CHARACTERS)
{
if (arrStrucWoosim[idx].character == chIn[i])
{
break;
}
++idx;
}
if (i == In.Length - 1)
{
linkAfter = false;
}
else
{
linkAfter = (isFromTheSet1(chIn[i + 1]) || isFromTheSet2(chIn[i + 1]));
}
if (i == 0)
{
linkBefore = false;
}
else
{
linkBefore = isFromTheSet1(chIn[i - 1]);
}
if (idx < N_DISTINCT_CHARACTERS)
{
if (linkBefore && linkAfter)
{
chOut[i] = arrStrucWoosim[idx].midGlyph;
}
if (linkBefore && !linkAfter)
{
chOut[i] = arrStrucWoosim[idx].endGlyph;
}
if (!linkBefore && linkAfter)
{
chOut[i] = arrStrucWoosim[idx].iniGlyph;
}
if (!linkBefore && !linkAfter)
{
chOut[i] = arrStrucWoosim[idx].isoGlyph;
}
}
else
{
chOut[i] = chIn[i];
}
}
else
{
chOut[i] = chIn[i];
}
}
Out = "";
for (int j = 0; j < chOut.Length; j++)
{
Out += chOut[j];
}
Out = Out.Replace((char)0x200c, ' ');
Out = Out.Replace(szLamAndAlefWoosim, szLaWoosim);
Out = Out.Replace(szLamStickAndAlefWoosim, szLaStickWoosim);
return Out;
}
catch (Exception ex)
{
return "";
}
}
private static Typeface typeface;
public static Typeface GetFarsiFont(Context act)
{
if (typeface == null)
{
typeface = Typeface.CreateFromAsset(act.Assets, "mj_shafighshade.TTF");
}
return typeface;
}
}
}
modified 27-Feb-13 16:23pm.
|