Attention! Your ePaper is waiting for publication!
By publishing your document, the content will be optimally indexed by Google via AI and sorted into the right category for over 500 million ePaper readers on YUMPU.
This will ensure high visibility and many readers!
изм<strong>е</strong>н<strong>е</strong>ни<strong>е</strong> порядка байтов<br />
П<strong>е</strong>р<strong>е</strong>м<strong>е</strong>щ<strong>е</strong>ни<strong>е</strong> данных Внутри массиВа байтоВ<br />
Так как вс<strong>е</strong> д а н н ы <strong>е</strong> в и т о г<strong>е</strong> п <strong>е</strong>р <strong>е</strong>к о д и р у ю тся в б а й т ы ,<br />
ф ай л и м <strong>е</strong><strong>е</strong>т см ы сл п р <strong>е</strong>дставить в ви д<strong>е</strong> б о л ь ш о г о м а с с и <br />
в а б а й т о в . С п о со б ы ч т<strong>е</strong>н и я таких м асси вов и за п и си в<br />
н и х вы уж <strong>е</strong> зн а<strong>е</strong>т<strong>е</strong>.<br />
чт<strong>е</strong>ни<strong>е</strong> и запись файлов .NET использу<strong>е</strong>т Unicode для хран<strong>е</strong>ния симВолоб и т<strong>е</strong>кста Т и п ы , хр а н я щ и <strong>е</strong> т<strong>е</strong> к с т и сим волы , — s t r i n g и c h a r — в пам я ти х р а н я т и н ф о р м а ц и ю в Ю н и к о д <strong>е</strong> . П р и записи д а н н ы х в ф айл с о х р а н я ю тся сим- волы Ю н и к о д . С оздайт<strong>е</strong> н о в ы й п р о <strong>е</strong> кт, п о с тр о й т<strong>е</strong> ф орм у с тр <strong>е</strong> м я кноп- кам и, ч т о б ы п о см о тр <strong>е</strong> ть н а р аботу м <strong>е</strong>тодов F i l e . W r i t e A l l B y t e s {) и R e a d A l I B y t e s () и понять, как и м <strong>е</strong>н н о осущ <strong>е</strong>ствля<strong>е</strong>тся зап ись в ф айл. _ ^ ^ у Т ) . Р а Ж Н 0 Н и 0 / ^ ^ Ф ^ Запиш <strong>е</strong>м в ф айл обычную строку и прочита<strong>е</strong>м <strong>е</strong><strong>е</strong>. В оспользуйт<strong>е</strong>сь м <strong>е</strong>тодом W r i t e A l l T e x t { ) , ч т о б ы заставить п <strong>е</strong> рвую к н о п к у записы вать с тр о к у «Eureka!» в ф айл «eureka.txt». Зат<strong>е</strong>м создайт<strong>е</strong> массив байто в e u r e k a B y t e s , п р о ч и та й т<strong>е</strong> в н <strong>е</strong> го из ф айла и вы в<strong>е</strong>дит<strong>е</strong> п о л у ч <strong>е</strong> н н ы й р<strong>е</strong>зультат: F i l e . W r it e A llT e x t ( " e u r e k a . t x t " , "E u reka!" ); b y t e [ ] e u r e k a B y te s = F i l e .R e a d A l l B y t e s ( " e u r e k a .t x t " ) ; f o r e a c h (b y te b i n e u r e k a B y te s) ^ М<strong>е</strong>тод R e a d A llB y te s Q возвраща<strong>е</strong>т ^ c o n s o l e w r i t e (" f 0 ) " b) ■ V сш лку на новш массив, с^<strong>е</strong>ржащии C o n s o l e . w r i t e ( 10} , ) , Saumbi, п р о ч и т а н н ы <strong>е</strong> и з ф а й л а . C o n s o le .W r ite L in e O ; Н а КО Н С О Л Ь буд<strong>е</strong>т вы в<strong>е</strong>д<strong>е</strong>но: 6 9 117 114 lO i 107 97 3 3 . Н о <strong>е</strong>сл и открыть файл в прилож<strong>е</strong>нии Simple Text Editor, вы уви ди т<strong>е</strong> строку «Eureka!» О П усть вторая кнопка отобража<strong>е</strong>т байты в ш <strong>е</strong>стнадцат<strong>е</strong>ричной сист<strong>е</strong>м <strong>е</strong>. Ч и сла в это й сист<strong>е</strong>м<strong>е</strong> показы ваю тся н<strong>е</strong> то л ько в п р и л о ж <strong>е</strong> н и и C haracter М ар, поэтом у им <strong>е</strong><strong>е</strong>т смысл научиться с н и м и работать. К од обработчика со б ы ти й для в то р о й к н о п к и долж <strong>е</strong>н о т личаться м<strong>е</strong>тодом C o n s o l e . W r it e ( ) , для к о то р о го напиш ит<strong>е</strong>: гопчпТр W r it e ( " f 0 -x 2 ) " Ь) ■ с и с т <strong>е</strong> м <strong>е</strong> ы т о л ь з у к )т с я числа C o n s o le .w r it e ( I 0 .X 2 ) ' от о до я и буквы от А до F. Так 6 8 рябно 1 0 7 . ^ В и т о г<strong>е</strong> м <strong>е</strong>то д W r i t e O буд<strong>е</strong>т вы водить п ар ам <strong>е</strong>тр О (п <strong>е</strong>рв ы й п о сл <strong>е</strong> в ы в оди м ой с т р о к и )Л в ви д<strong>е</strong> кода. П о эт о м у вы у в и ди т<strong>е</strong> с<strong>е</strong>м ь байтов: 45 75 72 65__6Ь 61 21^1—-------------------- --------- о А тр<strong>е</strong>тья кнопка должна выводить буквы <strong>е</strong>вр<strong>е</strong>йского алдювита В <strong>е</strong> р н и т<strong>е</strong> сь в Таблицу сим волов (C h a ra cte r М а р ) и дважды щ <strong>е</strong>лкнит<strong>е</strong> на сим вол<strong>е</strong> S hin, ч т о б ы добавить <strong>е</strong>го в пол<strong>е</strong>. П род<strong>е</strong>лайт<strong>е</strong> это для оста л ьн ы х сим волов в слов<strong>е</strong> «Shalom»: L am ed (U + 0 5 D C ), Vav (U +05D 5) и M e m (U-t-05DD). В код об р а б о тчика с о б ы ти й для тр <strong>е</strong> ть<strong>е</strong>й к н о п к и добавьт<strong>е</strong> ско п и р о в а н н ы <strong>е</strong> буквы и добавьт<strong>е</strong> парам <strong>е</strong>тр E n c o d i n g . U n ic o d e : F i l e .W r it e A l l T e x t ( " e u r e k a .tx t" , "Ш *?Ш" , E n c o d in g .U n ic o d e ) ; О б р а ти л и вним а н и <strong>е</strong> на обратный порядок букв посл<strong>е</strong> вставки? Д <strong>е</strong>ло в то м , ч т о <strong>е</strong> вр<strong>е</strong>йски <strong>е</strong> слова ч и та ю тс я справа нал<strong>е</strong>во. З апустит<strong>е</strong> код и п о с м о тр и т<strong>е</strong> на п о л у ч <strong>е</strong> н н ы й р<strong>е</strong>зультат: f f f e <strong>е</strong>9 05 dc 05 d5 05 dd 0 5 . П <strong>е</strong> р в ы <strong>е</strong> два сим вола — «FF ЕЕ», Ч Т О означа<strong>е</strong>т с тр о ку из двухб а й то в ы х сим волов. О ста л ьны <strong>е</strong> б а й ты пр<strong>е</strong>дста вл яю т со б о й буквы <strong>е</strong> в р <strong>е</strong> й ского алф авита, - н о п <strong>е</strong> р <strong>е</strong> в<strong>е</strong>рнуты <strong>е</strong>, та к U +05E 9 буд<strong>е</strong>т показано как <strong>е</strong>9 05. Н о <strong>е</strong>сли о т к р ы т ь ф айл в ваш<strong>е</strong>м п р и л о ж <strong>е</strong> н и и S im p le T ext E d ito r, вс<strong>е</strong> буд<strong>е</strong>т вы гляд<strong>е</strong>ть п р а в и л ьн о ! дальш<strong>е</strong> ► 435
изм<strong>е</strong>н<strong>е</strong>ни<strong>е</strong> порядка байтов П<strong>е</strong>р<strong>е</strong>м<strong>е</strong>щ<strong>е</strong>ни<strong>е</strong> данных Внутри массиВа байтоВ Так как вс<strong>е</strong> д а н н ы <strong>е</strong> в и т о г<strong>е</strong> п <strong>е</strong>р <strong>е</strong>к о д и р у ю тся в б а й т ы , ф ай л и м <strong>е</strong><strong>е</strong>т см ы сл п р <strong>е</strong>дставить в ви д<strong>е</strong> б о л ь ш о г о м а с с и в а б а й т о в . С п о со б ы ч т<strong>е</strong>н и я таких м асси вов и за п и си в н и х вы уж <strong>е</strong> зн а<strong>е</strong>т<strong>е</strong>. Этот код созда<strong>е</strong>т массив байтов с названи<strong>е</strong>м П рив<strong>е</strong>т ст ви<strong>е</strong>», открыва<strong>е</strong>т входящий поток и данны<strong>е</strong> в байты массива о нул<strong>е</strong>вого до ш<strong>е</strong>стого. Ы<strong>е</strong>\\о\и byte[] greeting; greeting = File.ReadAllBytes(filename Это статич<strong>е</strong>ский м<strong>е</strong>тод для объ<strong>е</strong>кта Arraцs, м<strong>е</strong>няюищи порядок байтов н й обратный. Зд<strong>е</strong>сь он использу<strong>е</strong>тся, чтобы показать, как вн<strong>е</strong>с<strong>е</strong>нны<strong>е</strong> в массив байтоб изм<strong>е</strong>н<strong>е</strong>ния б л м я ю т Нй вид чита<strong>е</strong>мой из