04-03-2008, 08:59
|
|
|
חבר מתאריך: 31.10.07
הודעות: 28
|
|
עבודה בC# עם asci code
כתבתי פונקציה בVB שעובדת מצוין.
כשניסיתי לכתוב פונקציה זהה ב C# נתקלתי במספר בעיות
הפונקציה מקבלת מחרוזת ומחזירה אותה הפוך כאשר כל התווים בעברית מקבלים את הערך שלהם ב DOS . (בשביל הדפסה במדפסת Zebra)
מדוע ה Char ב VB מחזיר ערך שונה מה Char ב C# ?
מה אני צריך לעשות בשביל לפתור את הבעיה
תודה לעוזרים
VB
קוד:
Private Function ReplaceHB(sText As String) As String
Dim sTemp As String
Dim sChr As String
Dim num As Integer
Dim i As Integer
For i = Len(sText) To 1 Step -1
num = 0
sChr = Mid(sText, i, 1)
If sChr >= "א" And sChr <= "ת" Then
num = 96
End If
sTemp = sTemp & Chr$(Asc(sChr) - num)
Next i
Replace = sTemp
End Function
#C
קוד:
public static string RepleaceHB(string sText) {string sTemp = "";
char Ch;
int N, iCh;
for (int i = sText.Length - 1; i > 0; i--)
{
N = 0;
Ch = Convert.ToChar(sText.Substring(i, 1));
if (Ch >= Convert.ToChar("א") && Ch <= Convert.ToChar("ת"))
N = 96;
iCh = Convert.ToUInt16(Ch) - N;
sTemp += Convert.ToChar(iCh).ToString();
}
return sTemp;
}
|