إعـــــــلان

تقليص
لا يوجد إعلان حتى الآن.

ماهي طريقة إنشاء الإسم الأصلي لملف ما ؟

تقليص
X
 
  • تصفية - فلترة
  • الوقت
  • عرض
إلغاء تحديد الكل
مشاركات جديدة

  • ماهي طريقة إنشاء الإسم الأصلي لملف ما ؟

    السلام عليكم ورحمة الله
    السؤال عن إيجاد طريقة لتكوين اسم في برنامج ما ، ولن يتضح ذلك إلى من خلال هذا المثال :
    وضعت قبل أيام سؤال عن طريقة لتحويل مجموعة ملفات صوتية من أي تنسيق إلى OGG ، وللأسف إلى الآن لم أجد البرنامج الذي أريده بالظبط وشكرا لمن ساعدني هناك ، المهم وما كنت أرجوه هو طريقة تكوين مثلا ملف نصي فيه المراد من الأوآمر ثم جعله صالحا للتنفيذ ثم نسخه إلى أحدى مسارات الأوآمر ، وقد كانت الطريقة التي وضعها الأخ زياد لتحويل الملفات الصوتية من أي تنسق إلى ال mp3 هي المنارة لي وكانت طريقته هل كالتالي
    إنشاء ملف نصي يحتوي على الأسطر الثلاثة التالية :
    كود PHP:
    mplayer -ao pcm:file=temp.wav $1
    lame temp
    .wav $2
    rm temp
    .wav 
    وتسميته مثلا بالإسم tomp3 ثم إعطاء الملف صلاحيات التنفيذ للجميع
    كود:
    chmod 755 tomp3
    ثم نسخه مثلا إلى المسار التالي
    كود PHP:
    /usr/bin
    ثم كانت الطريقة من أجل تحويل ملف صوتي أيا كان نوعه إلى ال mp3 هي كالتالي
    كود:
    tomp3 filename.wav filename.mp3
    هذا المثال أعلاه يحول الملف الصوتي ذا التنسيق wav إلى mp3 ، وبعد طول بحث على طريقة مقاربة من أجل التحويل إلى ogg ، الحمد لله وجدتها وهي باستخدام الأمر oggenc وذلك من خلال إنشاء ملف وتسمته مثلا ب toogg وكتابة التالي فيه
    كود:
    mplayer -ao pcm:file=temp.wav $1
    oggenc temp.wav $2
    rm temp.wav
    فقط اسبتدلت ال lame بال oggenc ، وكانت والحمد لله الطريقة ناجحة لإنشاء ملف ogg ، ولكن المشكلة في الإسم فمثلا حين أحول ملف صوتي من mp3 إلى ogg بالطريقة التالية
    كود:
    toogg filename.mp3 filename.ogg
    فإنه ينشأ لي ملف باسم temp.ogg ولا ينشأه باسم ال filename.ogg ، كما أريده أنا ، وتظهر لي طبعا في نهاية التحويل الكتابة التالية :
    كود PHP:
    ERRORCannot open input file "filename.ogg"No such file or directory 
    فأرجوا ممن لديه إفادة يضعها والشكر للجميع .

  • #2
    أحب أعتذر بصفة خاصة لمشرفنا العزيز Mutati0N على تفهمه .
    يمكنك في ال Unix-like ومنها GNU/Linux استخدام مجموعة أوامر وجعلها في سطر واحد ثم تنفيذها جميعا ، كما يمكنك استخدام ملف يحتوي على تلك الأوآمر التي تريد تنفيذها دفعة ، ويفضل أن تكتب في بداية هذا الملف السطر التالي
    كود:
    #!/bin/bash
    ليبدوا الملف بصورته الصحيحة
    كود:
    #!/bin/bash
    mplayer -ao pcm:file=temp.wav $1
    oggenc temp.wav -o $2
    rm temp.wav
    أو الصدفة التي ستستخدمها من أجل تفسير وتنفيذ أوآمرك ، وهي تعتبر لغة برمجية ، وقد شرحها الأستاذ على الشمري في موضوع جميل shell script ، وهذا الملف الذي كتبت محتواه أريده أن ينفذ من خلال الباش ، وأريد معلومات تعينني على إكمال كتابة الملف بشكله الصحيح ، فالطريقة التي أريدها كيف لي أن أنشأ برنامج فيه البرامج المذكورة ولكنه يقوم حين تنفيذ الأمر
    كود:
    toogg filename.wav
    كيف لي أن يجعله يكون خرجه filename.ogg وليس temp.ogg ، وشكرا للجميع .

    تعليق


    • #3
      وعليكم السلام

      اهلا ياباسم ..
      الفكرة كلها هتتلخص فى التالى .. إنك تعمل split لإسم الfile اللى هتستخدمه -ال Split هيكون لل "." -
      وبينتج منها
      filename, ext
      خزن ال filename فى متغير لوحده
      بعد كدا اعمل mv لل temp file لل filename + .mp3

      اتمنى إنه يكون افادك .. إذا تحب ممكن اعملك السكربت دا بالبيثون لأنى مش كويس فى ال shell scripting وإذا مصر فإستنى حد من الجماعة بتوع ال sh
      Programming-Fr34ks[dot]NET
      Ma Weblog
      ابدأ بتعلم Python | Ruby
      كتاب البايثون متوافر الآن
      لا اتواجد بهذا المنتدى ... للإتصال

      تعليق


      • #4
        جرب إستبدل:
        كود:
        oggenc temp.wav -o $2
        بـ
        كود:
        oggenc temp.wav -o $(basename $1 .mp3).ogg
        بالإعتماد ان $1 هي ذات إمتداد mp3
        echo 'echo "Leastwise-Try-It-Your-Self!"' >> ~/.bashrc

        تعليق


        • #5
          أشكرك أخي وأستاذي StrikerX ، على الإفادة التي لم تفيدني لأني مش فاهيم أي حاجة عن الباثيون ، وإنت من أجدع رجالة الباثيون الأشاوس ، ربنا يخليك ، ولو هاتعمل سكريبت على الباثيون للغرض دة فهذا كرم منك .
          والشكر للأستاذ المتألق XShape ، معلوماتك هايلة ، وكما ذكرت بالضبط أن
          oggenc temp.wav -o $(basename $1 .mp3).ogg
          هاتنفع فقط مع الملفات ذات التنسيق mp3 والتي يراد تحويلها إلى ogg ، وإذا مانفذته على ملف مثلا من نوع rm فإنه يبقي الكتابة rm مع ogg ، يعني مثلا لو أردت مع التعديل السابق على الملف التالي وبالطريقة التالية
          toogg filename.rm
          فإنه ينتج عنه الملف التالي filename.rm.ogg بينما مع ملفات ال mp3 فهو بدون هذه المشكلة ، ومع التعديل عليه ليكون بالصورة التالية
          oggenc temp.wav -o $(basename $1 .rm).ogg
          فإنه لامشكلة كذلك مع ملفات ال rm ،
          وهذا يعني أن كل نوع من أنواع الملفات الصوتية سيحتاج إلى سيكريبت خاص بيه ، وأظن أن هذا غير عملي .
          فما هي الطريقة مشكور ين والشكر كذلك للأستاذي الفاضل XShape لتعاونه ،

          تعليق


          • #6
            جرب إستبدل
            كود:
            oggenc temp.wav -o $(basename $1 .mp3).ogg
            بـ
            كود:
            oggenc temp.wav -o ${1%.*}.ogg
            للتجربه:
            كود:
            export x="My.File.Is.rm" && echo ${x%.*}.ogg
            ولكن الآن يشترط أن الملف دائما ينتهي بنقطه ثم نوعه..
            للإستفاده أكثر انظر إلى:
            http://www.faqs.org/docs/abs/HTML/st...ipulation.html
            وحياك الله..
            echo 'echo "Leastwise-Try-It-Your-Self!"' >> ~/.bashrc

            تعليق


            • #7
              مش عاوزه حكايه ياباسم طالما انو يخرج لك الملف باسم temp اضف امر mv بعد عملية الاخراج

              ممكن يكون زي كذا

              mv temp.mp3 $2

              تعليق


              • #8
                بسم الله
                أشكرك شكرا كثيرا أستاذ XShape على هذا المجهود ، وأبشرك الطريقة
                oggenc temp.wav -o ${1%.*}.ogg
                نجحت إلى حد كبير ، فقد نجحت في الملفات التالية بالطريقة التالية
                toogg filename.rm
                toogg file{name}.rm
                toogg file[name].rm
                toogg file(name).rm
                toogg file,name.rm
                toogg filename
                فإنها مع كل الملفات السابقة ينتج عنه ملف امتداده ogg بصورة سليمة بدون مشاكل حتى مع الإسم الأخير والذي لم يذكر معه الإمتداد ، ومع ذلك فشل البرنامج بالتالي
                toogg file name.rm
                toogg ملف_عربي.rm
                فإن البرنامج لم يستطع التعامل مع الملفات التي فيها فراغ أو المسماة بأحرف عربية ، ولك جزيل الشكر ، وبالنسبة لرأي الأخ عبد العزيز إن شاء الله أجربه ثم أرد هنا .

                تعليق


                • #9
                  جربت الذي قلته أستاذ عبد العزيز من دون فائدة ، وشكرا للجميع .

                  تعليق

                  يعمل...
                  X