Re[4]: [Erlang] Рекурсивный обход директорий
От: gandalfgrey  
Дата: 26.01.06 13:25
Оценка: 16 (1)
Здравствуйте, Arioch2, Вы писали:

А готовые библиотечные функции использовать что, уже некошерно ?

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.
выводит такое :

{"./server_root/logs/access_disk_log_8888.1",109709}
{"./server_root/logs/access_disk_log_8888.idx",18}
{"./server_root/logs/access_disk_log_8888.siz",13}
{"./server_root/logs/access_log_8888",109797}
{"./server_root/logs/error_disk_log_8888.1",101211}
{"./server_root/logs/error_disk_log_8888.idx",18}
{"./server_root/logs/error_disk_log_8888.siz",13}
{"./server_root/logs/error_log_8888",101227}
{"./server_root/ssl/ssl_client.pem",1266}
{"./server_root/ssl/ssl_server.pem",1266}

берет подкаталоги и т.д. и т.п.
Re[5]: [Erlang] Рекурсивный обход директорий
От: Arioch2  
Дата: 26.01.06 13:36
Оценка:
G>Здравствуйте, Arioch2, Вы писали:

Не правда, не я. А так — хорошо
Re[6]: [Erlang] Рекурсивный обход директорий
От: gandalfgrey  
Дата: 26.01.06 13:54
Оценка:
Здравствуйте, Arioch2, Вы писали:

A>Не правда, не я. А так — хорошо

Пардон, это был Mamut. Не туда взглянул
Re[5]: [Erlang] Рекурсивный обход директорий
От: Mamut Швеция http://dmitriid.com
Дата: 26.01.06 14:54
Оценка:
G>А готовые библиотечные функции использовать что, уже некошерно ?

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.


А что делать с директориями и файлами, которые содержат Юникод в названиях?
... << RSDN@Home 1.2.0 alpha rev. 619>>


dmitriid.comGitHubLinkedIn
Re[6]: [Erlang] Рекурсивный обход директорий
От: gandalfgrey  
Дата: 26.01.06 15:03
Оценка:
Здравствуйте, Mamut, Вы писали:

M>А что делать с директориями и файлами, которые содержат Юникод в названиях?

А как такое может быть ?
По какими ОСями ?
Re[7]: [Erlang] Рекурсивный обход директорий
От: Mamut Швеция http://dmitriid.com
Дата: 26.01.06 15:48
Оценка:
M>>А что делать с директориями и файлами, которые содержат Юникод в названиях?
G>А как такое может быть ?
G>По какими ОСями ?

Под WinXP. Например, у меня сейчас валяется фильм, в названии файла которого — японские символы. Часть музыки на диске — с турецкими символами. Винда настроена под русскую локаль
... << RSDN@Home 1.2.0 alpha rev. 619>>


dmitriid.comGitHubLinkedIn
Re[7]: [Erlang] Рекурсивный обход директорий
От: Arioch2  
Дата: 27.01.06 06:16
Оценка:
M>>А что делать с директориями и файлами, которые содержат Юникод в названиях?
G>А как такое может быть ?
Запрещено? И зачем тогда Эраднгу Юникод ?

G>По какими ОСями ?

А под какими не может ?
Re[8]: [Erlang] Рекурсивный обход директорий
От: gandalfgrey  
Дата: 27.01.06 08:16
Оценка:
Здравствуйте, Mamut, Вы писали:

M>Под WinXP. Например, у меня сейчас валяется фильм, в названии файла которого — японские символы. Часть музыки на диске — с турецкими символами. Винда настроена под русскую локаль


Насколько я знаю, Ерланг с юникодом не работает — так что, скорее всего, тут облом
Re[9]: [Erlang] Рекурсивный обход директорий
От: Arioch2  
Дата: 27.01.06 08:57
Оценка:
Здравствуйте, gandalfgrey, Вы писали:

G>Здравствуйте, Mamut, Вы писали:


M>>Под WinXP. Например, у меня сейчас валяется фильм, в названии файла которого — японские символы. Часть музыки на диске — с турецкими символами. Винда настроена под русскую локаль


G>Насколько я знаю, Ерланг с юникодом не работает — так что, скорее всего, тут облом


Вот это правда облом. У него же все строки юникодные !!!

Это вообще в его либаз отсутствует, или на конкретных платформаx ?
Re[10]: [Erlang] Рекурсивный обход директорий
От: gandalfgrey  
Дата: 27.01.06 09:27
Оценка:
Здравствуйте, Arioch2, Вы писали:

A>Вот это правда облом. У него же все строки юникодные !!!

A>Это вообще в его либаз отсутствует, или на конкретных платформаx ?
Все библиотечные функции работы со строками предполагают, что это ASCII-8. То-есть целое цисло < 256
есть какие-то либы (внешние) для юникода, но сам никогда не использовал
а вот интересно, dir показывает юникодные имена файлов ?
Re[11]: [Erlang] Рекурсивный обход директорий
От: Arioch2  
Дата: 27.01.06 09:47
Оценка:
G>Все библиотечные функции работы со строками предполагают, что это ASCII-8. То-есть целое цисло < 256

Вот это плохо.
Надо будет пристальнее к ejabberd присмотреться, он вероятно свои реализует функции ?

Не было обсуждений насчет юникода в ErLang'e ? ведь наверняка копья уже ломались, неизветсно с каким результатом.
Re[12]: [Erlang] Рекурсивный обход директорий
От: gandalfgrey  
Дата: 27.01.06 10:01
Оценка:
Здравствуйте, 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 битного !
о как !
но вот ввод-вывод по прежнему проблематичен
Re[12]: [Erlang] Рекурсивный обход директорий
От: gandalfgrey  
Дата: 27.01.06 10:13
Оценка:
Здравствуйте, Arioch2, Вы писали:

ВотЬ...
> io:fwrite("~n~s~n",[[0,65],[0,66],[0,67]]]).

^@A^@B^@C
ok
Как бы что-то похожее на правду ? Отдаленно, правда
и в консоли ничего вразумительного не увидеть...
Re[11]: [Erlang] Рекурсивный обход директорий
От: Mamut Швеция http://dmitriid.com
Дата: 27.01.06 10:20
Оценка:
A>>Вот это правда облом. У него же все строки юникодные !!!
A>>Это вообще в его либаз отсутствует, или на конкретных платформаx ?
G>Все библиотечные функции работы со строками предполагают, что это ASCII-8. То-есть целое цисло < 256
G>есть какие-то либы (внешние) для юникода, но сам никогда не использовал
G>а вот интересно, dir показывает юникодные имена файлов ?

Который финдовый? Нет

Explorer — без проблем. Большая часть программ под виндой испытывает проблемы с распознаванием таких файлов/директорий (даже MS Office таким грешит — не знаю, как в последней версии)
... << RSDN@Home 1.2.0 alpha rev. 619>>


dmitriid.comGitHubLinkedIn
Re[11]: [Erlang] Рекурсивный обход директорий
От: Трурль  
Дата: 27.01.06 13:07
Оценка:
Здравствуйте, gandalfgrey, Вы писали:


G>Все библиотечные функции работы со строками предполагают, что это ASCII-8. То-есть целое цисло < 256

Мне кажется, им пофиг 256.
> string:tokens("abc def a"++[1057,1058,1059,32,88]," ").
["abc","def",[97,1057,1058,1059],"X"]
Re[12]: [Erlang] Рекурсивный обход директорий
От: gandalfgrey  
Дата: 30.01.06 07:36
Оценка:
Здравствуйте, Трурль, Вы писали:

G>>Все библиотечные функции работы со строками предполагают, что это ASCII-8. То-есть целое цисло < 256

Т>Мне кажется, им пофиг 256.
Да, я уже заметил свою ошибку и уже даже написал о ней выше. Проблема остается со вводом-выводом — вот он не осуществляет никакого перекодирования. А используемые АПИшные функции — байтовые
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.