فتح ملف ANSI وحفظ ملف يونيكود باستخدام دلفي
-
03-07-2019 - |
سؤال
لسبب ما، في الآونة الأخيرة و* .UDL الملفات على العديد من أنظمة موكلي لم تتوافق أطول كما تم حفظها مرة واحدة كملفات ANSI، الذي لم يعد متوافقا مع تنسيق ملف UNICODE المتوقع. والنتيجة النهائية هي الحوار الخطأ الذي ينص على "الملف ليس ملف مجمع صالح".
ما هي أسهل طريقة لفتح هذه الملفات برمجيا وحفظ كملف يونيكود؟ أعرف أنني أستطيع أن تفعل ذلك عن طريق فتح كل واحد في المفكرة ثم حفظ باسم نفس الملف ولكن مع "يونيكود" المحدد في القسم الترميز حفظ باسم الحوار، ولكن أنا بحاجة للقيام بذلك في برنامج لخفض الدعم يدعو.
وهذه المشكلة هي سهلة جدا لتكرار، فقط قم بإنشاء ملف txt * في دليل تسميته إلى * .UDL، ثم تحريره باستخدام محرر مايكروسوفت. ثم فتحه في المفكرة وحفظ كملف كملف ترميز ANSI. محاولة فتح UDL من المحرر UDL، وسوف اقول لك الفاسدة. ثم احفظه (باستخدام المفكرة) كملف يونيكود المشفرة، وسوف تفتح من جديد بشكل صحيح.
المحلول
وهذا هو بسيط جدا القيام به مع بلدي حدة TGpTextFile . وسوف أضع معا عينة قصيرة وبعد ذلك هنا.
وكما ينبغي أن تكون بسيطة للغاية مع دلفي الجديد 2009 - أنت ربما استخدامه
وتحرير: وهذا له كيف يمكنك أن تفعل ذلك باستخدام أشيائي في مرحلة ما قبل 2009 DELPHIS
var
strAnsi : TGpTextFile;
strUnicode: TGpTextFile;
begin
strAnsi := TGpTextFile.Create('c:\0\test.udl');
try
strAnsi.Reset; // you can also specify non-default 8-bit codepage here
strUnicode := TGpTextFile.Create('c:\0\test-out.udl');
try
strUnicode.Rewrite([cfUnicode]);
while not strAnsi.Eof do
strUnicode.Writeln(strAnsi.Readln);
finally FreeAndNil(strUnicode); end;
finally FreeAndNil(strAnsi); end;
end;
والترخيص: جزء التعليمات البرمجية أعلاه ينتمي إلى المجال العام. استخدامه على أي حال تريد.
نصائح أخرى
وطيب، وذلك باستخدام دلفي 2009، وكنت قادرا على الخروج مع التعليمات البرمجية التالية التي تظهر في العمل، ولكن هل هو الطريقة الصحيحة للقيام بذلك التحويل؟
var
sl : TStrings;
FileName : string;
begin
FileName := fServerDir+'configuration\hdconfig4.udl';
sl := TStringList.Create;
try
sl.LoadFromFile(FileName, TEncoding.Default);
sl.SaveToFile(FileName, TEncoding.Unicode);
finally
sl.Free;
end;
end;