PDA

View Full Version : علت نخواندن فایل xml



khoshblagh
جمعه 08 فروردین 1393, 12:34 عصر
با سلام خدمت دوستان و عرض تبریک سال نو
فایل پیوست را از طریق استخراج از یک adoTable و انتقال به یک کلاینت دیتا ست و در نهایت ثبت به صورت فایل xml ایجاد نمودم. حالا میخوام فایل ایجاد شده را در برنامه ای دیگر به یک کلاینت دیتا ست منتقل نمایم. ولی xml Mapper دلفی 7 آنرا معتبر نمیداند. وقتی بیرون از برنامه میخواهم آنرا باز نمایم هم این ایراد گرقته میشود. با تغییر پسوند به txt و بررسی متوجه شدم مشکل از فیلد shar میباشد که یک رشته غیر عددی است. اگر این رشته را به حروف انگلیسی تبدیل نمایم و یا کلا حروف فارسی را حذف نمایم مشکل برطرف میشود ولی دیگر آن فیلد فاقد اطلاعات معتبر میباشد. خودم فکر میکنم این مشکل مربوط به یونی کد و یا چیزی شبیه آن است. به چه صورت این مشکل برطرف میشود؟ متشکرم
فایل پیوست117375

khoshblagh
یک شنبه 10 فروردین 1393, 12:08 عصر
با سلام
بله مشکل مربوط به یونی کد بود که به زیر مشکل حل شد.
- فایل تولیدی xml را با تغییر پسوند به txt به تکس تبدیل شود.
- فایل را باز و با تغییر نوع آن به uni code آنرا ثبت میکنیم.
- دو باره پسوند فایل را از txt به xml تبدیل میکنیم.
حالا فایل xml معتبر و رشته های فارسی در آن معتبر میباشد.
سئوال :
اگر بخواهیم مراحل فوق را با کد نویسی انجام دهیم . کد مربوطه به چه شکل باید نوشته شود؟ متشکرم

khoshblagh
پنج شنبه 29 خرداد 1393, 01:23 صبح
با سلام
بله مشکل مربوط به یونی کد بود که به زیر مشکل حل شد.
- فایل تولیدی xml را با تغییر پسوند به txt به تکس تبدیل شود.
- فایل را باز و با تغییر نوع آن به uni code آنرا ثبت میکنیم.
- دو باره پسوند فایل را از txt به xml تبدیل میکنیم.
حالا فایل xml معتبر و رشته های فارسی در آن معتبر میباشد.
سئوال :
اگر بخواهیم مراحل فوق را با کد نویسی انجام دهیم . کد مربوطه به چه شکل باید نوشته شود؟ متشکرم

با سلام خدمت دوستان
درخواست کمک در این مورد دارم . متشکرم

khoshblagh
پنج شنبه 29 خرداد 1393, 23:35 عصر
با کد زیر که از یک سایت برداشته شد، مشکل حل شد.

procedure ConvertANSIFileToUTF8File(AInputFileName, AOutputFileName: TFileName);
var
Strings: TStrings;
begin
Strings := TStringList.Create;
try
Strings.LoadFromFile(AInputFileName);
Strings.Text := UTF8Encode(Strings.Text);
Strings.SaveToFile(AOutputFileName);
finally
Strings.Free;
end;
end;