View Full Version : سوال: مشکل فارسی در دیتا بیس اکسس به دادم برسید
u.2u.4u
پنج شنبه 08 مهر 1389, 16:26 عصر
سلام. من با دلفی 7 کار می کنم. تنظیمات فارسی ویندوز هم همه درستند. وقتی از یک فایل متنی اطلاعات را می خونم و در دیتابیس اکسس وارد می کنم، زمانیکه دیتابیس را با اکسس باز می کنم یه سری کاراکترهای نامشخص نشون می ده. البته میشه بوسیله دلفی او اطلاعات را بازیابی کرد اما مشکلات بغرنجی پیش می یاد. در واقع زمانی که داده ها استخراج می شوند به چشم همون کاراکترهای در هم تحلیل می شوند. خلاصه اینکه می خوام به یه روشی اطلاعات را به شکل درست و حسابی وارد اکسس کنم. قبلا از یاری دهندگان تشکر می کنم.
K.Mohammadreza
جمعه 09 مهر 1389, 00:18 صبح
کافيه فايل تکست يونيکد باشه همچنين مي تونيد با استفاده از ado از فايل تکست بعنوان ديتا بيس استفاده کني و مشکل فوق را نداشته باشي. آموزش اين روش را قبلا گذاشتم
u.2u.4u
جمعه 09 مهر 1389, 08:08 صبح
ممنون. ولی من با دلفی7 کار می کنم. تمام پست هاتون را خوندم و پیداش نکردم. دلفی 7 با یونیکد مشکل داره. چه جوری فایلم را یونیکد کنم؟ البته این را هم بگم که اگر دستی از فایل متن توی اکسس کپی و پیست کنیم مشکلی نیست. مشکل زمانی بوجود می یاد که متن از پردازش دلفی عبور می کند. ممنون میشم جزئی تر راهنمایی کنید.
Felony
جمعه 09 مهر 1389, 09:15 صبح
یه نمونه برنامه به همراه فایلی که ازش اطلاعات رو میخونید قرار بدید .
u.2u.4u
جمعه 09 مهر 1389, 11:51 صبح
آقا می فرستم ولی یه کم آماتوره بهم نخندیدها:چشمک:
Felony
جمعه 09 مهر 1389, 12:37 عصر
آقا می فرستم ولی یه کم آماتوره بهم نخندیدها:چشمک:
شیوه کدنویسیتون رو اصلاح کنید ، کدهاتون خیلی در هم بود و من حوصله نداشتم کامل بخونمش و باهاش ور برم ، چرا با دلفی 2010 برنامتون رو ننوشتید ؟
u.2u.4u
جمعه 09 مهر 1389, 17:48 عصر
من که گفتم آماتوره. ببینین کلیت کار اینه که از اون فایل تکست که البته خیلی بزرگتره می خونه تو یه دیتا بیس. دیتا بیس هم تو فولدر هست. اما زمانی که دیتابیس را با اکسس باز می کنیم، نمی تونیم فارسی ها را بخونیم.
u.2u.4u
جمعه 09 مهر 1389, 17:52 عصر
دلفی 2010 روی کامپیوتر های ضعیف کار می کنه؟ سرعتش کم نمیشه؟ آخه من با همین دلفی 7 هم مشکل دارم.
behzadboloori
جمعه 09 مهر 1389, 20:04 عصر
زمان ارسال به بانک اطلاعاتی، خروجی رو تبدیل به یونیکد کن
u.2u.4u
جمعه 09 مهر 1389, 21:19 عصر
زمان ارسال به بانک اطلاعاتی، خروجی رو تبدیل به یونیکد کن
آقا چه جوری؟ لطفا یه توضیح کاملی بدید یا اگه تابع و روالی داره برام بذارید. لطف می کنید.
behzadboloori
جمعه 09 مهر 1389, 21:55 عصر
بهتره قدم به قدم بریم جلو!
اول کدهای خوندن از فایل متنی رو trace کنید.
اگر محتویاتش رو توی string میریزید، ببینید آیا در زمان اجرا و با Trace کردن، اطلاعات رو درست نشون میده یا نه؟
Felony
جمعه 09 مهر 1389, 22:18 عصر
دلفی 2010 روی کامپیوتر های ضعیف کار می کنه؟ سرعتش کم نمیشه؟ آخه من با همین دلفی 7 هم مشکل دارم.
سرعت اجرای برنامه و ... خیلی بهتر از دلفی 7 هست .
u.2u.4u
جمعه 09 مهر 1389, 22:30 عصر
بهتره قدم به قدم بریم جلو!
اول کدهای خوندن از فایل متنی رو trace کنید.
اگر محتویاتش رو توی string میریزید، ببینید آیا در زمان اجرا و با Trace کردن، اطلاعات رو درست نشون میده یا نه؟
بله. این کار را کردم درست نشون می ده. تنها جایی که مشکل داره تو خود اکسس هستش. حتی وقتی از اکسس تو دلفی می خونم هم درست نشون میده
behzadboloori
جمعه 09 مهر 1389, 23:50 عصر
متغیری که برای خوندن از فایل استفاده میشه رو چطوری تعریف کردین؟
میشه کدهاتون رو اینجا بدارین؟ شاید کس دیگه ای هم بتونه که کمکتون کنه
u.2u.4u
شنبه 10 مهر 1389, 15:46 عصر
متغیری که برای خوندن از فایل استفاده میشه رو چطوری تعریف کردین؟
میشه کدهاتون رو اینجا بدارین؟ شاید کس دیگه ای هم بتونه که کمکتون کنه
قابل توجه همه دوستان من جمله آقا مجتبی. کدم را در چند خط خلاصه کردم. لطفا راهنمایی کنید.
bootshow
یک شنبه 11 مهر 1389, 15:28 عصر
اگر نشد UTF8Decode را بردارید.
اون کدی که شما نوشتید درسته و مشکلی از نظر نحوه ذخیره نداره.احتمالا خود اکسس زمانیکه متن فارسی را میخواهد تبدیل کنه اونو به یونیکد تبدیل میکنه.
یک نکته دیگه اینه که اگر فونت اکسس را tahoma بزارید و از charset عربی استفاده کنید کلمات فارسی بدرستی نمایش داده میشه.
نکته دیگر اینکه اول ذخیره متنهای فارسی را روی فیلد رشته ای مثل dars امتحان کنید و بعد از یادگیری روی فیلدهای memo
form1.ADOTable1.FieldByName('dars').AsString:=
UTF8Decode (AnsiToUtf8(line));
نکتهای متفرقه:
form1.ADOTable1.Insert اضافیه.
مسیر جاری را اینجوری تعریف کنید path:=ExtractFilePath(Application.ExeName);
dataintro را بصورت procedure dataintro(); بعد از کلمه کلیدی private تعریف کنید و در بدنه اصلی برنامه procedure TForm1.dataintro(); بنویسید تا دیگر احتیاجی به نوشتن form1 نباشد
u.2u.4u
دوشنبه 12 مهر 1389, 13:15 عصر
دستتون درد نکنه ولی جواب نداد. با UTF8Decode (AnsiToUtf8(line)) که مثل اولش می شه. وقتی هم که UTF8Decodeرا بر می داریم، اینطوری میشه:
لطفا کمک کنید. دیگه کم کم دارم فکر می کنم بی خیال دلفی بشم و با سی بنویسمش.
u.2u.4u
دوشنبه 12 مهر 1389, 13:57 عصر
یه سوال دیگه: تو اکسس2003 چه جوری charset را تعیین می کنیم؟ تو هلپش که چیزی پیدا نشد.
bootshow
چهارشنبه 14 مهر 1389, 18:03 عصر
access2003 ندارم که بتونم امتحان کنم.
از کامپوننتهای tnt استفاده کن که برای پشتیبانی یونیکد هست.
یک سری به سایت زیر بزن.چند تا یونیت برای کار با یونیکد داره.
http://fundementals.sourceforge.net/unicode.html
K.Mohammadreza
چهارشنبه 14 مهر 1389, 21:43 عصر
با سلام منم مشکل شما را داشتم ولي با يکسري تنظيمات حل شد.
1-تنظيمات زبان ويندوز-در صورت امکان بعد از انتخاب زبان فارسي در ساير تنظيمات بجاي Context گزينه National انتخاب شود
2-تعمير مجموعه آفيس يا نصب مجدد برنامه
3-در دلفي روي فرمتان کليک کنيد و گزينه Char-set را Default انتخاب کنيد،فونت Tahoma و Direction:=bdRigthToLeft
4-نيازي نيست از هيچ تابع يا پروسيجري براي کد يا ديکد کردن ديتاها استفاده کنيد/
5- تنظيمات فيلدهاي جدول ها را در اکسس بررسي کن
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.