Вниз
Скачать: CL | DM;

Кирилица в имени файла.   Найти похожие ветки 

 
The Sound ©   (2005-11-12 18:56) [0]

Привет. Сначала часть кода:
var
FileN :string;
fob :file of byte;
FSize :Longint;
...
procedure GetSize(const FileN :String);
begin
assignfile(fob,FileN);
//writeln(FileN);
//readln;
reset(fob);
FSize := FileSize(fob);
CloseFile(fob);
end;

Процедура работает отлично, но если переменная FileN содержит кирилицу, сразу выскакивает ошибка(Некорректное имя файла, фаил не найден). Подскажите как это исправить? Спасибо.
P.S. Если это важно, приложение консолевое.


 
sniknik ©   (2005-11-12 19:47) [1]

> P.S. Если это важно, приложение консолевое.
очень важно, т.к. в консоли часто ввод/вывод в Oem кодировке

т.е. надо использовать (если у тебя это так)
function ToChar(const Str: String): String;
begin
 SetLength(result, Length(Str));
 OemToChar(PChar(Str), PChar(result));
end;

GetSize(ToChar(xxx))

а еще лучше и GetSize поменять на типа такого (© компоненты Indy)
function FileSizeByName(const AFilename: string): Int64;
begin
 with TFileStream.Create(AFilename, fmOpenRead or fmShareDenyNone) do
 try
   Result := Size;
 finally Free; end;
end;


 
The Sound ©   (2005-11-12 21:38) [2]

Спасибо за ответ, но...

При использовании "function ToChar" ( GetSize(ToChar(FileN)); ), вылетает ошибка: "File acess denied"(нет доступа к файлу?).

А при "function FileSizeByName" ( FileSizeByName(FileN); )- "Can"t open file C:\л<‹^‹~ ы;лv‹Э\;|$v‹|$;ыvj\h+ыWSи&ьяя…А.mp3" что-то типа этого =/

Удручающе =( Будут какие мысли по этому поводу?



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.024 c
3-1129226171
rainface
2005-10-13 21:56
2005.11.27
DBgrig переход на следующий столбец


2-1131439107
DinoRay
2005-11-08 11:38
2005.11.27
непонятки с таймером


14-1131294508
Карелин Артем
2005-11-06 19:28
2005.11.27
Угнали аську 7-значную.


2-1131714423
De1uxe
2005-11-11 16:07
2005.11.27
И еще


14-1131453530
Priest
2005-11-08 15:38
2005.11.27
Подскажите интернет магазин




   Наверх