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

نام تاپیک: PATH

  1. #1

    Question PATH

    سلام به همه
    اقا من وقتی مسیر یه یه فایلو میگیرم مثلا با همون DIALOG OPEN مسیرش به این شکله
    C:\1.TXT ولی باید به این شکل باشه تا من بتونم استفاده کنم C:\\1.TXT لطفا منو راهنمایی کنید

  2. #2

    نقل قول: PATH

    وقتی شما می خواهید از ورودی مسیری را دریافت کنید و در رشته ذخیره کنید باید دو تا / قرار دهید تا کامپایلر بفهمد که منظور شما ذخیره یک / هست. اگر 4 تا / بنویسید یعنی دو تا را ذخیره کن و ... یعنی اگر به شکل زیر بنویسید:

    TCHAR *myPath[100] = TEXT("C:\\name.exe");
    آن وقت کامپایلر C:\name.exe را در رشته ذخیره می کند نه دو تا / . در مورد open dialog هم به همین شکل، شما در سایر قسمت های برنامه که مسیر می خواهند مستقیم همان رشته را با یک / قرار دهید که درست هست.

  3. #3

    نقل قول: PATH

    درسته حق با شماست ولی من یه مشکل عجیب دارم اگه بگم باورتون نمیشه



    char *tt;
    tt = LoadFileDialog(
    "c:\\","*.txt");

    تویه این خط کد من یه مسیری می گیرم مثلا c:\1.txt خوب حالا این مسیر داخل متغیر tt هست تا اینجا همه چی درسته ولی یه اتفاق عجیب میفته موقعی که برنامه به اینن خد می رسه

    ifstream fileTest;

    متغیر یه مقدار باینری میگیره یعنی دیگه c:\1.txt نیست می دونم باور کردنش سخته ولی این چیزی که اتفاق میفته حالا اگه من این چند خط کدو بردارم متغیر مشکلی نداره و مقدار خودشو نگر می داره

    ifstream fileTest;
    fileTest.open(TEXT(tt));
    fileTest.getline(strT, 100);

    اگه این چند خط کد بالا باشه تویه برنامه و من تویه حالت باگ بخوام خط دستورو حرکت بدم و از این چند خط رد کنم متغیر مقدار خودشو نگر میداره ولی تویه فایل fstream خطا مییره
    این vc Win32 خیلی عجیبه !

  4. #4

    نقل قول: PATH

    char tt[30] 

    ولی وقتی از انی کد استفاده می کنم برای تعریف و از تابع lstrcpy استفاده می کنم مشکل حل میشه خوب اخه اصلا مشکل چیه چرا باید ویژوال سی این مشکلو داشته باشه !

  5. #5

    نقل قول: PATH

    کدی که برای برگرداندن رشته از open dialog در چند تاپیک قبل به شما معرفی شد چندان درست نیست. بهتر هست به جای تخصیص مجدد حافظه با new در داخل تابع، خودتان تابع دیگری بنویسید. یعنی اینکه از پارامتر ورودی رشته ای با طول 256 به تابع ارسال کنید و سپس با strcpy یا معادل یونیکد این تابع مقدار lpstrFile را در متغیر رشته ای ورودی کپی کنید و سپس از آن استفاده کنید.
    در کل کار خوبی نیست که محلی متغیر رشته ای تخصیص دهیم و سپس خارج از تابع همچنان از آن استفاده کنیم.

    ضمنا یک نکته اینکه اگر قرار هست مستقیم از دابل کوتیشن مانند "text" استفاده کنید باید از TEXT() استفاده کنید. برای نام متغیرها نباید TEXT را بنویسد. یعنی فقط بنویسید tt نه اینکه بنویسید (TEXT(tt

  6. #6

    نقل قول: PATH

    متوجه شدم
    ممنون

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

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