ActionScript ByteArray манипулирование - PullRequest
1 голос
/ 29 июля 2011

У меня есть некоторые двоичные данные, и я не могу сохранить их в строке, поэтому я использую ByteArray. Проблема в том, что мне нужны некоторые функции со строками, а точнее мне нужны методы charAt, substr, indexOf и substring.

1 Ответ

1 голос
/ 29 июля 2011

Это было бы довольно легко реализовать.Я могу опубликовать код, если хотите.Похожа ли строка на данные?Или это нужно рассматривать как произвольный двоичный файл?В каком случае ширина символов (например, 8-битная, 16-битная)?

public static function charAt(bytes:ByteArray, index:int):String {
    if (bytes.length <= index) return null; 
    return String.fromCharCode(bytes[index]); 
} 

public static function substr(bytes:ByteArray, start:int, length:int=0):String { 
    var res:ByteArray = bytes.readBytes(bytes, start, length); 
    return res.toString(); 
} 

public static function substring(bytes:ByteArray, start:int, end:int=0):String { 
    return substr(bytes, start, end-start); 
}

public static function indexOf(bytes:ByteArray, str:String):int { 
    for (var i:int=0; i<bytes.length; i++) { 
        var strPos:int = 0; 
        while (String.fromCharCode(bytes[i+strPos]) == str.charAt(strPos)) { 
            strPos++; 
            if (strPos == str.length) return i; 
        } 
    } 
    return -1; 
}
...