سوالات زیادی برای تبدیل عدد به حرف شده است و پاسخهای مختلفی وجود دارد ولی چگونه می توان عکس این کار را انجام داد یعنی حروف را به عدد تبدیل کرد اگر لطف کنید راهنمایی کنید ممنون می شوم .
سوالات زیادی برای تبدیل عدد به حرف شده است و پاسخهای مختلفی وجود دارد ولی چگونه می توان عکس این کار را انجام داد یعنی حروف را به عدد تبدیل کرد اگر لطف کنید راهنمایی کنید ممنون می شوم .
یعنی تا الان کسی به این مشکل برخورد نکرده لطف کنید در صورت وقت داشتن راهنمایی کنید
مثلا چه حروفی را می خواهید به عدد تبدیل کنید ؟
همه حرفها را که نمی توان به عدد تبدیل کرد !!! ( حروف و اعداد محدودیتی ندارند )
مثلا یکی از کارهایی که می شود با استفاده از این تبدیلات انجام داد روزهای هفته است
یعنی مثلا می شود شماره روزهای هفته را به دست آورد و بعد به وسیله به کارگیری آرایه ها آن را به حروفی که خودمان تعریف می کنیم تبدیل کرد ( مثلا روز دوم را برابر با یک شنبه قرار می دهیم و ... )
البته شاید هم این کار امکان داشته باشد ، به هر حال بقیه دوستانی که می دانند حتما به شما جواب خواهند داد ...
موفق باشید ...
اگه با استفاده از ساختارهای شرطی بشه اعداد رو به حروف تبدیل کرد. حتما بر عکسش هم میشه دیگه.
خوب اون روشی که عدد رو تبدیل به حروف می کنه رو برعکس کنید حل می شه دیگه.
موفق باشید
سلام
سوالتون واضح نیست. میخواین مقدار کد اسکی حروف رو در بیارین؟ یا میخواین طبق یک روال حروف رو به عدد تبدیل کنید؟
مثلا یک میلیون و پانصد هزار و ششصدو هفتاد و نه را تبدیل کند به 1500679
من از کد زیر برای تبدیل عدد به متن استفاده می کنم ولی عکسش را چیکار کنم
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.
آخرین ویرایش به وسیله دنیای دلفی : شنبه 19 فروردین 1385 در 13:27 عصر
بابا دمتون گرم یکی یک حالی بده
خوب معلومه که تبدیل عدد به حرف آسون هست چون هر کاراکتر به تنهایی ارزش داره ولی در مورد حروف اینطور نیست چون مثلا ده و پنج و هزار مرتبه رو مثل 10 و 5 و 1000 مشخص نمی کنند چون تعداد حروف منطقی نیست فکر کنم با شرط های مختلف بتونی این کار رو بکنی پایه کارت را 'و' , فاصله قرار بده مثلا بگو اگر به 'و' رسیدی اونوقت ...
شرمنده چیز بهتری به نظرم نمی رسه.
آخرین ویرایش به وسیله mohamadmjk : چهارشنبه 23 فروردین 1385 در 22:38 عصر
سلام دوست عزیز
یه الگوریتم پیشنهاد می دم اگر خواستی می تونیم باهم روش کار کنیم:(تو بخش OenSource)
1 - ریختن دهگان - هزارگان - ده هزار گان و ... در آرایه 2 بعدی با حفظ ارزش :
مثلا 10هزار و 20 هزار پشت سر هم ولی از نظر ارزشی در یک ردیف
2- پیدا کردن اعداد به حروف از رشته :
مثلاً در رشته ده هزار و صد و بیست و شش
اول بدنبال خانواده صدهزارگان ها و سپس ده هزار گان و ... می گردیم و در آرایه ذخیره می کنیم
سپس یه مرحله از جستجو کم می کنیم یعنی دیگه دنبال صدهزارگان نمی گردیم و از ده هزارگان شروع می کنیم وهمینطور تا به عدد 1 برسیم
به ترتیب خانه هاب آرایه حاصله رو با آرایه اول مقایسه کرده و ...
ممنون از همراهیتون دارم با یک روش سرخ پوستی روش کار می کنم اگر به جواب رسیدم اعلام می کنم
خوب دوست عزیز اول باید یه format ثابت برای کسانی که با برنامه ات کار می کنند در نظر بگیری و اونارو مجبور کنی که از اون format پیروی کنند .
بعد بر اساس اون طرح قسمتهای یکان و دهگان و صدگان و غیره رو بدست بیاری بعد از اون هر قسمت رو در عدد نامی خودش ضرب کنی مثلا عددی که در صدگان بدست اوردی در 100 ضرب کنی و غیره بعد همه رو با هم جمع کنی این بشه اون عددی که میخواستی
از راهنمایی دوستان و اساتید بسیار ممنونم . لطفاً در مورد تبدیل اعداد اعشاری به حروف فارسی نیز راهنمایی نمایید . مثال : 12.75 => دوازه و هفتاد و پنج صدم
لطفاً کمک کنید ....نوشته شده توسط Mah6447