PDA

View Full Version : مشکل کدین در فایل dbf



alijuventusi
دوشنبه 11 خرداد 1394, 12:56 عصر
با استفاده از convert بیمه رشته ام رو ساختم اما زمانی که میخوام در فایل dbf اینسرت کنم متنم تبدیل به ؟؟؟ میشه
چه جوری میتونم این مشکل روحل کنم ؟

alijuventusi
سه شنبه 12 خرداد 1394, 12:41 عصر
کسی قبلا با سیستم dbf کار نکرده ؟

prans_tork
سه شنبه 12 خرداد 1394, 21:49 عصر
سلام
شما همونطور که اطلاعات فایل dbf رو تبدیل کردی برای خواندن( داس به ویندوز)
قبل ذخیره کردن هم باید بر عکس کانورت کنی (ویندوز به داس)
البته برای بالا رفتن سرعت کار در هر دو تبدیل فقط ستونهای دارای اطلاعات فارسی رو کانورت کن.
من پارسال روی فایل های dbf تأمین اجتماعی کار کردم و پروژه دادم.
در صورت وجود مشکل بگو تا بیشتر راهنمایی کنم.

alijuventusi
چهارشنبه 13 خرداد 1394, 00:15 صبح
سلام
شما همونطور که اطلاعات فایل dbf رو تبدیل کردی برای خواندن( داس به ویندوز)
قبل ذخیره کردن هم باید بر عکس کانورت کنی (ویندوز به داس)
البته برای بالا رفتن سرعت کار در هر دو تبدیل فقط ستونهای دارای اطلاعات فارسی رو کانورت کن.
من پارسال روی فایل های dbf تأمین اجتماعی کار کردم و پروژه دادم.
در صورت وجود مشکل بگو تا بیشتر راهنمایی کنم.
بعد از تبدیل رشته به ایران سیستم و اینسرت در فایل dbf ستون فارسی ؟؟؟ میشه چه جوری این مشکل یونیکد رو حل میشه کرد ؟

prans_tork
چهارشنبه 13 خرداد 1394, 01:38 صبح
بعد از تبدیل رشته به ایران سیستم و اینسرت در فایل dbf ستون فارسی ؟؟؟ میشه چه جوری این مشکل یونیکد رو حل میشه کرد ؟


به احتمال 99 درصد مشکل از انتخاب نوع پرووایدر شماست که باید این enProvider.vbMicrosoft_JET_OLEDB_4_0; باشه.

من برای تبدیل از داس به ویندوز جهت نمایش اطلاعات از کد زیر:


public DataTable DecodeDSKKAR_IranSystemToWindows(DataTable dt) {
ClsDos2Win_Iran d2w = new ClsDos2Win_Iran();
d2w.AddSpaceAfterUpperCase = true;
d2w.SpaceKind = enSpaceKind.Space_Chr_32;


for (int i = 0; i < dt.Rows.Count; i++)
{
dt.Rows[i]["DSK_NAME"] = d2w.Dos2Win_ReadFromTextInWin(dt.Rows[i]["DSK_NAME"].ToString()).ToString();
dt.Rows[i]["DSK_FARM"] = d2w.Dos2Win_ReadFromTextInWin(dt.Rows[i]["DSK_FARM"].ToString()).ToString();
dt.Rows[i]["DSK_ADRS"] = d2w.Dos2Win_ReadFromTextInWin(dt.Rows[i]["DSK_ADRS"].ToString()).ToString();
dt.Rows[i]["DSK_DISC"] = d2w.Dos2Win_ReadFromTextInWin(dt.Rows[i]["DSK_DISC"].ToString()).ToString();
}
return dt;
}

و برای تبدیل عکس قبل از ذخیره کردن از کد زیر استفاده کردم :

public DataTable EncodeDSKKAR_WindowsToIranSystem(DataTable dt) {
ClsWin2Dos_Iran w2d = new ClsWin2Dos_Iran();


w2d.Set_LA_to_OneChar = true;
w2d.SelectProvider = enProvider.vbMicrosoft_JET_OLEDB_4_0;
w2d.ShowMsgBoxErrorIfOccur = false;


for (int i = 0; i < dt.Rows.Count; i++)
{
dt.Rows[i]["DSK_NAME"] = w2d.Win2Dos(dt.Rows[i]["DSK_NAME"]);
dt.Rows[i]["DSK_FARM"] = w2d.Win2Dos(dt.Rows[i]["DSK_FARM"]);
dt.Rows[i]["DSK_ADRS"] = w2d.Win2Dos(dt.Rows[i]["DSK_ADRS"]);
dt.Rows[i]["DSK_DISC"] = w2d.Win2Dos(dt.Rows[i]["DSK_DISC"]);
}
return dt;
}

موفق باشی