Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2005.11.27;
Скачать: [xml.tar.bz2];

Вниз

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

 
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 вся ветка

Форум: "Начинающим";
Текущий архив: 2005.11.27;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.44 MB
Время: 0.018 c
3-1129121629
Goral
2005-10-12 16:53
2005.11.27
Фильтрация таблиц БД


14-1131510557
DelphiN!
2005-11-09 07:29
2005.11.27
Отказ от курения, раздражительность


14-1131354036
kjgg
2005-11-07 12:00
2005.11.27
Boot-диск


2-1131802956
zxc
2005-11-12 16:42
2005.11.27
Народ подскажите неопытному


2-1131355369
Robbins
2005-11-07 12:22
2005.11.27
Ошибка в ShellExecute.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский