1 ضمیمه
تبدیل اعداد فارسی به انگلیسی در زمان تکست باکس
با سلام.
(عنوان اشتباه شد و متاسفانه نمیشه ویرایش کرد)
دوستان من به یک مشکلی خوردم لطفا کمکم کنید.
تراکنش های بانکی ما خیلی بالاست و خیلیا که با کارتشون یا حسابشون واسمون پول واریز میکنن رو نمیشناسیم. واسه همین شماره کارت طرف رو از سایت بانک ملت کپی میکنیم و میبریم تو قسمت سحاب بانکداری اینترنتی تا ببینیم اسمش چیه. اما مشکلی که هست اینه که وقتی شماره حساب رو کپی میکنیم، چون اعداد فارسی بوده فارسی کپی میشه و تو قسمت سحاب اعداد فارسی رو قبول نمیکنه. واسه همین مجبوریم شماره کارت رو تایپ کنیم که وقتمون هدر میره. حالا من میخام یک برنامه ای بنویسم که دو تا تکست باکس داشته باشه که تو اولی شماره کارت که اعدادش فارسی هست رو کپی کنم و تو تکست باکس بعدی اعداد به شکل اینگلیسی رو بهم بده. اما هرکاری کردم نشد. اصلا نمیدونم چیکار کنم. ممنون میشم راهنماییم کنید.
ضمیمه 120650
نقل قول: تبدیل اعداد فارسی به انگلیسی در زمان تکست باکس
سلام
شما یه امتحان داشته باشین و فونت ادیت ها (Edit) رو تغییر بدین .
برای فونت فارسی از B.. مانند BTraffic
و برای فونت انگلیسی از Arial
چون احتمالا مشکل از یونیکد و قوانین زبان ها است (هنگام کپی کردن رشته ها از سایت این مشکل ایجاد میشه )
نقل قول: تبدیل اعداد فارسی به انگلیسی در زمان تکست باکس
نقل قول:
شما یه امتحان داشته باشین و فونت ادیت ها (Edit) رو تغییر بدین .
ربطی نداره.
برنامه CharMap رو باز کنید همه چیز دستتون میاد.
دوست عزیز، ببینید که کد یونیکد، یا اسکی اون دوتا چه فرقی با هم دارند، یه کانورتور کوچولو براش درست کن.
نقل قول: تبدیل اعداد فارسی به انگلیسی در زمان تکست باکس
ممنون از پاسختون.
خوب من یک حلقه تعریف میکنم که از اعداد فارسی رو از اول ببینه و کد اسکی و کد یونی کد مربوط به عدد انگلیسیش رو جایگزینش کنه.
چون فقط با 9 تا عدد کاردارم کد یونیکد انگلیسیش رو دستی وارد میکنم. فقط چطور میشه تو یک تکست باکس بجای عدد کد اسکی یا یونیکد رو وارد کرد که اون عدد رو نشون بده؟
نقل قول: تبدیل اعداد فارسی به انگلیسی در زمان تکست باکس
شما باید یک حلقه بگیرید، تک تک کاراکترهای ادیت اول رو بگیرید ببرید تو فرمت خودتون، و بریزید تو ادیت دوم.
یه چیزی شبیه این:
function ConvertChar(c: char): char;
begin
case ch of
#$0660: Result := #$0030;
.
.
end;
end;
.
.
for i := 1 to length(edit1.text) do
edit2.text := edit2.text + ConvertChar(edit1.text[i])
نقل قول: تبدیل اعداد فارسی به انگلیسی در زمان تکست باکس
نقل قول:
نوشته شده توسط
یوسف زالی
شما باید یک حلقه بگیرید، تک تک کاراکترهای ادیت اول رو بگیرید ببرید تو فرمت خودتون، و بریزید تو ادیت دوم.
یه چیزی شبیه این:
function ConvertChar(c: char): char;
begin
case ch of
#$0660: Result := #$0030;
.
.
end;
end;
.
.
for i := 1 to length(edit1.text) do
edit2.text := edit2.text + ConvertChar(edit1.text[i])
من هم همین مشکل دارم دوستان می شود فانگشن را کامل کنید
نقل قول: تبدیل اعداد فارسی به انگلیسی در زمان تکست باکس
با سلام
اگر از نسخه های 2009 به بعد استفاده می کنید می توانید از کدهای زیر استفاده کنید:
برای تبدیل اعداد فارسی به انگلیسی از تابع زیر
PersianDigitsToEnglish(AText: string): string;
const
EnglishDigits = '0123456789';
PersianDigits = '۰۱۲۳۴۵۶۷۸۹';
var
I: Integer;
TempString: string;
begin
TempString := AText;
for I := 1 to Length(EnglishDigits) do
TempString := StringReplace(TempString, PersianDigits[i], EnglishDigits[i],
[rfReplaceAll]);
Result := TempString;
end;
و برای تبدیل اعدا انگلیسی به فارسی از تابع زیر:
EnglishDigitsToPersian(AText: string): string;
const
EnglishDigits = '0123456789';
PersianDigits = '۰۱۲۳۴۵۶۷۸۹';
var
I: Integer;
TempString: string;
begin
TempString := AText;
for I := 1 to Length(EnglishDigits) do
TempString := StringReplace(TempString, EnglishDigits[i], PersianDigits[i],
[rfReplaceAll]);
Result := TempString;
end;
و برای استفاده از هر کجا می توانید یک رشته به آن ارسال نمایید و خروجی را به صورت رشته بگیرید. مانند زیر:
// برای تبدیل اعداد داخل یک ادیت به فارسی
Edit1.Text:=EnglishDigitsToPersian(Edit1.Text);
// برای تبدیل اعداد داخل یک ادیت به انگلیسی
Edit1.Text:=PersianDigitsToEnglish(Edit1.Text);
نکته: این کدها برای اعداد فارسی نوشته شده اند.
نکته2: اعداد عربی با اعداد فارسی تفاوت دارند و برای اینکه در کل همه ی اعداد خود را به انگلیسی تبدیل کنید. باید یک تابع هم برای تبدیل اعداد عربی بنویسید که دست خودتون رو می بوسه.
نقل قول: تبدیل اعداد فارسی به انگلیسی در زمان تکست باکس
با این تابع هر دو اعداد فارسی و عربی رو می تونی به اعداد انگلیسی تبدیل کنی
موفق باشید
Function N2N(InStr:string):string;
var i:Integer;
OutStr:string;
begin
for i := 1 to StrLen(Pchar(Trim(InStr))) do
OutStr := OutStr + IntToStr(Ord(InStr[i]) Mod 48);
Result := OutStr;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Edit2.Text := N2N(Edit1.Text);
end;
نقل قول: تبدیل اعداد فارسی به انگلیسی در زمان تکست باکس
این تابع برای حروف هم نتیجه عدد می ده، در حقیقت یک هشه، راه قشنگی برای اعداد می تونه باشه اما حواستون به باقی کاراکترها باشه!