>Форум Mozilla Россия http://forum.mozilla-russia.org/index.php >Разработка http://forum.mozilla-russia.org/viewforum.php?id=18 >Вопрос по типам данных http://forum.mozilla-russia.org/viewtopic.php?id=10856 |
Sky > 10-06-2006 19:40:53 |
Вопрос из области совсем чайницких. Надо передать его в функцию как четырехбайтное беззнаковое целое в формате, когда первым идет старший байт, последним младший. Если у кого есть ссылки на хорошие базовые описания Java на русском, с благодарностью приму. |
mozilla_user > 11-06-2006 16:08:08 |
Sky пишет
Было бы cool - если бы с этого и начали то есть про Java вопросик на вскидку лекция про Java на нашем (не утверждаю что это самое лучшее) по англицкий |
Sky > 11-06-2006 17:58:00 |
mozilla_user
Да что-то ничего путного не попадается. В основном описания на очень элементарном уровне и какие-то отрывочные сведения. А по теме вопроса, ничего сказать не можете? |
mozilla_user > 11-06-2006 23:48:32 |
Sky пишет
Да не начем! Sky пишет
Однако разбираться с частностями вам лучше сюда (но не настаиваю (те же домены Верно есть ещё форумы по Jave - которые живут и как ветки других форумов. Однако прежде всего лучше бы вам зайти на http://sun.com или http://ru.sun.com/ |
Sky > 13-06-2006 16:29:46 |
Че-то я ступил и всех жестоко обманул. |
Sky > 13-06-2006 19:51:59 |
Чтобы было проще понять, что требуется (а то я свои посты и сам не всегда понимаю ): Выделить код Код:function writeFile( sFilePath, sFileContent ) { try { var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile); file.QueryInterface(Components.interfaces.nsIFile); file.initWithPath( sFilePath ); if( file.exists() == true ) file.remove( false ); var strm = Components.classes["@mozilla.org/network/file-output-stream;1"].createInstance(Components.interfaces.nsIFileOutputStream); strm.QueryInterface(Components.interfaces.nsIOutputStream); strm.QueryInterface(Components.interfaces.nsISeekableStream); strm.init( file, 0x04 | 0x08, 420, 0 ); strm.write( sFileContent, sFileContent.length ); strm.flush(); strm.close(); } catch(ex) { window.alert(ex.message); } } дальше используем эту функцию var n = 0x12345678; var str = "test"; var data; <что-то делаем> writeFile("/home/sky/test.txt", data); В переменную data надо загнать каким-то образом n и str; З.Ы. "/home/sky/test.txt" надо заменить на свой путь к файлу. В windows это будет что-то вроде "D:\\test.txt". |
mozilla_user > 14-06-2006 14:35:27 |
Sky пишет
Делаем "что-то" например вот так Выделить код Код://f: function writeFile(sFilePath, num_as_hex, str_as_string) { try { var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile); file.initWithPath(sFilePath); if (!file.exists()) file.create(0x00, 0644); var strm = Components.classes["@mozilla.org/network/file-output-stream;1"].createInstance(Components.interfaces.nsIFileOutputStream); strm.init(file, (0x20 | 0x04), 00004, null); //calling converting function var output_str = convertToStrangeFormat(num_as_hex, str_as_string); strm.write(output_str, output_str.length); strm.flush(); strm.close(); } catch(ex) { window.alert(ex.message); } } //f: converting function function convertToStrangeFormat(num_as_hex, str_as_string) { var str = ""; if (num_as_hex && str_as_string) { var shex = num_as_hex.toString(16); //на домашнее задание :-) str_as_string.length ......... for (var i=0; i<shex.length; i+=2) str += "0x" + shex.substring(i, (i + 2)) + ":"; str += str_as_string.replace(/(\w)/gi, "$1:"); return str.substring(0, str.length - 1); } return str; } //calling writeFile("/home/sky/test.txt", 0x12345678, "test"); Получаем: 0x12:0x34:0x56:0x78:t:e:s:t Таким образом преобразование take str_as_string.length остаётся Вам на домашнее задание ;) |
Sky > 16-06-2006 00:06:46 |
mozilla_user
Здесь ключевое слово байт. 0x12, 0x34 и т.д. это байты (их шестнадцатиричные значения). 't', 'e' - тоже отдельные байты. Выделить код Код:function UL(n) { var temp = n; var bytes = ""; for (var i = 0; i < 4; i++) { bytes += String.fromCharCode(temp % 256); temp /= 256; } return bytes; } function LPS(str) { return UL(str.length)+str; } Результат выполнения функции UL - четыре байта с числом (оказалось, надо все-таки с младшего байта начинать, описание протокола врало), LPS - результат та самая строка с префиксированной длинной. |
mozilla_user > 16-06-2006 01:35:59 |
Sky пишет
Ржу над собой! Получается я вас совсем неправильно понял. У меня ещё была такая мысль - но я её отверг как вредную |
Sky > 16-06-2006 19:32:20 |
|