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

نام تاپیک: تبدیل فایل متنی به آرایه

  1. #1

    تبدیل فایل متنی به آرایه

    سلام

    میشه بگید چه جوری یکسری اطلاعات که به این شکل داخل یک فایل txt ریخته شده رو میتونیم به آرایه تبدیل کنیم که تو برنامه ازش استفاده کنید


    ali,123,nima,321,naeim,7657,mostafa,43245

    حالا من میخوام اینجوری بشه

    a[1]=ali
    a[2]=123
    a[3]=nima
    a[4]=321


    مرسی

  2. #2
    کاربر دائمی آواتار Saeed_m_Farid
    تاریخ عضویت
    تیر 1386
    محل زندگی
    فضای تهی میان دیوارها
    سن
    44
    پست
    1,046

    نقل قول: تبدیل فایل متنی به آرایه

    نقل قول نوشته شده توسط <برنامه نویس> مشاهده تاپیک
    سلام
    میشه بگید چه جوری یکسری اطلاعات که به این شکل داخل یک فایل txt ریخته شده رو میتونیم به آرایه تبدیل کنیم که تو برنامه ازش استفاده کنید
    سلام، مي دونم اينجور جواب دادن (لقمه آماده) درست نيست.
    ولي خواستم يه تمريني واسه خودم كرده باشم! دوستان اگه ايرادي (حتي جزئي -مثلاً تو بافرها و ... ) مي بينن بفرمايند تا من ببينم چقدر C يادم مونده! ممنون :

    #include <stdio.h>
    #include <conio.h>
    #include <string.h>
    #include <stdlib.h>


    /************************************************/

    #define MAX_NAMES 1000
    #define MAX_FILE_PATH 260
    #define MAX_NAME_LENGTH 256
    char* g_Names [MAX_NAMES];

    /************************************************/

    int loadNames(char* TheFile
    ,char delimiter)
    {
    int cnt = 0;
    FILE* pSearchFile = NULL;
    char c[2] = "\0",
    pCurStr[MAX_NAME_LENGTH];

    cnt = 0;
    strcpy(pCurStr, "");
    if (pSearchFile = fopen(TheFile, "r"))
    {
    while ((c[0]=getc(pSearchFile) )!= EOF)
    {
    c[1] = '\0';
    if((c[0] != 10 ) &&
    (c[0] != 13 ) &&
    (c[0] != delimiter))
    {
    strcat(pCurStr, c);
    }else
    {
    strcpy(c, "\0");

    if ((g_Names[cnt] = (char *) malloc(strlen(pCurStr)+1)) == NULL)
    {
    printf("Not enough memory to allocate buffer\n");
    exit(1); /* Exit function if out of memory */
    }

    if (strlen(pCurStr) > 0)
    strcpy(g_Names[cnt++], pCurStr);

    strcpy(pCurStr, "");
    }
    }
    fclose(pSearchFile);
    return cnt;
    }else
    {
    fclose(pSearchFile);
    return 0;
    }
    }

    /************************************************/

    void main(){
    char filePath[MAX_FILE_PATH];
    int readedCount, idx = 0;
    printf("Please enter file path: ");
    scanf("%s", filePath);
    readedCount = loadNames(/*"C:\\Test.txt"*/filePath, ',');
    if (readedCount > 0)
    {
    for(idx=0; idx < readedCount; idx++)
    printf("Name[%d]=%s\n", idx, g_Names[idx]);
    free(g_Names[idx]); // if not used anymore!
    }else
    printf("Cann't read any name from <%s>!", filePath);
    getch();
    }

    /************************************************/

    فایل های ضمیمه فایل های ضمیمه

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

    نقل قول: تبدیل فایل متنی به آرایه

    سلام
    داخل main تکه کد ارسالی بالا را بصورت زیر اصلاح کنید کد بالا قادر به برگرداندن حافظه ای را که از سیستم گرفته است را ندارد.
     
    if (readedCount > 0)
    {
    for(idx=0; idx < readedCount; idx++)
    printf("Name[%d]=%s\n", idx, g_Names[idx]);
    free(g_Names[idx]); // if not used anymore!
    }else
    printf("Cann't read any name from <%s>!", filePath);
    // اصلاح به صورت زیر
     
    if (readedCount > 0)
    {
    for(idx=0; idx < readedCount; idx++) { // اضافه شود
    printf("Name[%d]=%s\n", idx, g_Names[idx]);
    free(g_Names[idx]); // if not used anymore!
    }// اضافه شود
    }else
    printf("Cann't read any name from <%s>!", filePath);


برچسب های این تاپیک

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

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