Szasztok!
Kosz a sok segitokesz valaszt, valoszinuleg en irtam meg rosszul
a problemamat:
> >Ha BC3.1-el DOS alatt programozva megnyitom olvasasra a CONT-t,
> >akkor szerintem elvileg a billentyuzetrol kellene a programnak
> >olvasnia.
> >
> >fp=fopen("CON","rt");
>
> Bocsass meg hogy beleszolok, biztos van valami ok hogy fopen-nel akarod
> olvasni a billentyuzetet, de nem ertem miert.
Tehat a program BC3.1 es DOS alatt:
char name[128];
...
Itt adja meg a felhasznalo a beolvasando file neve't, amit beirunk
name-be
...
fp=fopen(name, "rt");
...
Ha most a felhasznalo (vagy en peldaul teszteles kozben) itt CON-t
ad meg, akkor a program lefagy, es nem tudom miert. Mar neztem
az fopen() stb. forrasat, de abbol sem derult ki az ok.
Ellene: fopen() elott ellenorzom name-t, es ha CON, akkor fp=stdin;
Aggod József
|
Nem igaz, megorulok.
Mer' nem megy ez a fuggveny?
char *copy(char *o,int fstchar,int num)
{
char *outcopy;
unsigned seg1,ofs1,seg2,ofs2;
seg1=FP_SEG(o);
ofs1=FP_OFF(o);
seg2=FP_SEG(outcopy);
ofs2=FP_OFF(outcopy);
asm{
mov ax,seg1
mov es,ax
mov di,ofs1
mov ax,seg2
mov ds,ax
mov si,ofs2
mov bx,fstchar
mov cx,num
add di,bx
//ide:
mov al,es:[di]
mov ds:[si],al
inc si
inc di
dec cx
db 0x75,0xf5 //jnz ide:
xor al,al
mov ds:[si],al
}
return(outcopy);
}
a pascal-os copy fuggvenynek lenne a C-s megfeleloje,azaz
az 'o' string 'fstchar'-adik karakteretol 'num' darabot ad vissza.
Ehelyett azt muveli, hogy a 'fstchar' karakterBOL ad vissza 'num' db-t.
Ha tud valaki jobb megoldast, ne tartsa magaba.
Koszi.
JimBoo
|