Pergunta

Por alguma razão, ultimamente, o * .UDL arquivos em muitos dos meus sistemas cliente não compatíveis são como eles já foram salvos como arquivos ANSI, que já não é compatível com o formato de arquivo Unicode esperado. O resultado final é um diálogo de erro que afirma que "o arquivo não é um arquivo composto válido".

O que é a maneira mais fácil para abrir programaticamente esses arquivos e salvar como um arquivo unicode? Eu sei que posso fazer isso abrindo cada um no bloco de notas e, em seguida, salvar como o mesmo arquivo, mas com o "unicode" selecionada na seção de codificação de diálogo Salvar como, mas eu preciso fazer isso no programa para reduzir o apoio chamadas.

Este problema é muito fácil de duplicar, basta criar um arquivo .txt * em um diretório, renomeie para * .UDL, em seguida, editá-lo usando o editor de microsoft. Em seguida, abra-o no bloco de notas e salvar como o arquivo como um ANSI codificado arquivo. Tente abrir a UDL a partir do editor UDL e ele vai dizer-lhe o seu corrupto. depois salvá-lo (usando o bloco de notas) como um Unicode codificado arquivo e ele vai abrir novamente corretamente.

Outras dicas

Ok, usando o Delphi 2009, eu era capaz de chegar com o seguinte código que aparece ao trabalho, mas é a maneira correta de fazer esta conversão?

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;
scroll top