Форум: "Основная";
Текущий архив: 2004.01.09;
Скачать: [xml.tar.bz2];
ВнизПроблема в работе с файлами Найти похожие ветки
← →
npAKTuk (2003-12-24 20:41) [0]Суть: надо считать 128 последних байтов файла на заданную последовательность.
h:=fileopen("e:\1.mp3",fmOpenReadWrite);
Buffer := PChar(AllocMem(128 + 1));
fileseek(h,-128,2);
fileread(h,Buffer,128);
fileclose(h);
Вот так я пытался это сделать, но буфер остается пустым!
Люди, помогите! я уже не просто не понимаю!
← →
Тимохов (2003-12-24 20:50) [1]Ты проверь, что у тебя возвращает FileSeek.
If FileSeek is successful, it returns the new position of the file pointer; otherwise, it returns -1.
← →
Тимохов (2003-12-24 20:51) [2]ShowMessage(IntToStr(fileseek(h,-128,2)));
← →
npAKTuk (2003-12-24 20:53) [3]Это проходит. возвращает правильную позицию fileseek(h,0,2)-128.
← →
Автоответчик (2003-12-24 20:54) [4]А как объявляешь Buffer?
← →
npAKTuk (2003-12-24 20:55) [5]var buffer: PChar;
← →
Тимохов (2003-12-24 21:02) [6]Напиши fileread(h,Buffer^,128);
← →
npAKTuk (2003-12-24 21:06) [7]Есть!!! очень большое спасибо!
ЗЫ ой как же я не люблю указатели!
← →
Тимохов (2003-12-24 21:07) [8]Да я сам эти Var Buffer; терпеть не могу.
Дельфи люблю - но это полное г...
← →
Автоответчик (2003-12-24 21:08) [9]
Buffer := PChar(AllocMem(128 + 1));
нельзя делать если ты объявил
var buffer: PChar;
сделай хотя быBuffer: array [0..129] of byte(или char)
и увидишь, что все будет Ок, а там и поймешь, что у тебя не так (это принципиально и лучше ты поймешь это сам - крепче запомнится).
← →
Автоответчик (2003-12-24 21:09) [10]Ну вот, я и опоздал, уже разьяснили ;)
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.01.09;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.01 c