Трабл с чтением из файла...

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by Xxor, 26 Apr 2008.

  1. Xxor

    Xxor Elder - Старейшина

    Joined:
    24 Jan 2006
    Messages:
    31
    Likes Received:
    3
    Reputations:
    0
    Возник непонятный трабл с открытием файла...
    Буду рад помощи...

    Code:
    #include <dos.h>  
    #include <stdio.h>  
    #include <conio.h>  
    #include <mem.h>  
    #include <stdlib.h>  
    void main(){  
    unsigned char buff[199][319];  
    unsigned char sprite[39][31];  
    unsigned char far *screen = (char far *)MK_FP(0xa000,0);  
    int i,j,k;  
    FILE *bmp;  
    REGPACK r;  
        if((bmp=fopen("1.bmp","rb"))==NULL){
            printf("Cant open file\n");  	
            getch();  
        }else{  
            fseek(bmp,1078,0);
            fread(&sprite,sizeof(sprite),1,bmp);   
            fclose(bmp);
            for(i=0;i<=39;i++){
                for(j=0;j<=31;j++){
                    buff[i][j]=sprite[i][j];
                }
           }  
           r.r_ax=0x13;
           intr(0x10,&r);
           k=0;
           for(i=0;i<=199;i++){
               for(j=0;j<=319;j++){
                   screen[k]=buff[i][j];
                   k++;
               }
           } 
           sleep(5);
           r.r_ax=0x3;
           intr(0x10,&r);
           getch();
        }
    }
     
  2. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    811
    Reputations:
    231
    Написал бы что компилятор выдает
     
    _________________________
  3. Xxor

    Xxor Elder - Старейшина

    Joined:
    24 Jan 2006
    Messages:
    31
    Likes Received:
    3
    Reputations:
    0
    Дык в том то и дело что компилятор молчит цука
     
  4. KSoniX

    KSoniX Elder - Старейшина

    Joined:
    17 Jan 2008
    Messages:
    94
    Likes Received:
    12
    Reputations:
    1
    где именно баг добавь меня в ИСК № 465-497-196
     
    #4 KSoniX, 26 Apr 2008
    Last edited: 26 Apr 2008
    1 person likes this.
  5. Xxor

    Xxor Elder - Старейшина

    Joined:
    24 Jan 2006
    Messages:
    31
    Likes Received:
    3
    Reputations:
    0
    Непроходи открытие файла (
    Code:
    if((bmp=fopen("1.bmp","rb"))==NULL){
            printf("Cant open file\n");  	
            getch();  
        }else{
    
     
  6. Forcer

    Forcer Elder - Старейшина

    Joined:
    12 Apr 2007
    Messages:
    321
    Likes Received:
    98
    Reputations:
    12
    проверь директорию. попробуй указывать абсолютный путь до файла .
     
  7. Delimiter

    Delimiter Banned

    Joined:
    8 Apr 2005
    Messages:
    317
    Likes Received:
    173
    Reputations:
    12
    абсолютный путь нужно указывать всегда, чтоб не думать какая директория в данный момент дефаултовая.
     
  8. Xxor

    Xxor Elder - Старейшина

    Joined:
    24 Jan 2006
    Messages:
    31
    Likes Received:
    3
    Reputations:
    0
    все предложения нащет пути втопку .. пока нетрогаю масив buff все идет отлично . нормально читаетса файл. выводитса данные других масивов в бижеобуфер .. отображаетса все в разрешении 320*200*256 норм .. . но как токо пишу се тв масив buff то пц ( а он нада позарез для формирования изображеня перед выводом .. ибо нада анимировать примерно 10 спрайтов одновременно
     
    #8 Xxor, 26 Apr 2008
    Last edited: 26 Apr 2008
  9. Forcer

    Forcer Elder - Старейшина

    Joined:
    12 Apr 2007
    Messages:
    321
    Likes Received:
    98
    Reputations:
    12
    Вы очень вежливы когда просите о помощи.

    &sprite - ?
    sizeof(sprite) = 4
     
  10. Xxor

    Xxor Elder - Старейшина

    Joined:
    24 Jan 2006
    Messages:
    31
    Likes Received:
    3
    Reputations:
    0
    Еслибы проблема была в пути я бы не просил о помощи. И пожалуста ненадо "выкать"
     
  11. desTiny

    desTiny Elder - Старейшина

    Joined:
    4 Feb 2007
    Messages:
    1,006
    Likes Received:
    444
    Reputations:
    94
    По-моему, это переполнение :)
    разве не так:
    fread(sprite,31*39,1,bmp);



    АХТУНГ:

    for(i=0;i<=39;i++){
    for(j=0;j<=31;j++){
    buff[j]=sprite[j];
    }
    вместо <= должно быть <
    END АХТУНГ
     
  12. Xxor

    Xxor Elder - Старейшина

    Joined:
    24 Jan 2006
    Messages:
    31
    Likes Received:
    3
    Reputations:
    0
    Ахтунги приняты во внимание но проблема осталась прежней. Методом каментированием всего подряд выяснил кое что.
    Код работает ели закоментить в которых выполняютса операции над масивом buff строки:
    Code:
    #include <dos.h>
    #include <stdio.h>
    #include <conio.h>
    #include <mem.h>
    #include <stdlib.h>
    void main(){
    unsigned char buff[199][319];
    unsigned char sprite[39][31];
    unsigned char far *screen = (char far *)MK_FP(0xa000,0);
    int i,j,k;
    FILE *bmp;
    REGPACK r;
    	if((bmp=fopen("c:\\1.bmp","rb"))==NULL){
    		printf("Cant open file\n");
    		getch();
    
    	}else{
    
    		fseek(bmp,1078,0);
    		fread(&sprite,36*31,1,bmp);
    		fclose(bmp);
    //
    //	for(i=0;i<39;i++){
    //		for(j=0;j<31;j++){
    //			buff[i][j]=sprite[i][j];
    //		}
    //	}
    //	
    	r.r_ax=0x13;
    	intr(0x10,&r);
    	k=0;
    //
    //	for(i=0;i<199;i++){
    //		for(j=0;j<319;j++){
    //			screen[k]=buff[i][j];
    //			k++;
    //		}
    //	}
    //
    	sleep(5);
    	r.r_ax=0x3;
    	intr(0x10,&r);
    	getch();
    
    	}
    }
    
    
     
    #12 Xxor, 26 Apr 2008
    Last edited: 26 Apr 2008