PDA

View Full Version : یک سوال در مورد فایلهای متنی



mohammad-gh
پنج شنبه 28 خرداد 1394, 06:07 صبح
با سلام
با دستورات مربوط به فایل , یک فایل از اطلاعات جدول یوزرهام ایجاد می کنم


Dim ioFile As New System.IO.StreamWriter("D:\test.txt", True)
ioFile.WriteLine(Str(i))
ioFile.Close()

با این فایل می خوام همین اطلاعات رو به بانک اطلاعاتی my sql وارد کنم
برای همین باید این فایل با ایندکینگ utf8_general_ci ایجاد شود , فایلهای با این کدینگ دارای فرمتی به این شکل هستند


INSERT INTO user2 VALUES("1","عمران","1393-12-28");

که حروف فارسی به صورت عمران در میاید
مشکل من این هست که نمی تونم با این کدینگ فایل رو ذخیره کنم ؟
البته دستور نوشتن در فایل یک پارامتر دیگر هم به صورت زیر دارد که با اون هم به این صورتی که من میخوام ذخیره نمیشه

Dim ioFile As New System.IO.StreamWriter("D:\test.txt", True, System.Text.Encoding.UTF8)
لطفا راهنمایی کنید چطور داده ها رو به صورتی استخراج یا ذخیره کنم که به این صورت در فایل ذخیره شود ؟

mohammad-gh
پنج شنبه 28 خرداد 1394, 20:17 عصر
کسی نمی تونه راهنمایی کنه

javad dehnavi
جمعه 29 خرداد 1394, 13:34 عصر
سلام!

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


replace("آ","{-1-}")

و زمان بارگزاری این کار برعکس انجام بشه:


replace("{-1-}","آ")

mohammad-gh
جمعه 29 خرداد 1394, 15:45 عصر
خوب اخه با چه الگوریتیمی
اگر تابع یا الگوریتم خاصی داره بفرمایید تا انجام بدم , چون من که نمی دونم چی به چی باید تبدیل شود

javad dehnavi
جمعه 29 خرداد 1394, 17:08 عصر
الگوریتم خاصی وجود نداره یا اگه داره من بلد نیستم، البته منظور من چیز دیگه ای بود:

حتما میدونید که توی این ذخیره سازی حروف فارسی به شکل های عجیب در میان ولی حروف انگلیسی و کاراکتر های معمول خراب نمیشن و شکل عادی خودشونو دارن
راه بهتر استفاده از فرمت utf-8 برای ذخیره سازی هستش که متاسفانه تو این مورد نمیتونم کمکتون کنم و یه راه حل دیگه اینه که خودتون به ازای هر کاراکتر فارسی یه معادل در نظر بگیرید و کاراکتر ها رو به اون تبدیل کنید.
مثلا میتونید به جای حرف ج از(-j-) استفاده کنید یا هر حرف دلخواه دیگه ای!

یه نمونه سورس براتون گزاشتم امیدوارم به دردتون بخوره.

mohammad-gh
شنبه 30 خرداد 1394, 15:12 عصر
متاسفانه این هم مشکل من رو حل نکرد