PDA

View Full Version : خواندن یک فایل word فارسی!



alireza323
سه شنبه 17 بهمن 1391, 18:51 عصر
سلام، دوستان من کلی تو همین فروم و حاهای دیگه گشتم برای خوندن فایل word، روشش هم همه جا یکی هست، ولی مشکلی که دارم اینه که وقتی فایل word که متن فارسی توش هست رو میخونم، چیزی که برمیگردونه به صورت ????? هست و متن رو درست نشون نمیده :( برای خوندن فایل word فارسی باید چی کنم؟
این هم کدی هست که استفاده کردنم( یعنی همه جه اینو گفتن)


Microsoft.Office.Interop.Word.Document doc = wordApp.Documents.Open(ref file, ref nullobj, ref nullobj,
ref nullobj, ref nullobj, ref nullobj,
ref nullobj, ref nullobj, ref nullobj,
ref nullobj, ref nullobj, ref nullobj,
ref nullobj, ref nullobj, ref nullobj, ref nullobj);
doc.ActiveWindow.Selection.WholeStory();
doc.ActiveWindow.Selection.Copy();
IDataObject data = Clipboard.GetDataObject();
string allText = data.GetData(DataFormats.Text).ToString();

ordebehesht
سه شنبه 17 بهمن 1391, 19:45 عصر
یه جا خوندم باید تبدیل به کاراکترهای unicode کنی

docendo
سه شنبه 17 بهمن 1391, 20:03 عصر
اگر تکست فارسی شما با unicode نوشته نشده باشد و با فونت های ماقبل تاریخ فارسی نوشته شده است در واقع آکسی کد هست , نمیتوانید در تکست باکس بخوانید برای اینکه آکسی کد از صفر تا (اگر اشتباه نکنم )127 با unicode یکسان است بعد فرق میکند
در قدم اول باید تکست خود به unicode تبدیل کنید البته میتوانید خودتان برنامه ای بنویسید که اینکار را بکند من چند سال پیش همین را در پاسکال نوشته بودم متاسفانه الان ندارم ولی این لینک میتواند بشما کمک کند



http://www.thepcmanwebsite.com/ascii_converter.shtml

ordebehesht
سه شنبه 17 بهمن 1391, 21:09 عصر
پس اونی که خوندم درست بود خدا خدا میکردم شرمنده نشم

alireza323
سه شنبه 17 بهمن 1391, 21:46 عصر
اگر تکست فارسی شما با unicode نوشته نشده باشد و با فونت های ماقبل تاریخ فارسی نوشته شده است در واقع آکسی کد هست , نمیتوانید در تکست باکس بخوانید برای اینکه آکسی کد از صفر تا (اگر اشتباه نکنم )127 با unicode یکسان است بعد فرق میکند
در قدم اول باید تکست خود به unicode تبدیل کنید البته میتوانید خودتان برنامه ای بنویسید که اینکار را بکند من چند سال پیش همین را در پاسکال نوشته بودم متاسفانه الان ندارم ولی این لینک میتواند بشما کمک کند



http://www.thepcmanwebsite.com/ascii_converter.shtml

ممنون بابت پاسختون، من چی رو باید به یونیکد تبدیل کنم؟ چون چیزی که از فایل میخونم رو که به string تبدیل میکنم، میشه ؟؟؟؟، قبل اون هم بخام این کار رو بکنم، باید data.GetData(DataFormats.Text) رو به یونیکد تبدیل کنم، که نمیدونم چحور باید این کار رو بکنم! میشه راهنمایی کنید؟

alireza323
سه شنبه 17 بهمن 1391, 22:02 عصر
آقا حل شد:)) مشکل از این خط بود :

string allText = data.GetData(DataFormats.Text).ToString()

که باید تبدیل شه به :

string allText = data.GetData(DataFormats.UnicodeText).ToString();