ورود

View Full Version : سوال: ماژولي براي تبديل تكست فايل داس به ويندوز



Mahsa Hatefi
یک شنبه 27 بهمن 1387, 22:58 عصر
سلام بر اساتيد گرانقدر

اطلاعاتي از يك برنامه تحت داس بصورت تكست دريافت مي كنم كه با كاما فيلدهاي اطلاعات از هم جدا مي شوند . حالا لازم است كه اين اطلاعات بداخل يك جدول اكسس ريخته شود اما قبل از اون بايد فارسي سازي شود .

به نظرم رسيد كه ماژولي بنويسم كه تك تك كاراكترها را بخواند و كد اسكي آن را يافته و با كاراكتر فارسي مناسب جايگزين كند . تا يه جاهاي هم ماژول مربوطه رو تكميل كردم اما راستش ديگه گيج شدم و نتونستم ادامش بدم .

احتمالا بايد توي فرمي كه فايل مربوطه جهت كانورت معرفي مي شود با زدن دگمه اجرا با علم به اينكه هر فيلد تكست داس كه با كاما جدا شده چند كاراكتر است ، آنرا در يك متغير قرار بدهم و شروع كنم به خوندن تك تك كاراكتر ها و همزمان ماژول مربوطه كد اسكي كاراكتر را شناسايي و كاراكتر فارسي ويندوز را تك تك جايگزين كند .

اگر بزرگواري كاري در اين زمينه انجام داده و يا تجربه اي دارد و يا مي تواند حقير را راهنمايي كند ، سپاسگزار خواهم شد .

Mahsa Hatefi
دوشنبه 28 بهمن 1387, 12:30 عصر
لطفا اساتيد بزرگوار اشكال كار را گوشزد فرمايند .

لازم به ذكر است دليميتر تكست كاما است

e601
دوشنبه 28 بهمن 1387, 18:17 عصر
با سلام

فایل برنامه شما رو تصحیح کردم. اشکالات و نکات مورد نظر شما رو در همین فایل توضیح دادم

موفق باشید...

Mahsa Hatefi
دوشنبه 28 بهمن 1387, 18:47 عصر
خيلي ممنونم بزرگوار لطف بزرگي فرموديد .
يه سوال : آيا با دستور ()SetString كاما را خذف كرده ؟
اگر چنين نيست لطفا بفرماييد كه با كاما ها چه كرديد ؟ و چگونه آنها را بي اثر نموديد ؟

باز هم تشكر مي كنم جناب مسعودي . كمك زيادي به من فرموديد . هميشه سلامت و پايدار باشيد

e601
دوشنبه 28 بهمن 1387, 19:11 عصر
با سلام

دستور SetString رو داشتم تست میکردم و گذاشته بودم. شما در صورتی که حلقه آخر رو از 48 شروع کنید اصلا نیازی به اون تابع هم نیست میتونید هم خود تابع رو هم دستورات مرتبطش رو از رویداد کلیک دکمه حذف کنید

در مورد کاما باید بگم در حلقه اول ما 20 کاراکتر اول رو میخونیم سپس کاراکتر بعدی رو که کاما هست نادیده گرفته و در حلقه دوم از نقطه 22 تعداد 25 کاراکتر دیگه هم میخونیم
همینطور تا کاراکتر 46 که مربوط به فیلد دومه و دوباره کاراکتر 47 که کاماست. در پایان هم از کاراکتر 48 تا آخر هم که فیلد سومه
در صورتی که از 47 شروع کنید باید از دستور SetString هم استفاده کنید تا کاما حذف بشه ولی همونطور که گفتم اگر حلقه از 48 شروع بشه نیازی به اون تابع هم نیست


باز هم تشكر مي كنم جناب مسعودي . كمك زيادي به من فرموديد . هميشه سلامت و پايدار باشيد
بزرگوارید دوست من ، خوشحال شدم که مشکل شما رو حل شده

موفق باشید...