А готовые библиотечные функции использовать что, уже некошерно ?
start()->
L1=filelib:fold_files(".","[a-zA-Z0-9_]*",true,fun(X,A)->[{X,filelib:file_size(X)}|A] end,[]),
[io:fwrite("~p~n",[X])||X<-L1],
ok.
выводит такое :
Здравствуйте, Mamut, Вы писали:
M>А что делать с директориями и файлами, которые содержат Юникод в названиях?
А как такое может быть ?
По какими ОСями ?
M>>А что делать с директориями и файлами, которые содержат Юникод в названиях? G>А как такое может быть ? G>По какими ОСями ?
Под WinXP. Например, у меня сейчас валяется фильм, в названии файла которого — японские символы. Часть музыки на диске — с турецкими символами. Винда настроена под русскую локаль
M>>А что делать с директориями и файлами, которые содержат Юникод в названиях? G>А как такое может быть ?
Запрещено? И зачем тогда Эраднгу Юникод ?
G>По какими ОСями ?
А под какими не может ?
Здравствуйте, Mamut, Вы писали:
M>Под WinXP. Например, у меня сейчас валяется фильм, в названии файла которого — японские символы. Часть музыки на диске — с турецкими символами. Винда настроена под русскую локаль
Насколько я знаю, Ерланг с юникодом не работает — так что, скорее всего, тут облом
Здравствуйте, gandalfgrey, Вы писали:
G>Здравствуйте, Mamut, Вы писали:
M>>Под WinXP. Например, у меня сейчас валяется фильм, в названии файла которого — японские символы. Часть музыки на диске — с турецкими символами. Винда настроена под русскую локаль
G>Насколько я знаю, Ерланг с юникодом не работает — так что, скорее всего, тут облом
Вот это правда облом. У него же все строки юникодные !!!
Это вообще в его либаз отсутствует, или на конкретных платформаx ?
Здравствуйте, Arioch2, Вы писали:
A>Вот это правда облом. У него же все строки юникодные !!! A>Это вообще в его либаз отсутствует, или на конкретных платформаx ?
Все библиотечные функции работы со строками предполагают, что это ASCII-8. То-есть целое цисло < 256
есть какие-то либы (внешние) для юникода, но сам никогда не использовал
а вот интересно, dir показывает юникодные имена файлов ?
Здравствуйте, Arioch2, Вы писали:
A>Вот это плохо. A>Надо будет пристальнее к ejabberd присмотреться, он вероятно свои реализует функции ? A>Не было обсуждений насчет юникода в ErLang'e ? ведь наверняка копья уже ломались, неизветсно с каким результатом.
В мэйл-листе эту тему долго пережевывали, но ни к чему определенному не пришли
Есть либа SO WAP !, в ней поддержка юникода сделана
В принципе, стандартные функции переделать не сильно напряжно будет
хотя ! >string:len([0,65],[0,66],[0,67]]).
3 >string:chr([0,65],[0,66],[0,67]],[0,66]).
2 >string:tokens([0,65],[0,66],[0,67]],[0,66]]).
[[0,65]],[0,67]]]
работает для 16 битного !
о как !
но вот ввод-вывод по прежнему проблематичен
A>>Вот это правда облом. У него же все строки юникодные !!! A>>Это вообще в его либаз отсутствует, или на конкретных платформаx ? G>Все библиотечные функции работы со строками предполагают, что это ASCII-8. То-есть целое цисло < 256 G>есть какие-то либы (внешние) для юникода, но сам никогда не использовал G>а вот интересно, dir показывает юникодные имена файлов ?
Который финдовый? Нет
Explorer — без проблем. Большая часть программ под виндой испытывает проблемы с распознаванием таких файлов/директорий (даже MS Office таким грешит — не знаю, как в последней версии)
Здравствуйте, Трурль, Вы писали:
G>>Все библиотечные функции работы со строками предполагают, что это ASCII-8. То-есть целое цисло < 256 Т>Мне кажется, им пофиг 256.
Да, я уже заметил свою ошибку и уже даже написал о ней выше. Проблема остается со вводом-выводом — вот он не осуществляет никакого перекодирования. А используемые АПИшные функции — байтовые