کتابخانه ابزارهای فارسی B4A — ۲۵ تابع (کد ملی، موبایل، شبا، قیمت تومانی)

# 🇮🇷 کتابخانهٔ ابزارهای فارسی برای Basic4Android

۲۵ تابع آمادهٔ فارسی در **یک فایل** — از تبدیل ارقام و قیمت تومانی تا اعتبارسنجی کد ملی،

شمارهٔ موبایل، کارت بانکی، شبا و کد پستی.

---

## 🤔 چرا این کتابخانه؟

اگر با B4A کار کرده باشید، این کدها را دوباره و دوباره نوشته‌اید: تبدیل ارقام فارسی،

جداکنندهٔ هزارگان، اعتبارسنجی کد ملی، تشخیص اپراتور… هر بار هم باید تستشان کنید.

این کتابخانه همه‌شان را **یک‌جا، تمیز و تست‌شده** می‌دهد. کافی است یک فایل `.bas` را

به پروژه اضافه کنید و `FaTools.نام‌تابع(...)` صدا بزنید.

---

## ✅ چرا به این کد اعتماد کنیم؟

**۷۰ تست خودکار، همه سبز** — و نه تست‌های ساده، تست‌های واقعی:

| تست | نتیجه |

|---|---|

| تبدیل ارقام و قیمت تومانی | ✅ |

| عدد به حروف («یک میلیون و دویست و پنجاه هزار») | ✅ |

| **کد ملی: تغییر هر یک از ۱۰ رقم → نامعتبر می‌شود** | ✅ |

| شمارهٔ موبایل (۰۹، +۹۸، ۹۸، ۹) و تشخیص اپراتور | ✅ |

| **کارت بانکی: تغییر یک رقم → نامعتبر می‌شود** | ✅ |

| شبا با الگوریتم mod-۹۷ | ✅ |

| نیم‌فاصله («می روم» → «می‌روم») | ✅ |

> تست حساسیت یعنی چه؟ یعنی صرفاً «۱۲۳۴» را قبول نمی‌کند؛ بلکه با تغییر **یک رقم** از یک

> کد ملی صحیح، نتیجه نامعتبر می‌شود. این چیزی است که کدهای تکراری بازار از آن در می‌روند.

---

## 📦 چه چیزی دریافت می‌کنید؟

### نسخه اصلی — B4A

- `Modules/FaTools.bas` — ۲۵ تابع، با کامنت فارسی

- بدون هیچ وابستگی به کتابخانهٔ بیرونی (فقط امکانات پایهٔ B4A)

### 🎁 هدیه: نسخهٔ پایتون

- `Bonus/python/fatools.py` — آینهٔ کامل کتابخانه به زبان پایتون

- `Bonus/python/test_fatools.py` — همان ۷۰ تست، قابل اجرا

---

## 🔧 فهرست توابع (۲۵ تابع)

### ارقام و قالب‌بندی

`ToPersianDigits` · `FaDigits` · `ToEnDigits` · `FaPrice` · `FormatNumber` · `FormatDecimal` · `FormatPercent`

### متن فارسی

`NumberToWords` · `Beautify` (نیم‌فاصله) · `NormalizeArabic` · `Truncate` · `WordCount` · `ReadingTime`

### اعتبارسنجی

`IsValidNationalCode` · `IsValidMobile` · `MobileOperator` · `IsValidSheba` ·

`IsValidCardNumber` · `IsValidPostalCode` · `IsValidEmail`

### کاربردی

`ProductPriceLabel` · `DiscountPercent` · `FaNum` · `CleanText` · `ToPersianDigits`

---

## 💻 نمونه کد

```

Log(FaTools.FaPrice(1250000)) ' ۱,۲۵۰,۰۰۰ تومان

Log(FaTools.NumberToWords(1250000)) ' یک میلیون و دویست و پنجاه هزار

Log(FaTools.MobileOperator("09121234567")) ' همراه اول

Log(FaTools.Beautify("می روم به کتاب ها")) ' می‌روم به کتاب‌ها

If FaTools.IsValidNationalCode(edtCode.Text) = False Then

ToastMessageShow("کد ملی معتبر نیست", True)

End If

```

**نمونهٔ واقعی — نمایش قیمت محصول در فروشگاه:**

```

Private Sub ShowProductPrice(price As Long, sale As Long)

If sale > 0 And sale < price Then

lblPrice.Text = FaTools.FaPrice(sale)

lblOldPrice.Text = FaTools.FormatNumber(price)

lblBadge.Text = FaTools.ToPersianDigits(FaTools.DiscountPercent(price, sale)) & "٪"

Else

lblPrice.Text = FaTools.FaPrice(price)

End If

End Sub

```

---

## 🎯 مناسب برای

- اپ‌های فروشگاهی و حسابداری (قیمت، تخفیف، فاکتور)

- فرم‌های ثبت‌نام (کد ملی، موبایل، کد پستی)

- درگاه‌های پرداخت (اعتبارسنجی کارت و شبا)

- وبلاگ و اپ‌های محتوایی (شمارش واژه، زمان مطالعه، نیم‌فاصله درست)

---

## 🛠️ پیش‌نیازها

| مورد | نیاز |

|---|---|

| B4A | نسخه ۹ به بالا |

| کتابخانه‌ها | Core (و Regex برای توابع متنی) |

| پایتون (هدیه) | ۳.۶ به بالا — بدون وابستگی |

| فایل لایوت | لازم نیست — همه چیز در کد |

---

## 📄 مجوز

استفاده در پروژه‌های شخصی و تجاری شما آزاد است، بدون محدودیت تعداد پروژه.

فروش مجدد یا انتشار به‌عنوان محصول مستقل مجاز نیست.

---

💬 سؤالی دارید؟ از بخش پشتیبانی فروشگاه پیام بدهید.

دسته‌بندیکتابخانه و ابزار
تاریخ انتشار۲۲ شهریور ۱۴۰۵ - ۰۱:۵۳
تعداد بازدید۲
تعداد فروش۰
فرمت تحویلفایل دانلودی (بعد از پرداخت آنی فعال می‌شود)
پشتیبانیتیکت پشتیبانی در پنل کاربری

ویژگی‌های کلیدی

  • ۲۵ تابع آمادهٔ فارسی در یک فایل .bas
  • اعتبارسنجی کد ملی با الگوریتم رسمی + تست حساسیت ۹۰ حالته
  • اعتبارسنجی موبایل، کارت بانکی (Luhn)، شبا (mod-97)، کد پستی و ایمیل
  • تشخیص اپراتور: همراه اول، ایرانسل، رایتل
  • قیمت تومانی با ارقام فارسی و جداکنندهٔ هزارگان
  • تبدیل عدد به حروف فارسی (تا ۱۸ رقم)
  • اصلاح نیم‌فاصله: «می روم» ← «می‌روم» و «کتاب ها» ← «کتاب‌ها»
  • یکسان‌سازی حروف عربی (ي←ی، ك←ک)
  • شمارش واژه و محاسبهٔ زمان مطالعه
  • ۷۰ تست خودکار — همه سبز
  • هدیه: نسخهٔ کامل پایتون با همان تست‌ها
  • بدون وابستگی به کتابخانهٔ بیرونی — فقط امکانات پایهٔ B4A
  • کد با کامنت فارسی و نام‌گذاری خوانا
  • بدون فایل لایوت — افزودن یک ماژول و تمام

هنوز نظری ثبت نشده است. اولین نفر باشید!

برای ثبت نظر وارد شوید. (ثبت نظر پس از خرید فعال می‌شود)

B4A — کد نمونه رایگان این تکه‌کد را می‌توانید مستقیم در پروژه بیسیک۴اندروید استفاده کنید
' ═══ نمونه‌ای از سورس (بخشی از ماژول FaTools) ═══

' قیمت با جداکنندهٔ هزارگان و ارقام فارسی
Public Sub FaPrice(price As Long) As String
    Dim s As String = "" & price
    Dim out As StringBuilder
    out.Initialize
    Dim cnt As Int = 0
    For i = s.Length - 1 To 0 Step -1
        If cnt > 0 And (cnt Mod 3) = 0 Then out.Insert(0, ",")
        out.Insert(0, s.SubString2(i, i + 1))
        cnt = cnt + 1
    Next
    Return FaDigits(out.ToString) & " تومان"
End Sub

' اعتبارسنجی کد ملی — الگوریتم رسمی
Public Sub IsValidNationalCode(code As String) As Boolean
    Dim c As String = ToEnDigits(code).Trim
    If c.Length <> 10 Then Return False
    If Regex.IsMatch("^(\d)\1{9}$", c) Then Return False   ' ۱۱۱۱۱۱۱۱۱۱
    Dim sum As Int = 0
    For i = 0 To 8
        sum = sum + (Bit.ParseInt(c.SubString2(i, i + 1), 10) * (10 - i))
    Next
    Dim r As Int = sum Mod 11
    Dim check As Int = Bit.ParseInt(c.SubString2(9, 10), 10)
    If r < 2 Then Return (check = r)
    Return (check = 11 - r)
End Sub

' ── استفاده ──
Log(FaTools.FaPrice(1250000))      ' ۱,۲۵۰,۰۰۰ تومان

⚠ نسخهٔ کامل ۲۵ تابع دارد با توضیحات فارسی خط‌به‌خط و ۷۰ تست خودکار.
تخصصی بیسیک۴اندرویدسورس‌کد آمادهآموزش گام‌به‌گامکتابخانه‌های کاربردیتحویل آنی بعد از پرداختپشتیبانی واقعی ۲۴/۷بروزرسانی رایگان+۲۸ محصول فعال