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

هل هناك دالة API ترجع إذا كان الملف Executable أو Text أم لا؟

مغلق
بدأه micheal R jordan في 15 مايو 2007 · 10 رد · 777 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

هناك دالة api لا أذكرها ترجع إذا كان الملف executable أم لا

في الحقيقة

أبحث عن دالة تعيد إذا كان الملف text file

الطريقة التي أستعملها وهي لا أعرف ما أقول

هي

On Error GoTo ErrHandle
Open filepath For Input As #1
filestring = Input(LOF(1), 1)
Close #1
ErrHandle:
If Err.Number = 62 Then
'أي شيء
End If

فأرجو المساعدة إذا كان ممكنا

#2

لا أعلم أن كان فى دالة للملفات النصية و لا لأ و أغلب الظن أنه لأ , لأن ليس لها أهمية قصوى على مستوى نظام التشغيل.

عموما هل فى حالتك ( أقصد ظروف برنامجك ) ما ينفعش نكتفى بالتأكد من الأمتداد ؟

ملاحظة لتعديل طريقتك لفتح الملفات و هى لتفادى الأخطاء :

Dim FF As Integer
FF = FreeFile()

ثم أستعمل FF بدل من الأرقام ( زى 1 و 2 و ....... )

#3

فعلا مفيش دالة لكدة والطرقة الوحيدة الامتداد

والدليل على كدة ان ال Explorer بتاع الويندوس لو غيرت امتداد الملف ميعرف يفتحه

موقع البرنامج

مبارك لشعب تونس photo-thumb-42837.png

#4

نعم شكرا أخي بخصوص Handle الذي يعطى للملفات المفتوحة ليتعامل معها النظام

لقد كتبتته فقط كمثال ولم أهتم لأمور declaration or any thing

بخصوص

اقتباس
عموما هل فى حالتك ( أقصد ظروف برنامجك ) ما ينفعش نكتفى بالتأكد من الأمتداد ؟

فظروف البرنامج هو القيام بتغيير معين في كل الملفات ويحصل على هذه الملفات بالبحث عنهم بواسطة

Dir$(Path,Extention)

ولم أستبعد"*.*"

وفي هذه الحالة إذا بحث المستخدم في مجلد يحتوي على "zip.*" أو "exe.*" فسيوضع للفتح وسيحصل الخطأ

في الحقيقة لا مشكلة مع err.number=62 فقط أردت التأكد بأنه لا طريقة أخرى

ولا أظن أن أستبعاد *.* سيكون جيدا لأنه قد يكون التغيير في امتدادين مختلفين

خلا صة القول

استعمل Err.Number=62

#5

الأخ الفاضل ...

بطريقة بسيطة، أغلب الملفات التنفيذية تبدء بالحرفية MZ

ولكل ملف بيانات (Format) خاصه به، فى اول الملف تحتوى بيانات تساعد على تشغيل الملف (ما بعرف بالـ Header أو Magic Numbers)

صور JPG ستجد الجزء الأول منها ارقام ثابتة (FF D8 FF) بالسادس عشرى

صور GIF تبدء بـ GIF مثال (GIF89a - GIF87)

صور BMP تبدء بـ BM

ملفات فلاش SWF تبدء بت FW

الصوت WAV تبدء بـ RIFF

الصوت MP3 غالباً ID3

................ الخ

وبعض البرامج لا تعتمد على الامتداد فقط فى فحص الملف، فلو عندك ملف MP3 وغيرت امتداده إلى TXT ثم فتحته بـ Media Player فستجد أن الملف سيعمل ويستطيع تشغيله

أما بخصوص الملفات النصية TXT، فليس لها Format محدد، لكن تستطيع البحث عن بعض القيم التى غالباً غير موجوده فى الملف النصى Text (غالباً الملفات النصية لا تحتوى على القيمة (0) كـ Byte "أما ملفات Unicode فيتم الفحص Word أى 2Bytes")، فإذا وجدت احدى هذه القيم، فقد يكون الملف غير نصى (لكن ليس أكيد 100%)، والملف النصى القياسى قد يحتوى على الارقام (0 - 9) والحروف (a - z) و (A - Z) و (CR أى كود 13) و (LF أى كود 10) و (SB أى كود 32) و (TAB أى كود 9) وينتهى بـ (26 أو بالسادس عشرى 1A) والتى تمثل بلوحة المفاتيح (Ctrl+Z)

أما الملفات النصية مثل DOC أو RTF - فلها Format معرفة

شكراً

Eng. Usama El-Mokadem

Nothing is impossible, the word impossible itself says that: I M - Possible

#6

اخ اسامه هو قال فقط برنامج بسيط للبحث وليس برنامج PE للملفات التنفيزية :lol:

لان فى برامج البحث افضل شئ هو الاعتماد على الامتدادات لظهور برامج بملفات جديدة كل يوم

اما فى الحالات التى يتخصص فيها برنامج للتعامل مع ملف معين يمكن استخدام تحليل الملف كما ذكرت لتشغيله

وشكرا

تم تعديل هذه المشاركة بواسطة حريف برمجة في 15 مايو 2007 في 07:28

موقع البرنامج

مبارك لشعب تونس photo-thumb-42837.png

#7

@ أخى أسامه : الحصول على الـ Header مش صعب لكن هل فيه Header للملفات النصية ؟

#8
اقتباس
@ أخى أسامه : الحصول على الـ Header مش صعب لكن هل فيه Header للملفات النصية ؟
اقتباس
أما بخصوص الملفات النصية TXT، فليس لها Format محدد، لكن تستطيع البحث عن بعض القيم التى غالباً غير موجوده فى الملف النصى Text (غالباً الملفات النصية لا تحتوى على القيمة (0) كـ Byte "أما ملفات Unicode فيتم الفحص Word أى 2Bytes")، فإذا وجدت احدى هذه القيم، فقد يكون الملف غير نصى (لكن ليس أكيد 100%)، والملف النصى القياسى قد يحتوى على الارقام (0 - 9) والحروف (a - z) و (A - Z) و (CR أى كود 13) و (LF أى كود 10) و (SB أى كود 32) و (TAB أى كود 9) وينتهى بـ (26 أو بالسادس عشرى 1A) والتى تمثل بلوحة المفاتيح (Ctrl+Z)

أما الملفات النصية مثل DOC أو RTF - فلها Format معرفة

طبعاً بالاضافة لبعض الرموز التى قد تستخدم فى تحرير النصوص مثل (النقطة والفصلة والاستفهام ... الخ)، والحروف العربية فى حالة الملف باللغة العربية مثلاً، أى عملية البحث تكون عن رموز غالباً غير مستخدمة فى الكتابة

تم تعديل هذه المشاركة بواسطة Eng. Usama El-Mokadem في 15 مايو 2007 في 13:30

Eng. Usama El-Mokadem

Nothing is impossible, the word impossible itself says that: I M - Possible

#9

يبقى أعتقد أن مفيش طريقة مباشرة , دوخة و خلاص !

ضشكرا على الأهتمام بالرد.

#10

السلام عليكم شكرا يا إخوان

اقتباس
اخ اسامه هو قال فقط برنامج بسيط للبحث وليس برنامج PE للملفات التنفيزية

هذا الكلام صحيح وكما شرحت سابقا ما سأفعله هو القيام بتغييرات في ملفات في نفس الوقت

البرنامج الصغير يعمل جيدامعي ولكن أي شخص آخر قد يدخل binary file ولا يهم لان البرنامج سيفتحه ومن تم يحصل على الخطأ ومن يكمل

وأنا فقط أردت التأكد من أنه لا توجد طريقة فإنه من المهم أن تعرف كيف يعمل الاخرون وتقارن وتأخد الافضل الاحسن

وشكرا لكم

#11

أهلا مرة أخرى

لم أعرف هل أضع المثال هنا

أم في موضوع آخر فارتأيت أن أضعه هنا

وشكرا على ردودكم

Change_Files.rar

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

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