Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Данные в файле 
:(
    Опции темы
Rays
Дата 29.11.2009, 17:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 21.2.2009

Репутация: нет
Всего: нет



Здравствуйте! 
В коде  что-то упустил - не могу понять, почему не работает, помогите, пожалуйста разобраться!
Необходимо в файле ставить первые 20 байт, остальное удалить.
Приведу отрезок кода, где работаю именно с файлом.
Код

openf:  push    ds
lds    dx,namadr       ; адрес найденного имени в ds:dx
mov    ax,3d01h        ; открыть только для записи
int    21h
pop    ds
jnc    ukazf              
lea    dx,ertxt2
jmp    errors

ukazf:
XOR cx,cx
mov dx,0015h
mov ax,4200h             ; переношу указатель от начала файла на 20 байт
int 21h
jnc    closef
lea    dx,ertxt3
jmp    errors
closef: mov    bx,ihandle    ; взять номер искомого файла
mov    ah,3eh    ; закрыть файл
int    21h

Т.е.  здесь я открываю необходимый файл, перемещаю указатель на 20 байт от начала и закрываю. По идее, все данные, что после указателя, должны удалиться? 

Еще пробовал вариант считать 20 байт и переписать их заново от начала файла:
Код

openf:  push    ds
lds    dx,namadr       ; адрес найденного имени в ds:dx
mov    ax,3d02h        ; открыть для чтения и записи
int    21h
pop    ds
jnc    readf
lea    dx,ertxt2
jmp    errors
readf:  mov    bx,ax    ; номер искомого файла
mov    ihandle,ax    ;    сохранить его
mov    cx,0015h    ;    число читаемых байтов - 20
lea    dx,buffer    ;    адрес буфера в/в
mov    ah,3fh    ;    читать из файла
int    21h
jnc    ukazf
lea    dx,ertxt3
jmp    errors
ukazf: push ax
XOR cx,cx
XOR dx,dx
mov ax,4200h
int 21h
jnc    writef
lea    dx,ertxt5
jmp    errors
writef: pop ax
mov    cx,ax    ; число прочитанных байтов
mov    bx,ihandle      ; взять номер искомого файла
lea    dx,buffer    ;    адрес буфера в/в
XOR al,al
mov    ah,40h          ; писать в файл
int    21h
jnc    closef
lea    dx,ertxt4
jmp    errors
closef: mov    bx,ihandle    ; взять номер искомого файла
mov    ah,3eh    ; закрыть файл
int    21h


Это сообщение отредактировал(а) Rays - 29.11.2009, 18:14
PM MAIL   Вверх
airyashov
Дата 30.11.2009, 08:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 284
Регистрация: 1.7.2008

Репутация: 2
Всего: 6



Цитата(Rays @  29.11.2009,  17:31 Найти цитируемый пост)
Т.е.  здесь я открываю необходимый файл, перемещаю указатель на 20 байт от начала и закрываю. По идее, все данные, что после указателя, должны удалиться? 

где Вы прочитали такую чушь


Цитата(Rays @  29.11.2009,  17:31 Найти цитируемый пост)
ще пробовал вариант считать 20 байт и переписать их заново от начала файла:

только нужно считать, потом закрыть, потом создать и усечь файл, записать, закрыть



--------------------
icq:3(один)7748666
mail:airyashov( а )inbox.ru
PM MAIL   Вверх
Rays
Дата 1.12.2009, 22:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 21.2.2009

Репутация: нет
Всего: нет



Цитата(airyashov @ 30.11.2009,  08:39)
где Вы прочитали такую чушь

только нужно считать, потом закрыть, потом создать и усечь файл, записать, закрыть

Да вот, не прочитал я аткое, вариант препод предложил) 
Спасибо за совет, а что значит "усечь"?
PM MAIL   Вверх
airyashov
Дата 2.12.2009, 10:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 284
Регистрация: 1.7.2008

Репутация: 2
Всего: 6



усечь - открыть функцией 3сh


--------------------
icq:3(один)7748666
mail:airyashov( а )inbox.ru
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm: Общие вопросы"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0519 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.