Re[2]: покластерная запись в файл
От: RedHair  
Дата: 15.10.04 08:14
Оценка:
Во-первых, большое спасибо за ответ.

Во-вторых.

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

PD>Мимоходом маленькое замечание. WriteFile не знает никаких строк в ANSI,

PD>она только записвает байты. Уверен, что здесь все в порядке ?

Я некорректно выразилась.
Дело в том, что нужно задавать именно осмысленные строчки, чтобы потом физически искать их на диске. С точки зрения WriteFile это, естественно, набор байтов.

>> Далее копирую этот файл (xcopy) из командной строки на диск с размером кластера 512б.

>> Файл сильно фрагментируется. Мои текстовые фразы разрываются.
>> В итоге, когда я пытаюсь физически (открывая диск все тем же CreateFile()) на диске найти эти фразы — они не ищутся.

PD>Этого не может быть, потому что это противоречит основным принципам.

PD>Почему — об этом достаточно написал Alex Alexandrov, повторяться не
PD>буду. Насчет того, что ты не можешь найти свои фразы

Почему бы этому не быть? Представьте себе ситуацию — вы создаете большой (100кб, к примеру) файл, куда пишете некие данные. Вполне возможна ситуация, когда файл фрагментируется и данные разорвутся — на физическом уровне.
Далее, если открыть диск (не файл), и начать в нем искать кусок своих данных, вы вполне его не найдете, ведь первая треть его находится в одном кластере, а вторая — совсем в другом, не идущем непосредственно за первым.

>> 0. могут ли фразы в исходном файлек не искаться не из-за дефрагментации, а по другим причинам?


PD>Могут. Причина одна — записал не то


Признаю себя ослом!!!

>> 1. как добиться того, чтобы ничинать запись в файл непосредственно с начала кластера?


PD>Кластеры тебя волновать не должны. Работа с кластерами АБСОЛЮТНО

PD>ПРОЗРАЧНА для приложений, их не касается, какие кластеры выделяются.
PD>Содержимое файла от расположения кластеров не зависит.

Большое спасибо!
Итак ясно, что таблица размещения хранит цепочку кластеров и все данные на уровне приложений будут непрерывны.
Вопрос, тем не менее, остается достаточно интересным, с познавательной точки зрения!!!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.