Форум: "Основная";
Текущий архив: 2002.11.07;
Скачать: [xml.tar.bz2];
Внизламерский вопрос Найти похожие ветки
← →
_Saha_ (2002-10-29 10:55) [0]Привет всем!
Помогите начинающему. Суть проблемы: есть файл, содержимое которого 00h .. FFh, т.е. все что угодно, размер 32К-64К, необходимо вырвать (выгрызть, и т.п.) кусок, ну скажем 20 байт (размер сразу не известен, и может меняться), поработать с этим куском, потом взять другой кусок и т.д. Как это лучше сделать?
Через read(f) по одному байту, мне кажется будет долго, если вдгуг придется считывать >32K, а через BlockRead у меня как-то коряво получается. Хотелось бы в какую-нибудь строковую переменную выгрузить нужный кусок, да вот беда вылетает ошибка, а про переменную пишет что-то типа ancasable value. А задавать сразу массив типа char, а какой длины?
Спасибо.
← →
Андрей Прокофьев (2002-10-29 10:57) [1]>>а через BlockRead у меня как-то коряво получается?
В чем корявость?!
← →
Anatoly Podgoretsky (2002-10-29 11:02) [2]Динамической
← →
F1 (2002-10-29 12:33) [3]TFileStream удобная вещь!!!
← →
Jack128 (2002-10-29 16:44) [4]>>Хотелось бы в какую-нибудь строковую переменную выгрузить >>нужный кусок, да вот беда вылетает ошибка, а про переменную ?>>пишет что-то типа ancasable value
Не понял что за ошибка но скорее всего суть в том что ты не задаешь длину строки
например :
var s : string; f : file;
begin
...
setLenght(s,i); i-сколько надо читать
BlockRead(F,s[1],i);
...
end;
← →
_saha_ (2002-10-29 18:40) [5]BlockRead(F,s[1],i) - а зачем указывать s[1] ? я же вроде хочу сразу прочитать 20 байт (ну или сколько-то там)
← →
_saha_ (2002-10-29 18:47) [6]Я все осознал, это индекс с которого идет запись. Собственно в этом и была основная проблема. Спасибо.
← →
MBo (2002-10-29 18:47) [7]>_saha_
Ты, видимо, хелп не читал.
Второй параметр - по какому адресу записывать прочитанное из файла. s[1] - как раз начало строки
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.11.07;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.008 c