PDA

View Full Version : تبدیل حروف به عدد



دنیای دلفی
پنج شنبه 17 فروردین 1385, 23:28 عصر
سوالات زیادی برای تبدیل عدد به حرف شده است و پاسخهای مختلفی وجود دارد ولی چگونه می توان عکس این کار را انجام داد یعنی حروف را به عدد تبدیل کرد اگر لطف کنید راهنمایی کنید ممنون می شوم .

دنیای دلفی
جمعه 18 فروردین 1385, 17:41 عصر
یعنی تا الان کسی به این مشکل برخورد نکرده لطف کنید در صورت وقت داشتن راهنمایی کنید

Mahmood_M
شنبه 19 فروردین 1385, 00:07 صبح
مثلا چه حروفی را می خواهید به عدد تبدیل کنید ؟
همه حرفها را که نمی توان به عدد تبدیل کرد !!! ( حروف و اعداد محدودیتی ندارند )
مثلا یکی از کارهایی که می شود با استفاده از این تبدیلات انجام داد روزهای هفته است
یعنی مثلا می شود شماره روزهای هفته را به دست آورد و بعد به وسیله به کارگیری آرایه ها آن را به حروفی که خودمان تعریف می کنیم تبدیل کرد ( مثلا روز دوم را برابر با یک شنبه قرار می دهیم و ... )
البته شاید هم این کار امکان داشته باشد ، به هر حال بقیه دوستانی که می دانند حتما به شما جواب خواهند داد ...
موفق باشید ...

cybercoder
شنبه 19 فروردین 1385, 11:41 صبح
اگه با استفاده از ساختارهای شرطی بشه اعداد رو به حروف تبدیل کرد. حتما بر عکسش هم میشه دیگه.
خوب اون روشی که عدد رو تبدیل به حروف می کنه رو برعکس کنید حل می شه دیگه.

موفق باشید

shobair
شنبه 19 فروردین 1385, 11:50 صبح
سلام
سوالتون واضح نیست. میخواین مقدار کد اسکی حروف رو در بیارین؟ یا میخواین طبق یک روال حروف رو به عدد تبدیل کنید؟

دنیای دلفی
شنبه 19 فروردین 1385, 13:19 عصر
مثلا یک میلیون و پانصد هزار و ششصدو هفتاد و نه را تبدیل کند به 1500679

دنیای دلفی
شنبه 19 فروردین 1385, 13:25 عصر
من از کد زیر برای تبدیل عدد به متن استفاده می کنم ولی عکسش را چیکار کنم

unit Curr2Str;
interface
function Add2Harf(i:int64):string;
implementation
function Add2Harf(i:int64):string;
const v=' و ';
var
ok:boolean;
{___________________________________}
function yekan(y:byte):string;
begin
case y of
0:result:='';
1:result:='یک';
2:result:='دو';
3:result:='سه';
4:result:='چهار';
5:result:='پنج';
6:result:='شش';
7:result:='هفت';
8:result:='هشت';
9:result:='نه';
enD;
if result=''then ok:=false else ok:=true;
end;
{___________________________________}
function dahgan(y:byte):string;
begin
case y of
0:result:='';
1:result:='ده';
2:result:='بیست';
3:result:='سی';
4:result:='چهل';
5:result:='پنجاه';
6:result:='شصت';
7:result:='هفتاد';
8:result:='هشتاد';
9:result:='نود';
enD;
if result=''then ok:=false else ok:=true;
end;
{___________________________________}
function sadgan(y:byte):string;
begin
case y of
0:result:='';
1:result:='یکصد';
2:result:='دویست';
3:result:='سیصد';
4:result:='چهارصد';
5:result:='پانصد';
6:result:='ششصد';
7:result:='هفتصد';
8:result:='هشتصد';
9:result:='نهصد';
enD;
if result=''then ok:=false else ok:=true;
end;
{___________________________________}
function dah(y:byte):string;
begin
case y of
0:result:='';
10:result:='ده';
11:result:='یازده';
12:result:='دوازده';
13:result:='سیزده';
14:result:='چهارده';
15:result:='پانزده';
16:result:='شانزده';
17:result:='هفده';
18:result:='هجده';
19:result:='نوزده';
enD;
if result=''then ok:=false else ok:=true;
end;
{___________________________________}
function seragham(si:smallint):string;
begin
result:='';
result:=sadgan(si div 100);
if ok then result:=result+v;
if((si mod 100)div 10)<>1 then begin
result:=result+dahgan((si mod 100)div 10);
if ok then result:=result+v;
result:=result+yekan(si mod 10);
if not ok then result:=copy(result,1,length(result)-3);
End
else begin
result:=result+dah(si mod 100);
end;
if result='' then ok:=false else ok:=true;
end;
{___________________________________}
const
tr=' تریلیون';
mr=' میلیارد';
ml=' میلیون';
hz=' هزار';
begin
ok:=false;
result:=seragham(i div 1000000000000);
if ok then result:=result+tr+v;
result:=result+seragham((i mod 1000000000000)div 1000000000);
if ok then result:=result+mr+v;
result:=result+seragham((i mod 1000000000)div 1000000);
if ok then result:=result+ml+v;
result:=result+seragham((i mod 1000000)div 1000);
if ok then result:=result+hz+v;
result:=result+seragham(i mod 1000);
if not ok then result:=copy(result,1,length(result)-3);
if i=0 then result:='صفر';
end;




end.

دنیای دلفی
یک شنبه 20 فروردین 1385, 21:34 عصر
بابا دمتون گرم یکی یک حالی بده

mohamadmjk
چهارشنبه 23 فروردین 1385, 20:12 عصر
خوب معلومه که تبدیل عدد به حرف آسون هست چون هر کاراکتر به تنهایی ارزش داره ولی در مورد حروف اینطور نیست چون مثلا ده و پنج و هزار مرتبه رو مثل 10 و 5 و 1000 مشخص نمی کنند چون تعداد حروف منطقی نیست فکر کنم با شرط های مختلف بتونی این کار رو بکنی پایه کارت را 'و' , فاصله قرار بده مثلا بگو اگر به 'و' رسیدی اونوقت ...
شرمنده چیز بهتری به نظرم نمی رسه.

MH2538
پنج شنبه 24 فروردین 1385, 12:00 عصر
سلام دوست عزیز
یه الگوریتم پیشنهاد می دم اگر خواستی می تونیم باهم روش کار کنیم:(تو بخش OenSource)

1 - ریختن دهگان - هزارگان - ده هزار گان و ... در آرایه 2 بعدی با حفظ ارزش :
مثلا 10هزار و 20 هزار پشت سر هم ولی از نظر ارزشی در یک ردیف
2- پیدا کردن اعداد به حروف از رشته :
مثلاً در رشته ده هزار و صد و بیست و شش
اول بدنبال خانواده صدهزارگان ها و سپس ده هزار گان و ... می گردیم و در آرایه ذخیره می کنیم
سپس یه مرحله از جستجو کم می کنیم یعنی دیگه دنبال صدهزارگان نمی گردیم و از ده هزارگان شروع می کنیم وهمینطور تا به عدد 1 برسیم
به ترتیب خانه هاب آرایه حاصله رو با آرایه اول مقایسه کرده و ...

دنیای دلفی
پنج شنبه 24 فروردین 1385, 15:10 عصر
ممنون از همراهیتون دارم با یک روش سرخ پوستی روش کار می کنم اگر به جواب رسیدم اعلام می کنم

mahsa119
یک شنبه 27 فروردین 1385, 14:45 عصر
خوب دوست عزیز اول باید یه format ثابت برای کسانی که با برنامه ات کار می کنند در نظر بگیری و اونارو مجبور کنی که از اون format پیروی کنند .

بعد بر اساس اون طرح قسمتهای یکان و دهگان و صدگان و غیره رو بدست بیاری بعد از اون هر قسمت رو در عدد نامی خودش ضرب کنی مثلا عددی که در صدگان بدست اوردی در 100 ضرب کنی و غیره بعد همه رو با هم جمع کنی این بشه اون عددی که میخواستی

Mah6447
سه شنبه 02 خرداد 1385, 09:09 صبح
از راهنمایی دوستان و اساتید بسیار ممنونم . لطفاً در مورد تبدیل اعداد اعشاری به حروف فارسی نیز راهنمایی نمایید . مثال : 12.75 => دوازه و هفتاد و پنج صدم

Mah6447
شنبه 06 خرداد 1385, 11:18 صبح
از راهنمایی دوستان و اساتید بسیار ممنونم . لطفاً در مورد تبدیل اعداد اعشاری به حروف فارسی نیز راهنمایی نمایید . مثال : 12.75 => دوازه و هفتاد و پنج صدم
لطفاً کمک کنید ....