Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

тема ужасна... стройбат наступает!!!

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Веб-программинг] >> тема ужасна... стройбат наступает!!!
Имя
Сообщение << Старые топики   Новые топики >>
тема ужасна... стройбат наступает!!! - 2005-05-11 16:36:11   
Galano

Сообщений: 4
Оценки: 0
Присоединился: 2005-05-11 14:37:26
САБЖ: нужна прога.. сжатие инфы методом RLE… требования: открытие файла реализовать на C, рабочие функции - на ассемблере…
помогите, добрые люди!!![:pray:]
Post #: 1
тема ужасна... стройбат наступает!!! - 2005-05-11 16:39:19   
Galano

Сообщений: 4
Оценки: 0
Присоединился: 2005-05-11 14:37:26
и ещё тема… нашёл вот такую шнягу в тЫрнете.. типа она и есть то, что мне надо, ток в ней косякиии[sm=15.gif]
ща взглянул… ничё не понимаю…[sm=mad.gif] кто мож чужие текстЫ рулит, найдите ошибку, а?[sm=2.gif]
во ОНО:
Вот функция сжатия:
masm
MODEL small
.stack 100h
.data
repit db 1
difer db 0
nachalo db 1
.code
public _arhiv
_arhiv proc c near bufer_s:word,bufer_r:word,size_b:word
push si
push di
mov si,bufer_s
mov di,bufer_r
push di
dec size_b
mov cx,size_b
mov nachalo,1
cmp cx,00h
jne cycle
mov al,00h
mov [di],al
inc di
mov al,[si]
mov [di],al
inc di
jmp exit
cycle:
mov al,[si]
cmp al,[si+1]
je label_s

push si
push cx
call diferent
pop cx
pop si
jmp pkcycle
label_s:
call similar
pkcycle:
inc si
loop cycle
exit:
mov ax,di
pop di
sub ax,di
pop di
pop si
ret
_arhiv endp
;———————–
similar proc near
inc repit
cmp difer,02h
jb testin
call wr_dif
jmp testend
testin:
mov difer,0
cmp repit,80h
jne testend
call wr_sim
mov al,[si+1]
cmp al,[si+2]
je counter
mov repit,1
jmp end_sim
counter:
mov repit,0
jmp end_sim

testend:
cmp cx,01h
jne end_sim
call wr_sim

end_sim:
ret
similar endp
;———————-
wr_sim proc near
mov nachalo,0
dec repit
not repit
inc repit
mov al,repit
mov [di],al
inc di
mov al,[si]
mov [di],al
mov repit,1
inc di

ret
wr_sim endp
;———————
diferent proc near
inc difer
cmp repit,02h
jnae label1
call wr_sim
jmp end_dif
label1:
cmp nachalo,1
je metka
cmp difer,80h
jne test_end
metka:
cmp difer,7fh
jnae test_end
call wr_dif_f

cmp cx,01h
je end_dif
dec cx
inc si
jmp end_dif
test_end:
cmp cx,01h
jne end_dif
cmp nachalo,1
jne detour
mov dx,size_b
mov [di],dx
dec dx
mov cx,dx
add dx,2
call back
jmp end_dif
detour:
push si
push cx
mov dl,difer
mov dh,0
mov cx,dx
dec cx
mov [di],cx
dec cx
call back
pop cx
pop si
end_dif:
ret
diferent endp
;——————————-
wr_dif_f proc near
push si
push cx
mov ax,7fh
mov [di],ax
mov cx,7eh
mov dx,80h
call back
pop cx
pop si
mov nachalo,0
end_wdf:
ret
wr_dif_f endp
;————————–
wr_dif proc near
push si
push cx
mov cl,difer
mov ch,0
cmp nachalo,1
jne jump
mov dl,difer
mov dh,0
dec dx
mov [di],dx
inc dx
jmp onproc
jump:
dec cx
sub difer,2
mov dl,difer
mov dh,0
mov [di],dx
inc dx
onproc:
mov nachalo,0
call back
pop cx
pop si

ret
wr_dif endp
;————————
back proc near
sub si,cx
mov cx,dx
write_dif:
inc di
mov al,[si]
mov [di],al
inc si
loop write_dif
mov difer,00h
inc di

ret
back endp
;————————-
end

Вот функция восстановления:

MASM
MODEL small
.stack 100h
.data
pred_sym dw 128
.code
public _norm
_norm proc c near bufer_s:word,bufer_r:word,size_b:word
push si
push di
mov si,bufer_s
mov di,bufer_r
push di
mov cx,size_b
mov ax,pred_sym
cmp ax,80h
je cycle
dec si
inc cx
jmp pbcycle

cycle:
mov al,[si]
pbcycle:
cmp al,80h
ja similar

inc al
mov bl,al
mov bh,0
cmp cx,01h
jne metka
jmp pkcycle
metka:
sub cx,bx
cmp cx,01h
jge perehod
mov dx,cx
mov cx,1
push cx
mov cx,dx
add cx,bx
dec cx
sub bx,cx
jmp write_dif
perehod:
mov bx,81h
push cx
mov cl,al
mov ch,0

write_dif:
inc si
mov al,[si]
mov [di],al
inc di
loop write_dif
pop cx
jmp pkcycle

similar:
mov bh,0
cmp cx,01h
je alien
inc si
not al
add al,2
mov bl,al

dec cx
push cx
mov cx,bx
mov al,[si]
write_sim:
mov [di],al
inc di
loop write_sim
pop cx
mov bx,81h

pkcycle:
inc si
dec cx
jnz cycle

dec bx

mov pred_sym,bx
jmp exit
alien:
mov bl,al
mov pred_sym,bx
exit:
mov ax,di
pop di
sub ax,di

pop di
pop si
ret
_norm endp
end

Вот сишник:

#include<stdio.h>
#include <conio.h>
//#include "asm.h
extern int arhiv(char bufer1[],char bufer2[],int len);
int errval;
int errfunc(int errval)
{
switch (errval)
{ case '1':
printf("Error: File doesn`t exist\n");
break;
case '2':
printf("Error:File cant` be opened for reading\n");
break;
case '3':
printf("Error:File can`t be opened for writing\n");

case '7':
printf("Error:Record failed\n");
break;
}
return 0;
}


int do_all()
{

int s;
int z;
char btn;
char fn_1[10];
char fn_2[10];
FILE* input;
FILE* output;
char buf_s[512];
char *buf_r;


clrscr();
while(1){

printf("change file - 1\n");
printf("regain file - 2\n");
btn=getch();
if (btn == '1') {

printf ("enter the output file name: ");
scanf("%s",fn_1);
input=fopen(fn_1,"r") ;
if (!input)
{
errval='1';
errfunc(errval);
return 0;
}

printf ("enter output file name: ");
scanf ("%s",fn_2);
output=fopen(fn_2,"wr") ;
if (!output)
{
errval='3';
errfunc(errval);
return 0;
}
while (feof(input)==0)
{s=fread(buf_s,1,512,input);
z=arhiv(buf_s,buf_r,s);
fwrite(buf_r,1,z,output);}
// printf ("The change function is being called\n");
break;
}
else if (btn == '2'){

printf ("enter the input file name: ");
scanf("%s",fn_1);
input=fopen(fn_1,"r") ;
if (!input)
{
errval='1';
errfunc(errval);
return 0;
}
printf ("enter output file name: ");
scanf ("%s",fn_2);
output=fopen(fn_2,"wr") ;
if (!output)
{
errval='3';
errfunc(errval);
return 0;
}
while (feof(input)==0)
{s=fread(buf_s,1,512,input);
//z=norm(buf_s,buf_r,s);
fwrite(buf_r,1,z,output);}

// printf ("The regain function is being called\n");
break;
}
else {
printf ("Enter 1 or 2\n");
}
fclose(input);
fclose(output);
}
return 0;
}


int main()
{
char chs;
do{
do_all();
printf ("Continue - c\n");
printf ("Quit - q\n");
chs=getch();
}while(chs!='q');
return 0;
}
Post #: 2
тема ужасна... стройбат наступает!!! - 2005-05-11 23:51:44   
Galano

Сообщений: 4
Оценки: 0
Присоединился: 2005-05-11 14:37:26
ХЕЕЛП!!!! ну кому это - раз плюнуть?! кто может?? горюююю….
мне ж препод это… того.. [sm=001.gif] на_ отрежет =((
Post #: 3
тема ужасна... стройбат наступает!!! - 2005-05-15 13:59:32   
ventilyator

Сообщений: 423
Оценки: 0
Присоединился: 2004-10-28 15:46:45
если бабки есть, то рекомендую те купить готовый исходник
если бабок нет, копи на парикмахерскую [sm=9.gif]
нефиг было весь симестр балду пинать
Post #: 4
тема ужасна... стройбат наступает!!! - 2005-05-16 20:47:14   
Galano

Сообщений: 4
Оценки: 0
Присоединился: 2005-05-11 14:37:26
[sm=mad.gif]спасибо те добрый чел!!! а постригут мя бесплатно! [sm=scull.gif] - прям так и постригут…. ты мож скажешь тогда, где готовое можно купить-то?! аа?![sm=7.gif]
Post #: 5
тема ужасна... стройбат наступает!!! - 2005-05-16 22:44:01   
ventilyator

Сообщений: 423
Оценки: 0
Присоединился: 2004-10-28 15:46:45
прям тут и предложи - мало народа на халяву поведеца?
бабки думаю все получить хотят

к тому ж можеш воспользоваца услугами фрилансеров - вон их сайтов полно
Post #: 6
Страниц:  [1]
Все форумы >> [Веб-программинг] >> тема ужасна... стройбат наступает!!!







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.