Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.12.2007, 17:00   #1
vitalik007
Дельфист
Форумчанин
 
Аватар для vitalik007
 
Регистрация: 14.08.2007
Сообщений: 317
По умолчанию прочитать последние х байт в файле!!

Как мне прочитать последние х байт в файле!!
И сверить что там написано с каким-то текстом

Я делаю так
var zagl:array[0..5]of char;
begin
........
sourcefile:=createfile(Pchar(Opendi a.filename),GENERIC_READ,0,nil,OPEN _EXISTING,0,0);
setfilePointer(sourcefile,6,nil,FIL E_END);
readfile(sourcefile,ZAGL,sizeof(zag l),temp,nil);


end.

showmessage(zagl)-выдает ' '
showmessage(inttostr(temp))-выдает почему то 0
ICQ-465033557
WINDOWS CE THE BEST
vitalik007 вне форума Ответить с цитированием
Старый 08.12.2007, 18:10   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Прочитаем последние 6 байтиков в буфер, все время проверяя промежуточные результаты:
Код:
var sourcefile: THandle;
    len,men: integer;
    Buffer: PChar;
    iBytesRead: Integer;
begin
sourcefile:=CreateFile(PChar(Opendia.filename), GENERIC_READ, FILE_SHARE_READ, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
len:=FileSeek(sourcefile, 0, 2);
Buffer:=PChar(AllocMem(7));
men:=FileSeek(sourcefile, len-6, 0);
if men=len-6 then
iBytesRead:=FileRead(sourcefile,Buffer^, 6);
end;
mihali4 вне форума Ответить с цитированием
Старый 08.12.2007, 18:37   #3
vitalik007
Дельфист
Форумчанин
 
Аватар для vitalik007
 
Регистрация: 14.08.2007
Сообщений: 317
По умолчанию

Спасибо но вот я придумал еще
Код:
var zagl:array[0..5]of char;
begin
........
sourcefile:=createfile(Pchar(Opendia.filename),GEN ERIC_READ,0,nil,OPEN_EXISTING,0,0);
setfilePointer(sourcefile,-6,nil,FILE_END);
readfile(sourcefile,ZAGL,sizeof(zagl),temp,nil);


end.
ICQ-465033557
WINDOWS CE THE BEST
vitalik007 вне форума Ответить с цитированием
Старый 08.12.2007, 18:39   #4
vitalik007
Дельфист
Форумчанин
 
Аватар для vitalik007
 
Регистрация: 14.08.2007
Сообщений: 317
По умолчанию

Спасибо но можно моим способом токо вместо 6 указывать -6
ICQ-465033557
WINDOWS CE THE BEST
vitalik007 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
1 байт 9 бит ?! Иллидан Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 4 13.04.2008 12:47
байт режима адресации fermat_c Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 10.04.2008 15:39
записать байт файл мандарин Общие вопросы Delphi 8 09.05.2007 20:45
последНИЕ 3 символа... PAVEL315 Общие вопросы Delphi 6 23.02.2007 11:20