Кодирование, сравнение, раскодирование файла

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
old761
Начинающий
Начинающий
 
Сообщения: 14
Зарегистрирован: 06.12.2007 (Чт) 18:48
Откуда: Луганск

Кодирование, сравнение, раскодирование файла

Сообщение old761 » 28.05.2008 (Ср) 15:41

Добрый день!
Подскажите пожалуйста, дайте направление в котором следует думать при решении данной задачи:
1. Взять произвольный файл(музыка, картинка, текст)
2. Закодировать с помощью кода Фибоначчи
3. Сравнить с исходным файлом
4. Раскодировать

я так понимаю, нужно объявлять файл как бинарный, потом считывать его как последовательность блоками по 4 байт и далее уже кодировать...
если я не прав и ошибаюсь где-то, поправьте, пожалуйста.
Очень признателен!

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 28.05.2008 (Ср) 16:04

И что? Какой из пунктов вызывает непонятки?
Лучший способ понять что-то самому — объяснить это другому.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 28.05.2008 (Ср) 16:16

я так понимаю, нужно объявлять файл как бинарный,

Файлы в windows все являются бинарными.

потом считывать его как последовательность блоками по 4 байт

Нет, блоками по 4 байта читать абсолютно неполезно, да к тому же долго. Чуть более полезно было бы читать блоками по 4кб (хоть какой-то смысл, в отличие от чтения 4-байтовыми порциями).

Но лучше юзать файл-маппинги. Я вообще, чем дальше, тем больше и больше их использую.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

SLIM
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1840
Зарегистрирован: 04.04.2008 (Пт) 18:21
Откуда: Краснодар

Сообщение SLIM » 28.05.2008 (Ср) 21:23

Кстати всегда интересно было. резчики файлов наверное также устроены. Считывают в массив вксь файл, потом делим на два массива и записываем. Да?
Пишите жизнь на чистовик.....переписать не удастся.....

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 29.05.2008 (Чт) 8:30

SLIM писал(а):Кстати всегда интересно было. резчики файлов наверное также устроены. Считывают в массив вксь файл, потом делим на два массива и записываем. Да?


Неправильный подход. Файл (и даже части, на которые его нужно разбить) может быть ну очень большой. Потому читается - пишется частями. Скажем по 32 Kb.
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

old761
Начинающий
Начинающий
 
Сообщения: 14
Зарегистрирован: 06.12.2007 (Чт) 18:48
Откуда: Луганск

Re: Кодирование, сравнение, раскодирование файла

Сообщение old761 » 29.05.2008 (Чт) 21:51

AlexManiac писал(а):А что подразумевает
old761 писал(а):3. Сравнить с исходным файлом

???
если закодировали , то результат сравнения равен False это точно :)

да это логично и понятно, я просто обозначил все задачи которые стоят передо мной :)


спасибо большое Хакеру и AlexManiac за предложенные варианты!

в этом наглядном примере более подойдет считывание побайтно, т.к. файлы будут небольшого размера и практического применения программа носить никакого не будет, кроме как обучающего.

осталось толком разобратся с Кодами Фибоначчи.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 29.05.2008 (Чт) 22:03

в этом наглядном примере более подойдет считывание побайтно

Но это глупо - делать так.
т.к. файлы будут небольшого размера и практического применения программа носить никакого не будет, кроме как обучающего.

Тем более - нельзя делать так, дабы те, кто будут смотреть этот пример не взяли этот способ чтения на вооружение.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

old761
Начинающий
Начинающий
 
Сообщения: 14
Зарегистрирован: 06.12.2007 (Чт) 18:48
Откуда: Луганск

Сообщение old761 » 29.05.2008 (Чт) 23:25

Хакер писал(а):Тем более - нельзя делать так, дабы те, кто будут смотреть этот пример не взяли этот способ чтения на вооружение.

и правда, достаточный аргумент...

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 30.05.2008 (Пт) 10:28

Бессмысленный аргумент, если смысл задания - показать, как делается разложение на числа Фибоначчи. Тот, кому нужен оптимальный способ работы с файловой системой, вряд ли будет искать его среди математических задач. Человеку, интересующемуся сутью математической задачи, наплевать на способ чтения данных. Человек, способный взять на вооружение какой-то необычный способ, должен знать о нем заранее. Должен знать, почему его стоит взять, чем он лучше других. Человек, не знающий этого, скажет "шозанах?" и заменит тем, что понимает, как я в свое время избавлялся от блек-кодинга в пользу обычного сабклассинга.
И только Хакер способен для Hello World нагородить интерфейсов, а потом обосновать их. :)
осталось толком разобратся с Кодами Фибоначчи.
Тынц внизу.
Лучший способ понять что-то самому — объяснить это другому.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 30.05.2008 (Пт) 11:19

Бессмысленный аргумент, если смысл задания - показать, как делается разложение на числа Фибоначчи. Тот, кому нужен оптимальный способ работы с файловой системой, вряд ли будет искать его среди математических задач.

Зря ты думаешь, что чел, который будет читать пример, тупо проигнорирует ту часть кода, которая отвечает за чтение. Чел обычно обращает внимание на всё. Даже если он не хочет обращать на что-то внимание, оно всё равно обращается (на этом основаны различных техники скрытой рекламы) без его на то желания.

Человек, способный взять на вооружение какой-то необычный способ, должен знать о нем заранее. Должен знать, почему его стоит взять, чем он лучше других.

Да с чего бы это?
Скажем чел вообще не знает, как работать с файлами в VB. Или, скажем, он знает только о считывании в строку с помощью Input / Line Input. А тут бамс - считывание в массив байт. Удобно? - Конечно.
Работает? - Конечно. И поскольку других способов считать файл в байтовый массив чел не знает, он возьмёт именно этот способ на вооружение.

Другое дело, я могу понять твою мысль, что в примере, цель которого состоит не в том, чтобы показать приниципы чтения данных их файлов, а в чём-то другом, не обязательно делать это самое чтение оптимальным. Достаточно написать самый простой вариат, который бы работал, вместо того, чтобы писать 1k строк кода с файл-маппингами.

Вот только вариант с чтением за один раз ничуть не сложнее и ничуть не длиннее варианта с побайтовым-чтением:

Код: Выделить всё
' *** Побайтовое чтение ***
     Open FileName For Binary As #1
     ReDim buffer(0 To lof(1)-1)
     For i = 1 To Lof(1)
          Get #1, i, buffer(i-1)
     Next i
     Close #1



' *** Чтение всего файла сразу ***
     Open FileName For Binary As #1
     ReDim buffer(0 To lof(1)-1)
     Get #1, 1, buffer()
     Close #1


И зачем, спрашивается, добавлять лишний цикл от которого код и длиннее и медленнее?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 30.05.2008 (Пт) 11:53

Чел обычно обращает внимание на всё.
Ты судишь о челах по себе. 9 из 10и обратят внимание только на то, что им нужно.
на этом основаны различных техники скрытой рекламы
1) Процитируй последние 5 увиденных тобой скрытых рекламных призывов.
2) Скрыто рекламируются примитивные вещи (или просто бренды), типа пива и чипсов, которые не нужно осмыслять. Айфон с вайфаем, тачскрином и прочей пирожней "скрыто" не прорекламируешь, нужно знать его характеристики, чтобы сравнить с другими девайсами. Файл-меппинг по "сложности" сравним с айфоном - либо он тебе интересен и ты ознакомишься "явно", либо точно так же "явно" посмотришь и забудешь.
Скажем чел вообще не знает, как работать с файлами в VB. Или, скажем, он знает только о считывании в строку с помощью Input / Line Input. А тут бамс - считывание в массив байт. Удобно? - Конечно.

Твой пример сравнения побайтного чтения и чтения целиком это все равно что сравнить 2+2+2 и 2*3. Или, если угодно, Жигулевское с Миллером. Но никак не с айфоном-маппингом. Человек только-только начал ориентироваться в "арифметике", а ты на него вываливаешь чуть ли не матан. Кто ж спорит, что матан круче? Но ведь его еще и понимать нужно. Если человек не знает чем 1к файл-меппинга лучше, чем пять строчек чтения в массив, то сочтет, что пять строчек лучше, чем 1к. Если только это не отразится заметно на результате.

Я хотел предложить считывать целиком, но решил, что пусть лучше автор сделает как хочет/может, побайтно, но зато сам. А вот когда сделает сам, тогда на собственном опыте увидит преимущества других способов.
Лучший способ понять что-то самому — объяснить это другому.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 30.05.2008 (Пт) 12:26

1) Процитируй последние 5 увиденных тобой скрытых рекламных призывов.

Не процитирую. Я их не видел и не запоминал сознательно. А моё подсознание, вероятно, их зафиксировало.

2) Скрыто рекламируются примитивные вещи (или просто бренды), типа пива и чипсов, которые не нужно осмыслять. Айфон с вайфаем, тачскрином и прочей пирожней "скрыто" не прорекламируешь, нужно знать его характеристики, чтобы сравнить с другими девайсами. Файл-меппинг по "сложности" сравним с айфоном - либо он тебе интересен и ты ознакомишься "явно", либо точно так же "явно" посмотришь и забудешь.

Причём здесь файл-маппинг?
Автор используется у себя в примере побайтовой чтение. Смотрящему пример достаточно запомнить только одно: для чтения всех байтов файла использовался цикл для каждого байта. У него просто образуется связь "Чтение --> Цикл For --> Get". И он будет всякий раз вспоминать эту связь, пока ему не ткнут и не укажут, что Цикл For в этой цепочке нафиг никому не нужен.

Твой пример сравнения побайтного чтения и чтения целиком это все равно что сравнить 2+2+2 и 2*3.

Нет. Это всё равно что сранивать:
Код: Выделить всё
a$ = b$

с
Код: Выделить всё
For i = 1 To Len(a$)
Mid$(b$, i, 1) = Mid$(a$, i, 1)
Next i

Это всё равно что сравнивать обычное чтение книги и чтение книги по буквам: открыл нужную страницу, прочитал первую букву, открыл оглавление, открыл нужную страницу, прочитал вторую букву, открыл оглавление, открыл нужную страницу, прочитал третью букву...

Глупое и бесцельное разбиение атомарной задачи на множество циклов, смысл которого (разбиения, а не множества циклов) никому не понятен.

Я хотел предложить считывать целиком, но решил, что пусть лучше автор сделает как хочет/может, побайтно, но зато сам. А вот когда сделает сам, тогда на собственном опыте увидит преимущества других способов.

Когда код носит обучающий характер, в нём ни при каких обстоятельствах не должна появляться гадость, которой в принципе могут научиться обучающиеся.

В учебниках Русского языка для первоклашек, к первому правилу "Жи Ши пиши с буковй И" идёт пример "Животные не любят жестокого обращения". "не любят" здесь написано раздельно, несмотря на то, что цель этого примера вовсе не в том, чтобы показать как писать не с глаголами, а в совсем другом - в демонстрации реализации правила написания гласных Ы/И после шипящих. Знаешь, для чего так делают? Если отбросить вопрос соблюдения грамотности? Да для того, чтобы в головах первоклашек ни в коем случае не отложилось слово "нелюбят". Они знать не знают и не хотят на данном этапе знать, что такое глагол и как с ним нужно писать частицу не. Но придёт время, и узнают. И если до этого они несколько лет подряд наблюдали неправильное написание "не" с глаголами, то потом придётся переучиваться.

З.Ы. Что у тебя, Antonariy, за страсть вечно вступать со мной в споры?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 30.05.2008 (Пт) 13:05

Хакер писал(а):Это всё равно что сравнивать обычное чтение книги и чтение книги по буквам: открыл нужную страницу, прочитал первую букву, открыл оглавление, открыл нужную страницу, прочитал вторую букву, открыл оглавление, открыл нужную страницу, прочитал третью букву...

Именно так люди и учатся читать.
Умение воспринимать слова и предложения целиком приходит позже.
Lasciate ogni speranza, voi ch'entrate.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 30.05.2008 (Пт) 13:09

Хакер писал(а):И если до этого они несколько лет подряд наблюдали неправильное написание "не" с глаголами, то потом придётся переучиваться.

На самом деле именно так все и делается. Всегда.
Начиная с первого класса, когда говорят, что нельзя вычитать большее из меньшего. Потом когда говорят, что нельзя брать корень из минус единицы. Потом когда говорят, что нельзя делить на ноль.
Естествознание, физика для девятого класса и современная физика учат совершенно разным вещам, порой противоречащим друг другу.
Lasciate ogni speranza, voi ch'entrate.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 30.05.2008 (Пт) 13:09

alibek
Только вот VB уже умеет читать файлы целиком, и учить его этому, заставляя читать побайтно не нужно.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 30.05.2008 (Пт) 13:12

Хакер писал(а):alibek
Только вот VB уже умеет читать файлы целиком, и учить его этому, заставляя читать побайтно не нужно.

Учат не VB, учат программиста.
Не ты ли возмущался, что новички начинают использовать высокоуровневые библиотеки и не имеют ни малейшего понимания о том, как все работает на нижнем уровне?
Lasciate ogni speranza, voi ch'entrate.

Debugger
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1667
Зарегистрирован: 17.06.2006 (Сб) 15:11

Сообщение Debugger » 30.05.2008 (Пт) 13:21

Ужас. Ну и флуд вы развели, в тематичском разделе.
Код: Выделить всё
     Open FileName For Binary As #1
     ReDim buffer(0 To lof(1)-1)
     For i = 1 To Lof(1)
          Get #1, i, buffer(i-1)
     Next i
     Close #1

По примеру Хакер'a. Вроде больше ничего не надо.
2. Закодировать с помощью кода Фибоначчи

Автор, можно поподробней? А точнее - как?

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 30.05.2008 (Пт) 13:22

AlexManiac
Во-первых, ты не в теме. Речь идёт не о маппингах, а о тупости побайтового чтения.

Во-вторых:
AlexManiac писал(а):Xakep абсолютно прав, предлагая файлы, проецируемые в память.

AlexManiac писал(а):да я вот тоже Antonariy поддерживаю, просто не хотел "вступать в споры"
если человек пишет на VB, значит файл-маппинг изучать ему точно лишнее, иначе писал бы на чем-то, слоем ближе к API.

LOL. Синдром Wolfie, однако.

alibek
alibek писал(а):Учат не VB, учат программиста.

alibek писал(а):Именно так люди и учатся читать.
Умение воспринимать слова и предложения целиком приходит позже.


Программист не читает файл. Программист приказывает VB читать файлы.

При этом:
1) VB умеет читать файлы.
2) Программист не умеет приказывать VB читать файлы.

В данном случае, вами, поощряется ситуация когда для того, чтобы научиться приказывать читать, некого БИ заставляют читать по буквам, в то время как этот БИ может прочитать всё разом, ибо умеет.

При этом учиться приказывать читать по буквам, чтобы потом научиться приказывать читать полностью - глупо.

Чтобы приказывать читать по буквам, нужно выучить даже больше приказных команд, чем потребовалось бы для того, чтобы прочитать всё разом.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 30.05.2008 (Пт) 13:24

Хакер писал(а):Программист не читает файл. Программист приказывает VB читать файлы.

Программист не приказывает VB читать файлы. Программист пишет инструкции, которые будут обработаны компилятором, который напишет машинный код, который прикажет читать файл.
Будем забираться дальше в дебри уточнения? Или это спор ради спора?

Если человек будет читать побайтово, а потом ему объяснят, что можно читать сразу блоками, то он сразу поймет эффективность буферизации.
А вот если он будет читать целиком весь файл, он также будет поступать и в дальнейшем. С двухгиговыми файлами, например.
Lasciate ogni speranza, voi ch'entrate.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 30.05.2008 (Пт) 14:00

Программист не приказывает VB читать файлы. Программист пишет инструкции, которые будут обработаны компилятором, который напишет машинный код, который прикажет читать файл.

В рамках данного спора это не имеет никакого значения.

Или это спор ради спора?

Мне действительно так кажется. Всякий раз, ты или Antonariy находите какой-нибудь момент в моём сообщение и начинаете оспаривать его. Причём порою вы доходите до абсурдных аргументов.

Что ты хочешь мне доказать?
... что побайтовый способ лучше одноразового?
... что чтобы программист научился читать одноразовым, он дожен обязательно в своий жизни попробывать читать файлы побайтным способом?
Не ты ли возмущался, что новички начинают использовать высокоуровневые библиотеки и не имеют ни малейшего понимания о том, как все работает на нижнем уровне?

... что побайтный способ помогает лучше понять, как всё работает на нижнем уровне?

Да нифига он не помогает. Наоборот, если бы чел действительно понимал, как всё работает на нижнем уровне, он бы ужаснулся и поклялся никогда не использовать побайтовое чтение, потому как ему было бы очевидно, насколько ужасно многократное вызываение SetFilePointer ... ReadFile ... SetFilePointer ... ReadFile. Он бы знал, что ReadFile вызывает ZwReadFile. А ZwReadFile делает sysenter, т.е. осуществляется переход в ring-0 -- а этот переход сам по себе сжирает уйму процессорного времени. Если бы он ещё знали, что происходит в ring-0 в NtReadFile. Если бы он в конце-концов знали, что операции с байтом процессору делать намного сложнее (т.е. дольше), чем операции, скажем, с двордами...
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 30.05.2008 (Пт) 14:25

Мне действительно так кажется. Всякий раз, ты или Antonariy находите какой-нибудь момент в моём сообщение и начинаете оспаривать его. Причём порою вы доходите до абсурдных аргументов.
- а этот переход сам по себе сжирает уйму процессорного времени.
Нефига, по сравнению с чтением с диска это даже не тысячная доля времени...
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 30.05.2008 (Пт) 14:33

Вобщем-то, мне это надоело. Пусть автор сам для себя решает.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 30.05.2008 (Пт) 16:00

З.Ы. Что у тебя, Antonariy, за страсть вечно вступать со мной в споры?
Ты иногда даешь плохие советы. Плохие не в смысле плохо решающие проблему, а в смысле не подходящие в конкретной ситуации.
В данной ситуации уместно использовать наипростейшее решение, а не наилучшее в техническом плане.
Лучший способ понять что-то самому — объяснить это другому.

arthur2
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1688
Зарегистрирован: 23.01.2008 (Ср) 14:35

Сообщение arthur2 » 30.05.2008 (Пт) 16:31

Это всё равно что сравнивать обычное чтение книги и чтение книги по буквам


Именно так люди и учатся читать

От себя добавлю - и это ужасно. Поскольку, здесь я в теме гораздо больше, чем в программировании, замечу: именно такой способ обучения аукается в дальнейшем повальной дисграфией населения (до 80% русских в той или иной степени дисграфики!) Главный бич начального обучения в школе - чтение вслух. Так проще и удобнее учителю, но это ведёт к закреплению чудовищных навыков, от которых взрослому уже почти невозможно избавится. Простите за флуд, но больная тема :cry:

(замечу в скобках, что реально учат читать всё же не по буквам - как в 19 веке - и даже не по слогам, но в данном контексте это не важно)

AlexManiacРассказ по ссылке здоровский! :lol:

Чтобы правильно задать вопрос, нужно знать большую часть
ответа.
Артур
 
   

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 30.05.2008 (Пт) 16:44

Antonariy
Только вот одноразовое чтение проще побайтового...
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

SLIM
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1840
Зарегистрирован: 04.04.2008 (Пт) 18:21
Откуда: Краснодар

Сообщение SLIM » 30.05.2008 (Пт) 20:56

Это шутка?

Нет это не шутка
в любом случае ваш вариант рабочий

А это видимо ответ............
Неправильный подход. Файл (и даже части, на которые его нужно разбить) может быть ну очень большой. Потому читается - пишется частями. Скажем по 32 Kb.

Вожна не длинна, а концепция. Причем тут 32 кб. может программа сама будет анализировать и делить файл. Принцип один?[/quote]
Пишите жизнь на чистовик.....переписать не удастся.....

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 30.05.2008 (Пт) 21:33

32 кб тут при том, что это предполагаемый размер кластера.обычно он , как писал хакер, 4 кб (если память не изменяет). удобно читать (эффективно читать) такими вот кусками.
Сорри, ты сам бред не чувствуешь?
Обычно размер кластера 4 кб, поэтому эффективно читать кусками по 32?
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 30.05.2008 (Пт) 22:31

Я не понял, почему по 32 К читать оптимальнее чем по 16 К, или чем по 36 К, к примеру?
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

Александр Дмитриев
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 296
Зарегистрирован: 05.01.2005 (Ср) 3:39
Откуда: Санкт-Петербург    Куда: /dev/null

Сообщение Александр Дмитриев » 31.05.2008 (Сб) 2:05

AlexManiac писал(а):целесообразно подбирать размер блока чтения/записи , кратный размеру кластера
Почему? Если, например, смотреть на то, как двигается головка у жёсткого диска (в случае фрагментированного файла), то в любом случае при чтении файла головка сделает одно и то же количество манипуляций вне зависимости от того, как идёт чтение (манипуляции зависят только от расположения файла на диске).
32кб (16кб, 36кб, 33кб) берется из двух ограничений - сверху по оперативной памяти и снизу по эффективности чтения.

old761
Начинающий
Начинающий
 
Сообщения: 14
Зарегистрирован: 06.12.2007 (Чт) 18:48
Откуда: Луганск

Сообщение old761 » 31.05.2008 (Сб) 12:27

можно подвести итог спорам )
в своей задаче я использовал побайтовое чтение файла в массив байт, посоветовавшись с преподавателем и объяснив ситуацию, сказал что можно сделать все с помощью файлмаппинга(про него кстати сразу после 1-ого поста Хакера поискал информацию) или прочитать просто для наглядности (пускай неэкономно) в массив байт, мы пришли к тому, что в этой задаче актуальнее показать кодирование байт, чем использование API-функций операционной системы, на этом и порешили.

про Коды Фибоначчи вот интересная и полезная статья
http://www.goldenmuseum.com/1010FibCodes_rus.html
так же, спасибо, Antonariy за ссылку с другими кодами. думаю будет полезно в ближайшее время )

если кому-то интересно, на данный момент, задача почти сделана, осталось написать функцию, которая будет заниматся раскодировкой )

След.

Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: SemrushBot, Yandex-бот и гости: 26

    TopList