Re[3]: Как прочитать имя файла с иероглифами?
От: Oleg A. Bachin Украина  
Дата: 29.06.05 08:46
Оценка: 9 (1)
Здравствуйте, Jone, Вы писали:

J>Здравствуйте, Oleg A. Bachin, Вы писали:


OAB>>rtfm unicode


J>хороший совет, но по существу, хотелось бы совет более конкретный — требуется не только имя файла получить, его же ещё открыть и прочитать через TFileStream хочется, а тот, зараза, в какчестве имени файла только TString кушать хочет, так что вопрос всё равно открыт. (спасибо за ссылку на rtfm unicode!)


в делфях есть так называемый THandledStream, твой TFileStream — наследник. смотрим:
constructor TFileStream.Create(const FileName: string; Mode: Word; Rights: Cardinal);
begin
  if Mode = fmCreate then
  begin
    inherited Create(FileCreate(FileName, Rights));
    if FHandle < 0 then
      raise EFCreateError.CreateResFmt(@SFCreateErrorEx, [ExpandFileName(FileName), SysErrorMessage(GetLastError)]);
  end
  else
  begin
    inherited Create(FileOpen(FileName, Mode));
    if FHandle < 0 then
      raise EFOpenError.CreateResFmt(@SFOpenErrorEx, [ExpandFileName(FileName), SysErrorMessage(GetLastError)]);
  end;
end;


думаю не проблема будет написать свой TFileStreamW, в котором использовать уникоде версии FileCreate и FileOpen.
... << RSDN@Home 1.1.4 beta 6a rev. 436>>
Best regards,
Oleg A. Bachin
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.