السلام عليكم , اريد ان اشغل البرنامج لكن مع اسم ملف ليتم قراءته عبر البرنامج يعني
my_program_name file.txt
يعني انا اريد ان اشغل البرنامج من الدوس واعطيه اسم ملف دون المسار
بارك الله فيكم
السلام عليكم , اريد ان اشغل البرنامج لكن مع اسم ملف ليتم قراءته عبر البرنامج يعني
my_program_name file.txt
يعني انا اريد ان اشغل البرنامج من الدوس واعطيه اسم ملف دون المسار
بارك الله فيكم
تم تعديل هذه المشاركة بواسطة Gsalah في 3 نوفمبر 2006 في 21:42

استخدم argv في ال main
اخي لم انجح بالمرة , اعتقد انك لم تفهمنى , انا اريد ان اشغل البرنامج من الدوس واعطاءه اسم الملف لكن لا اعرف كيف احدد موقع البرنامج ليتم اضافة المقطع الخاص باسم الملف
؟

إنت تقصد إن الملف يبقى موجود فى مكان غير معروف و البرنامج يبقى موجود فى مكان أخر غير معروف أيضا, و تكتب فى الكونسول program file.txt بس فيشتغل؟
بالضبط اخي , او ان اسم الملف يكتب بدون مسار كامل اذا كان البرنامج على نفس المسار
تم تعديل هذه المشاركة بواسطة Gsalah في 7 نوفمبر 2006 في 20:52

السلام عليكم ورحمة الله وبركاته
(ان لم يخني فهمي ) فانت تريد ان تكتب اسم برنامجك يليه اسم الملف وكل هذا في بيئة الدوس
ان كان كذلك فاني اشور عليك ان تفهم بعض مبادئ الدوس
الاوهي
1- Envirnoment Variables
وهذه متغيرات خاصة بالنظام يتم فيها تخزين مسارات مجلدات النظام المهمة (مثل مجلد النظام ومجلد الملفات المؤقتة ) واسم النظام والمعالج ..... الخ
جرب واختر start ----------> run:cmd
ثم اكتب
echo %OS%
الناتج (في جهازي )
Windows_NT
----------------- المتغير PATH
هو احد المتغيرات السابق ذكرها وهويحتوي المجلد (أو المجلدات)سيتم فيه البحث عن استدعائك ان لم يجده في المسار الافتراضي
C:\Documents and settings\alawashiz\desktop>cmd
عندما ستقرا هذا الامر سيخيل لك انه سيستدعي الـcmd الموجود في سطح المكتب
ولكن في واقع الامر هو ان لم يجده هناك سيبحث عنه في مجلدات الـPATH والذي سيكون من ضمنها تلقائيا "C:\WINDOWS\system32"
اتريد ان تجعل برنامجك يتم استدعائه من اي مكان ضعه في احدى مجلدات الـPATH
2-Program Arguments
وهي المعاملات التي تضاف الى البرنامج عند استدعائه
على سبيل المثال : البرنامج المعروف XCOPY
هذا البرنامج لن تستطيع الاستفادة منه الا عند ارسال المعاملات اللازمة
XCOPY somedir somdir
اريدك ان تلاحظ ان somedir هو المعامل الاول و somdir هو المعامل الثاني
الان دعني اجيب عن اسئلتك
اقتباسالسلام عليكم , اريد ان اشغل البرنامج لكن مع اسم ملف ليتم قراءته عبر البرنامج يعنيmy_program_name file.txt
يعني انا اريد ان اشغل البرنامج من الدوس واعطيه اسم ملف دون المسار
بارك الله فيكم
ان ماتريده هو يتم استدعاء ملف ما من دون المسار التابع له
وهذا الكلام مستحيل(على الاقل في بيئة الدوس) لانه لوكان كذلك لما احتجنا للاوقات الطويله التي نقضيها في البحث عن الملفات ولم تنتج شركات البحث Desktop search
ولكن تستيطيع استدعاء برنامجك من نفس مسار الملف وذلك عن طريق حفظه في احد مجلدات المتغير PATH
اقتباسبارك الله فيك اخي , لكني اول مرة اسمع بها , هل يمكمنك اعطائي اي مصدر ؟
عندما تريد كتابة برنامج يستقبل المعاملات كما في XCOPY فان الـC توفر لك ذلك كما في التالي
#include <iostream>
using namespace std;
int main(int argc ,char*argv[])
if(argc>2){
cout<<argv[1]; \\المعامل الاول
cout<<argv[2]; \\المعامل الثاني
}فالـ(argc) هي عدد المعاملات
والـ(argv) مصفوفة المتغيرات
و اذا كان الملف النصي موجود في نفس المكان الموجود فيه البرنامج .. فلا تحتاج الى تزويد البرنامج بالمسار كاملا ..
هذا الموضوع مغلق.