نمایش نتایج 1 تا 5 از 5

نام تاپیک: جستجوی سرتیتر ها و کپی کردن کاراکتر های خاصی از هر سر تیتر از یک فایل متنی

  1. #1

    جستجوی سرتیتر ها و کپی کردن کاراکتر های خاصی از هر سر تیتر از یک فایل متنی

    من یک فایل متنی دارم که حاوی اطلاعاتی شبیه اطلاعات زیر می باشد
    ENSG00321 Gene_ch19<

    AATAGCGGTTAACATATTAATTAAACTAATGTATAGATATTATCCGCTTC CAGATTTATTATTTTGTAAA

    ATAGGCACAGTTCTTATCTGGTGTCACTTTATGCTTTTTTAATAGACGCC CAGCTCTACTCATGGCCAAG

    .

    .

    ENSG00531 Gene_ch5<

    AAAGAAGCGTAGGCCCGCCATGCAGCGTAAAAAGGATAATGCGGAGCAGC GGTCCCCAAAGACTGATTTA

    TCAAAACTGTTTTCGCAGCAATTAACACACCCACCGACCAGTAACACCGC TGCAAGCAAGGCCACGGGCA

    .

    .
    من Header هایی دارم شبیه ENSG00321.
    من میخواهم در فایل متنی هر یک از این Header ها را پیدا کنم و بعد از توالی که از زیر هر Header شروع می شود از یک کاراکتر خاصی مثلاً پنجم شروع کرده و تا چندین کاراکتر بعدی را مثلاً 112 کاراکتر بعد از کاراکتر پنچم را خوانده و کپی کنم و در یک فایل دیگری ذخیره کنم.
    من چگونه باید این برنامه را در محیط ++C یا MATLAB بنویسم؟


  2. #2
    کاربر دائمی
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    ایران سرای من است
    پست
    2,655

    نقل قول: جستجوی سرتیتر ها و کپی کردن کاراکتر های خاصی از هر سر تیتر از یک فایل متنی

    سلام
    تابع زیر رو دستی برات کدش رو قرار دادم اگه ایرادی دستوری داشت رفعش کن این تابع محل هدر شما رو داخل فایل (اگه پیداش کرد مقدار true برگردونده میشه)نگه میداره با دستور ftell هم میتونی این مکان رو بدست بیاری.
    ولی اگه با fread یا fget میخواهید متن های بعدی رو بخونید بعد از این تابع میتوانید استفاده کنید.
     
    bool FindHeader( char *HeaderName, FILE *fp)
    {
    char *ptr;
    int c, len;
    bool Find=false;
    len = strlen(HeaderName);
    ptr = new char [len];
    ptr[0] =0;
    while( !Find && !feof(fp) )
    {
    if( strlen(ptr) == len && strcmp(ptr, HeaderName)==0)
    Find = true;
    if( strlen(ptr) == len ){
    strcpy(ptr, &ptr[1]);
    c --;
    }
    ptr[C++‎] = fgetc(fp);
    }
    delete [] ptr;
    return Find;
    }

    کارهای بعدی شما فقط خوندن داده هست.
    باز مشکلی بود ارسال کن.
    موفق باشید.
    آخرین ویرایش به وسیله tdkhakpur : شنبه 09 خرداد 1388 در 18:57 عصر دلیل: املا

  3. #3

    نقل قول: جستجوی سرتیتر ها و کپی کردن کاراکتر های خاصی از هر سر تیتر از یک فایل متنی

    ممنون از محبت شما
    من در کاراکتر به کاراکترخواندنش و رسیدن به کاراکتر شروع (start) مورد نظر مثلاً پنجم و بعد خواندن چندین کاراکتر مشخص (size to read) بعد از کاراکتر پنجم هم مشکل دارم. چون در ++C مبتدی هستم اگر راهنمایی کنید بسیار ممنون خواهم شد.
    بنده آدرس هم کاراکتر شروع و تعداد کاراکتری که باید بعد از کاراکتر شروع خوانده شود را برای هر سرتیتر دارم.

  4. #4

    نقل قول: جستجوی سرتیتر ها و کپی کردن کاراکتر های خاصی از هر سر تیتر از یک فایل متنی

    نقل قول نوشته شده توسط tdkhakpur مشاهده تاپیک
    سلام
    تابع زیر رو دستی برات کدش رو قرار دادم اگه ایرادی دستوری داشت رفعش کن این تابع محل هدر شما رو داخل فایل (اگه پیداش کرد مقدار true برگردونده میشه)نگه میداره با دستور ftell هم میتونی این مکان رو بدست بیاری.
    ولی اگه با fread یا fget میخواهید متن های بعدی رو بخونید بعد از این تابع میتوانید استفاده کنید.
     
    bool FindHeader( char *HeaderName, FILE *fp)
    {
    char *ptr;
    int c, len;
    bool Find=false;
    len = strlen(HeaderName);
    ptr = new char [len];
    ptr[0] =0;
    while( !Find && !feof(fp) )
    {
    if( strlen(ptr) == len && strcmp(ptr, HeaderName)==0)
    Find = true;
    ptr[C++‎] = fgetc(fp);
    }
    delete [] ptr;
    return Find;
    }
    کارهای بعدی شما فقط خوندن داده هست.
    باز مشکلی بود ارسال کن.
    موفق باشید.
    ممنون هم شهری من هم از خوی هستم

  5. #5
    کاربر دائمی
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    ایران سرای من است
    پست
    2,655

    نقل قول: جستجوی سرتیتر ها و کپی کردن کاراکتر های خاصی از هر سر تیتر از یک فایل متنی

    سلام
    بیبنید یک تابع به اسم fssek هست که گزینه های مختلفی رو برای پارامترهاش میگیره.
    شما برای اینگه ا محل جاری مقعیت پنجم از اون محل برید فکر کنم به روش زیر هست.
    ولی اگه اشتبا شده باشه خودت اصلاحش کن چون گزینه هاش تقریبا یادم نیست.
     
    fssek(fp , 5, 1);

    در ضمن به شما همشهری عزیزم هم سلام و عرض ادب دارم.
    آخرین ویرایش به وسیله tdkhakpur : شنبه 09 خرداد 1388 در 18:59 عصر دلیل: املا

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •