Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата blackeangel:
А вот есть -rwxr-xr-x »
Вы не путаете? Пишут, что есть «rwxr-xr-x», но не «-rwxr-xr-x». То есть группа «rwx» — «владелец», группа «r-x» — «группа» и группа «r-x» — «остальные».

Цитата blackeangel:
есть -rwxr-xr-x, которому соответствует 755.
Получается надо читать посимвольно со второго знака куда то, при этом сравнивая с этими условиями и писать куда-то как числа, переводя строки в числа, потом складывать и снова писать в текст? »
Читать надо регуляркой, разбивая на группы по три символа и одновременно проверяя на допустимость символов, например:
Код: Выделить весь код
([r\-][w\-][x\-])([r\-][w\-][x\-])([r\-][w\-][x\-])
Затем каждую группу из найденного соответствия переводите в двоичный вид по принципу:
  • на позиции 2 символ «-» — значит это будет «0», иначе — «1»;
  • на позиции 1 символ «-» — значит это будет «0», иначе — «1»;
  • на позиции 0 символ «-» — значит это будет «0», иначе — «1».
Для указанного выражения получаем для групп:
  • двоичное 111, т.е. 1·2² + 1·2¹ + 1·2° = 4 + 2 + 1 = 7;
  • двоичное 101, т.е. 1·2² + 0·2¹ + 1·2° = 4 + 0 + 1 = 5;
  • двоичное 101, т.е. 1·2² + 0·2¹ + 1·2° = 4 + 0 + 1 = 5.
Обратное преобразование будет куда проще.

Как это лучше всего будет оформить-реализовать в Java, я Вам, разумеется, не подскажу.

Отправлено: 23:11, 14-06-2017 | #2