دورات هندسية

 

 

i have this program can anyone explain it for me

النتائج 1 إلى 8 من 8
  1. [1]
    skotshayo
    skotshayo غير متواجد حالياً

    عضو فعال

    تاريخ التسجيل: May 2006
    المشاركات: 51
    Thumbs Up
    Received: 0
    Given: 0

    i have this program can anyone explain it for me

    hello everybody .... i need explaination for this program
    i know what the program dose do but i didn't understand all statements in it


    this program is to read from and write in floopy


    #include "BS.H"

    BOOL AbsRead(WORD,WORD,LPVOID);
    WORD ReadFatEle(WORD);
    WORD SearchFile(char *);

    char FatEle[5120];
    //FatEle is pointer to the first element of the array
    WORD gFatSize;
    WORD gRootSize;

    struct RD
    {
    char NameFile[8];
    char Ext[3];
    char Reserved[10];//os
    char Att;//attribute
    WORD Time;
    WORD Date;
    WORD NumFirstClus;
    DWORD Size;
    };

    int main()
    {

    char NameF[13];
    BS BOOTSEC;
    WORD FatElement;

    if(AbsRead(0,1,&BOOTSEC)==FALSE)
    {
    cout<<"Reading boot sector Didn't Success...\n";
    exit(EXIT_FAILURE);
    }

    gFatSize=BOOTSEC.FatSize;
    gRootSize=(BOOTSEC.RootSize*32)/512;

    if(AbsRead(1,gFatSize,FatEle)==FALSE)
    {
    cout<<"Reading fat elements by absread didn't success...\n";
    exit(EXIT_FAILURE);
    }
    printf("Please Enter the Name of file :");
    scanf("%12s",NameF);
    strupr(NameF);

    if((FatElement=SearchFile(NameF))==0)//
    {
    printf("The file isn't exist...\n");
    exit(EXIT_FAILURE);
    }

    while(FatElement!=0xfff && FatElement!=0x0)
    {
    printf("%5hX",FatElement);//short hexa
    FatElement=ReadFatEle(FatElement);

    }
    printf("\n");
    return 0;
    }

    WORD SearchFile(char *NameF)
    {
    RD Buffer[16];

    for(int i=0;i<=gRootSize;i++)//number of sectors for root directory
    {
    if(AbsRead(i+(gFatSize*2+1),1,Buffer)==FALSE)
    {
    cout<<"Cann't read sector number "<<i+1<<" From root directory...\n";
    exit(EXIT_FAILURE);
    }
    for(int j=0;j<16;j++)
    {
    int NameLoop=0;
    int ExtLoop=0;
    char FoundName[13]={'\0'};
    if(Buffer[j].NameFile[0]==' ' || Buffer[j].NameFile[0]==0xe5 || Buffer[j].Att==8)
    continue;
    while(Buffer[j].NameFile[NameLoop]!=' ' && NameLoop<8)
    {
    FoundName[NameLoop]=Buffer[j].NameFile[NameLoop];
    NameLoop++;
    }
    if(Buffer[j].Ext[0]!=' ')
    {
    FoundName[NameLoop]='.';
    NameLoop++;
    while(Buffer[j].Ext[ExtLoop]!=' ' && ExtLoop<3)
    {
    FoundName[NameLoop]=Buffer[j].Ext[ExtLoop];
    ExtLoop++;
    NameLoop++;
    }
    }
    if(strcmp(FoundName,NameF)==0)
    return Buffer[j].NumFirstClus;
    }
    }
    return 0;
    }

    BOOL AbsRead(WORD FirstSector,WORD NumSectors,LPVOID Buffer)
    {
    HANDLE H_disk;

    H_disk=CreateFile("\\\\.\\a:",GENERIC_READ,FILE_SH ARE_READ,NULL,OPEN_EXISTING,NULL,NULL);

    if(H_disk==INVALID_HANDLE_VALUE)
    {
    cout<<"Error:"<<GetLastError()<<endl;
    return FALSE;
    }
    DWORD L_SET;
    L_SET=SetFilePointer(H_disk,FirstSector*512,NULL,F ILE_BEGIN);
    if(L_SET==0xfff)
    {
    cout<<"Error:"<<GetLastError()<<endl;
    return FALSE;
    }

    DWORD BR;
    if(!ReadFile(H_disk,Buffer,NumSectors*512,&BR,NULL ))//Readfile return BOOL
    {
    cout<<"Error:"<<GetLastError()<<endl;
    return FALSE;
    }
    CloseHandle(H_disk);
    return TRUE;
    }

    WORD ReadFatEle(WORD FatElement)
    {
    WORD i;
    i=(FatElement*3)/2;
    if(FatElement%2==0)
    return (*((WORD*)(FatEle+i))&(0x0FFF));
    else
    return (*((WORD*)(FatEle+i))>>4);

    }




    //<BS.h>

    #include <iostream.h>
    #include <stdio.h>
    #include <windows.h>
    #include <winioctl.h>


    struct BS
    {
    char JMP[3];//booting
    char CmpName[8];//company name
    WORD BytePerSector;
    unsigned char ClusterSize;
    WORD ReservedSector;//for os
    char FatCount;//2
    WORD RootSize;//number of entry 32
    WORD TotalSector;
    char MediaDes;
    WORD FatSize;//9
    char RemainByte[488];
    };

    //</BS.h>


    Best regrads

  2. [2]
    الأمير أمير
    الأمير أمير غير متواجد حالياً
    عضو فعال


    تاريخ التسجيل: Jul 2006
    المشاركات: 126
    Thumbs Up
    Received: 0
    Given: 0
    الأخ العزيز
    حسب معلوماتى المتواضعة فهذا البرنامج مكتوب بلغة Turbo C ولقد كتبت برامج كثيرة بهذه اللغة منذ مدة طويلة جدا ولذلك قد لا أفيدك كثيرا والسلام عليكم

    0 Not allowed!


    الأمير أمير

  3. [3]
    mike
    mike غير متواجد حالياً
    عضو


    تاريخ التسجيل: Mar 2006
    المشاركات: 28
    Thumbs Up
    Received: 0
    Given: 0
    الاخ الفاضل الامير امير انت حسستنى بكلامك ده ان انت من ايام الجيل الاول للحاسبات
    اما الاخ سيكوتشايو فمن الواضح انه ضعيف فى الانجليزى شويه ودى اول ملحوظه
    ثم انت عندك البرنامج وعارف كمان انه بيقرأ ويكتب على لاسطوانه المرنه
    فا يا ريت توضح اكتر ايه المطلوب بالظبط
    لان شرح كل جمله فى البرنامج هتاخد اوقات كتييييييييييييييييير --- وشكراً

    0 Not allowed!



  4. [4]
    skotshayo
    skotshayo غير متواجد حالياً
    عضو فعال


    تاريخ التسجيل: May 2006
    المشاركات: 51
    Thumbs Up
    Received: 0
    Given: 0
    thanks alot Ameer ..
    sorry mike but i didn't ask for your opinion
    what i was asking is clear as i guess ...
    not all statements man ... but headlines ... how this program works
    i dont think that you are genius enough to rate every one and everything ...

    0 Not allowed!



  5. [5]
    mike
    mike غير متواجد حالياً
    عضو


    تاريخ التسجيل: Mar 2006
    المشاركات: 28
    Thumbs Up
    Received: 0
    Given: 0
    واى دو يو ثينك ذات اى ام نوت جينياس مان !
    اتس سو ايزى تو اكسبلاين اوول ذا بروجرام ستاتمنتس ؛ بيكوز افرى ون اوف ذيم هاذ أ فانكشن ان ذا بروجرام اذ يو نو .
    انى وااى ثانكس ...

    0 Not allowed!



  6. [6]
    الأمير أمير
    الأمير أمير غير متواجد حالياً
    عضو فعال


    تاريخ التسجيل: Jul 2006
    المشاركات: 126
    Thumbs Up
    Received: 0
    Given: 0
    يا عزيزى لقد درست هذه اللغة وذاكرتها منذ حوالى 13 سنة وأن الآن بعيد كل البعد عن البرمجة فأخشى أن أذكر جملة خطا فقط ولا أريد أن أقول إلا ما أعلمه تمام العلم ولكن أوعدك أن أشرح لك هذا البرنامج على قدر ما أستطيع ومعذرة إن أخطأت

    0 Not allowed!


    الأمير أمير

  7. [7]
    الأمير أمير
    الأمير أمير غير متواجد حالياً
    عضو فعال


    تاريخ التسجيل: Jul 2006
    المشاركات: 126
    Thumbs Up
    Received: 0
    Given: 0
    لغة الC أول جمل أو أسطر فى البرنامج يجب أن تضع Header files ويكون لها الامتداد .H
    مثل STDIO.H وهو ملف HEADER ومعناه وهو يجعل STaDndard Input Output البرنامج يتعامل مع وحدات الادخال والاخراج لجهاز الكمبيوتر
    وان شاء الله سوف أكمل لك هذا الشرح فى المرات القادمة والسلام عليكم ورحمة الله

    0 Not allowed!


    الأمير أمير

  8. [8]
    skotshayo
    skotshayo غير متواجد حالياً
    عضو فعال


    تاريخ التسجيل: May 2006
    المشاركات: 51
    Thumbs Up
    Received: 0
    Given: 0
    Dear Ameer
    thank you very much ... really thanks
    but i got all the informations i need about this program
    my problem was that how the program deals with Sectors, Entries, and clusters
    i had the problem at that field .. now everything is clear
    thanks again and best regrads

    0 Not allowed!



  
الكلمات الدلالية لهذا الموضوع

عرض سحابة الكلمة الدلالية

RSS RSS 2.0 XML MAP HTML