1 ضمیمه
مشکل گزارش فایل شده تحت DOS
سلام
من تو یک سیستم انبار تحت DOS وقتی اطلاعات سیستم رو به dbf تبدیل میکنم، code page اش ایران سیستمه و با مبدل می تونم تبدیلش کنم و تو ویندوز ببینم. ولی وقتی یک گزارش رو فایل میکنم نمی دونم code page اش چیه و با مبدل ایران سیستم نمی تونم تو ویندوز ببینم. کسی میتونه کمک کنه؟ یه نمونه از فایلهاش رو هم میذارم.
تبدیل تاریخ میلادی به شمسی
Function IranDate(d As String)
Dim ifday, ifmonth, ifyear, ifdayofyear
Dim iyear, idayofyear
Dim inumdayofyear
Dim aifmonthdays
aifmonthdays = Array(31, 31, 31, 31, 31, 31, 30, 30, 30, 30, 30, 29)
inumdayofyear = 365
Calendar = vbCalGreg
iyear = Year(d)
idayofyear = DatePart("y", d)
If isleapyear(iyear - 1) Then
inumdayofyear = 366
aifmonthdays(11) = 30
End If
If (idayofyear > 79) Then
ifyear = iyear - 621
ifdayofyear = idayofyear - 79
Else
ifyear = iyear - 622
ifdayofyear = (inumdayofyear - 79) + idayofyear
End If
ifday = ifdayofyear
While (ifday > aifmonthdays(ifmonth))
ifday = ifday - aifmonthdays(ifmonth)
ifmonth = ifmonth + 1
Wend
ifmonth = ifmonth + 1
If Len(ifmonth) = 1 Then ifmonth = "0" & ifmonth
If Len(ifday) = 1 Then ifday = "0" & ifday
IranDate = ifyear & "/" & ifmonth & "/" & ifday
d = IranDate
End Function
'--------------------------------
Function isleapyear(nyear)
isleapyear = (((nyear Mod 4) = 0 And (nyear Mod 100) <> 0) Or (nyear Mod 400) = 0)
End Function
فکر نکنم مشکلی باشه خیلی تست کردم برنامه های خودم رو هم به این صورت نوشتم
طرز استفاده
Text1.Text = irandate(date)
5 ضمیمه
کچلمون کردید. این هم جواب شما
نقل قول:
نوشته شده توسط
problem
قبل از اینکه این سوال را مطرح کنم، در تاپیکها جستجو کردم، اما به نتیجه دلخواه نرسیدم. لذا این سوال را مطرح میکنم:
بدون این که در Control Panel بخش Regional and Language Settings لبه Advanced گزینه مربوط به برنامههای «غیر یونیکد» را به فارسی تغییر دهیم، میخواهیم برنامهای داشته باشیم، که فقط یک عدد Textbox داشته باشد، که بشود تویش فارسی تایپ کرد، و بعد بتواند به یک دیتابیس (فایل Access) وصل شود، و عین متن تایپ شده را در جدول داخل آن ذخیره کند، به طوری که وقتی خود فایل Access را باز میکنیم هم متن را فارسی بنینیم، نه کاراکترهای عجیب و غریب.
توجه داشته باشید که برنامه قرار است فقط روی ویندوز XP کار کند، و روی ویندوز ۹۸ و ... لازم نیست اصلاً باز بشود! (لذا من دنبال راه حلهای مبتنی بر CodePage نیستم.)
توضیح دیگر آن که بنده اصلا سابقه کار با VB6 ندارم، و این سوال را به نیابت از کس دیگری میپرسم. لذا تا حد امکان ساده توضیح دهید. اگر به کامپوننت یا تکنیکی که برای شما شناخته شدهاست اشاره میکنید، لطف کنید برای من هم لینکی بگذارید که آشنا شوم.
(چیزی که تا الآن به آن پی بردم این است که VB6 کنترلهای پیشفرضش به صورت ANSI هستند و بنابراین احتمالاً راه حل سوال من یا در گروی استفاده از کنترلهای دیگر است، یا در گروی ارتباط مستقیم برنامه با API ویندوز و تعریف کنترلها از آن طریق.)
برای اینکه بتوانید در داخل یک کادر متنی(البته به محض ورود) فارسی تایپ کنید، باید API مربوطه را که در همین تاپیک (صفحات فکر میکنم اول تا دهم) ذکر شده است، در GetFucos بگذارید. دوم شروط استفاده از بانک اطلاعاتی با طول و تفصیل زیاد هستند برای راهنمایی من باید اطلاعات خوبی بهم بدید. سوم اگز با Access ورژنهای بالاتر(مثل2003) کار میکنید، باید از آن فایل مربوطه یک نسخه97 تهیه کنید(از طریق Utility داخل Access) تا موقع باز شدن اجق وجق نبینید. برای ارتباط مناسب هم از انجین مناسب استفاده کنید.(مثلا4.51) چهارم: برای راهنمایی استفاده از API (که فکر میکنم با آن آشنا هستید) یکبار جستجو کنید. از این لینک میتوانید برنامه آموزش 900 API بیابید و حالشو ببرید.