2014-12-03 3 views
0

Есть ли функция в Rascal Lib, где я получаю длину в байтах строки?Длина в байтах строки

Немного похожее на функцию getFileLength() в IO.

Мне нужно это для установки смещения в значении местоположения.

+0

Байты не существуют у мошенника. Вы можете думать или даже думать о символах. Юникод. – jurgenv

ответ

0

Да! http://tutor.rascal-mpl.org/Rascal/Rascal.html#/Rascal/Libraries/Prelude/String/size/size.html

Функция размер делает именно то, что вам нужно:

. size ("was") == 3

+0

Уже пробовал, возможно, это проблема с кодировкой. Я хочу подсчитать смещение до сих пор, читая исходный файл java по строкам. Но когда я использую size(), он всегда заканчивается коротким (смещение становится маленьким). Я обнаружил, что это произошло, когда символы \ t появились в начале строки, поэтому я попытался настроить для этого (добавив +1 к смещению). Однако все еще не правильно ... getFileLength() в IO возвращает ту же длину для местоположения, что и в M3, и это описание говорит о байтах, поэтому почему. –

+0

Линии интересны, потому что кодировка символов для строк новой строки может отличаться от различных операционных систем. Для каждой строки в Unix вам нужно добавить 1 и в Windows, вероятно, 2 – jurgenv

+0

Я не знаю, как получить длину файла и байты. Будет ли проверяться позже – jurgenv

Смежные вопросы