الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

تمرير اسم ملف كمعلومة مدخلة عند تشغيل البرنامج

مغلق
بدأه Gsalah في 3 نوفمبر 2006 · 8 رد · 698 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم , اريد ان اشغل البرنامج لكن مع اسم ملف ليتم قراءته عبر البرنامج يعني

my_program_name file.txt

يعني انا اريد ان اشغل البرنامج من الدوس واعطيه اسم ملف دون المسار

بارك الله فيكم

تم تعديل هذه المشاركة بواسطة Gsalah في 3 نوفمبر 2006 في 21:42

7asbi.gif
#2

استخدم argv في ال main

#3

بارك الله فيك اخي , لكني اول مرة اسمع بها , هل يمكمنك اعطائي اي مصدر ؟

7asbi.gif
#5

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

؟

7asbi.gif
#6

إنت تقصد إن الملف يبقى موجود فى مكان غير معروف و البرنامج يبقى موجود فى مكان أخر غير معروف أيضا, و تكتب فى الكونسول program file.txt بس فيشتغل؟

#7

بالضبط اخي , او ان اسم الملف يكتب بدون مسار كامل اذا كان البرنامج على نفس المسار

تم تعديل هذه المشاركة بواسطة Gsalah في 7 نوفمبر 2006 في 20:52

7asbi.gif
#8

السلام عليكم ورحمة الله وبركاته

(ان لم يخني فهمي ) فانت تريد ان تكتب اسم برنامجك يليه اسم الملف وكل هذا في بيئة الدوس

ان كان كذلك فاني اشور عليك ان تفهم بعض مبادئ الدوس

الاوهي

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) مصفوفة المتغيرات

#9

و اذا كان الملف النصي موجود في نفس المكان الموجود فيه البرنامج .. فلا تحتاج الى تزويد البرنامج بالمسار كاملا ..

هذا الموضوع مغلق.

مواضيع مشابهة