سؤال

لسبب ما، في الآونة الأخيرة و* .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;
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top