Unc1e  Цитата: я ведь совсем недавно спрашивал
 -- где спрашивал? Видно я как-то пропустил этот вопрос. 
 Дело в том, что указанный тобой пример, конвертит не совсем в юникод. С другой стороны, судя по наличию в примере объявления функции MultiByteToWideChar, ход мысли очевидно был правильный 

 Кстати, а почему не стал делать через MultiByteToWideChar?     
0bject  Цитата: файл имеет кодировку ANSI, а мне необходимо Unicode 
 ............... 
 Создал функцию для конвертации строки  
 function WinToDos
 -- так все-таки, сконвертировать надо в юникод или в дос? Если первое, то смотри [more=пример] 
 [Setup] 
 AppName=My Program 
 AppVerName=My Program v.1.2 
 DefaultDirName={pf}\My Program   
 [_Code] 
 function MultiByteToWideChar(CodePage: UINT; dwFlags: DWORD; lpMultiByteStr: string; 
               cbMultiByte: integer; lpWideCharStr: string; cchWideChar: integer): integer; 
 external 'MultiByteToWideChar@Kernel32.dll stdcall';   
 var 
   str1, str2, wstr: string; 
   res: integer;     
 procedure InitializeWizard(); 
 begin 
   LoadStringFromFile('C:\TMP\ansi1.txt', str1); 
   LoadStringFromFile('C:\TMP\ansi2.txt', str2); 
   str1:= str1+str2;     
   res:= MultiByteToWideChar(0, 0,  str1, (-1),  wstr,  0); 
   wstr:= StringOfChar(#0, res*2 - 2); 
   res:= MultiByteToWideChar(0, 0,  str1, (-1),  wstr,  res); 
   wstr:= Chr($FF) + Chr($FE) + wstr; 
   SaveStringToFile('C:\TMP\unicode2.txt', wstr, False); 
 end; 
  [/more] Правда, пример весьма условный (без проверок и пр.). Но принцип, думаю понятен.