я так понимаю, нужно объявлять файл как бинарный,
потом считывать его как последовательность блоками по 4 байт
SLIM писал(а):Кстати всегда интересно было. резчики файлов наверное также устроены. Считывают в массив вксь файл, потом делим на два массива и записываем. Да?
AlexManiac писал(а):А что подразумеваетold761 писал(а):3. Сравнить с исходным файлом
???
если закодировали , то результат сравнения равен False это точно
в этом наглядном примере более подойдет считывание побайтно
т.к. файлы будут небольшого размера и практического применения программа носить никакого не будет, кроме как обучающего.
Хакер писал(а):Тем более - нельзя делать так, дабы те, кто будут смотреть этот пример не взяли этот способ чтения на вооружение.
Тынц внизу.осталось толком разобратся с Кодами Фибоначчи.
Бессмысленный аргумент, если смысл задания - показать, как делается разложение на числа Фибоначчи. Тот, кому нужен оптимальный способ работы с файловой системой, вряд ли будет искать его среди математических задач.
Человек, способный взять на вооружение какой-то необычный способ, должен знать о нем заранее. Должен знать, почему его стоит взять, чем он лучше других.
' *** Побайтовое чтение ***
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
Ты судишь о челах по себе. 9 из 10и обратят внимание только на то, что им нужно.Чел обычно обращает внимание на всё.
1) Процитируй последние 5 увиденных тобой скрытых рекламных призывов.на этом основаны различных техники скрытой рекламы
Скажем чел вообще не знает, как работать с файлами в VB. Или, скажем, он знает только о считывании в строку с помощью Input / Line Input. А тут бамс - считывание в массив байт. Удобно? - Конечно.
1) Процитируй последние 5 увиденных тобой скрытых рекламных призывов.
2) Скрыто рекламируются примитивные вещи (или просто бренды), типа пива и чипсов, которые не нужно осмыслять. Айфон с вайфаем, тачскрином и прочей пирожней "скрыто" не прорекламируешь, нужно знать его характеристики, чтобы сравнить с другими девайсами. Файл-меппинг по "сложности" сравним с айфоном - либо он тебе интересен и ты ознакомишься "явно", либо точно так же "явно" посмотришь и забудешь.
Твой пример сравнения побайтного чтения и чтения целиком это все равно что сравнить 2+2+2 и 2*3.
a$ = b$
For i = 1 To Len(a$)
Mid$(b$, i, 1) = Mid$(a$, i, 1)
Next i
Я хотел предложить считывать целиком, но решил, что пусть лучше автор сделает как хочет/может, побайтно, но зато сам. А вот когда сделает сам, тогда на собственном опыте увидит преимущества других способов.
Хакер писал(а):Это всё равно что сравнивать обычное чтение книги и чтение книги по буквам: открыл нужную страницу, прочитал первую букву, открыл оглавление, открыл нужную страницу, прочитал вторую букву, открыл оглавление, открыл нужную страницу, прочитал третью букву...
Хакер писал(а):И если до этого они несколько лет подряд наблюдали неправильное написание "не" с глаголами, то потом придётся переучиваться.
Хакер писал(а):alibek
Только вот VB уже умеет читать файлы целиком, и учить его этому, заставляя читать побайтно не нужно.
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
2. Закодировать с помощью кода Фибоначчи
AlexManiac писал(а):Xakep абсолютно прав, предлагая файлы, проецируемые в память.
AlexManiac писал(а):да я вот тоже Antonariy поддерживаю, просто не хотел "вступать в споры"
если человек пишет на VB, значит файл-маппинг изучать ему точно лишнее, иначе писал бы на чем-то, слоем ближе к API.
alibek писал(а):Учат не VB, учат программиста.
alibek писал(а):Именно так люди и учатся читать.
Умение воспринимать слова и предложения целиком приходит позже.
Хакер писал(а):Программист не читает файл. Программист приказывает VB читать файлы.
Программист не приказывает VB читать файлы. Программист пишет инструкции, которые будут обработаны компилятором, который напишет машинный код, который прикажет читать файл.
Или это спор ради спора?
Не ты ли возмущался, что новички начинают использовать высокоуровневые библиотеки и не имеют ни малейшего понимания о том, как все работает на нижнем уровне?
Мне действительно так кажется. Всякий раз, ты или Antonariy находите какой-нибудь момент в моём сообщение и начинаете оспаривать его. Причём порою вы доходите до абсурдных аргументов.
Нефига, по сравнению с чтением с диска это даже не тысячная доля времени...- а этот переход сам по себе сжирает уйму процессорного времени.
Ты иногда даешь плохие советы. Плохие не в смысле плохо решающие проблему, а в смысле не подходящие в конкретной ситуации.З.Ы. Что у тебя, Antonariy, за страсть вечно вступать со мной в споры?
Это всё равно что сравнивать обычное чтение книги и чтение книги по буквам
Именно так люди и учатся читать
Это шутка?
в любом случае ваш вариант рабочий
Неправильный подход. Файл (и даже части, на которые его нужно разбить) может быть ну очень большой. Потому читается - пишется частями. Скажем по 32 Kb.
Сорри, ты сам бред не чувствуешь?32 кб тут при том, что это предполагаемый размер кластера.обычно он , как писал хакер, 4 кб (если память не изменяет). удобно читать (эффективно читать) такими вот кусками.
Почему? Если, например, смотреть на то, как двигается головка у жёсткого диска (в случае фрагментированного файла), то в любом случае при чтении файла головка сделает одно и то же количество манипуляций вне зависимости от того, как идёт чтение (манипуляции зависят только от расположения файла на диске).AlexManiac писал(а):целесообразно подбирать размер блока чтения/записи , кратный размеру кластера
Сейчас этот форум просматривают: AhrefsBot, Google-бот и гости: 18