┐─ تحليل الملف ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── ┌
│ المطور : غير محدد (عالمي)
│ الفئة : نظام
│ نوع MIME : text/plain
┘ ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── └
ما هو ملف CFG؟
CFG (Configuration — تكوين) هو امتداد ملف عام تستخدمه آلاف التطبيقات والألعاب والأنظمة لتخزين الإعدادات والتفضيلات. لا يوجد معيار واحد لصيغة CFG — المحتوى الداخلي يعتمد كلياً على التطبيق المنشئ له:
- بعض التطبيقات تستخدم أزواج
key=valueبنمط INI - أخرى تستخدم XML أو JSON أو YAML
- بعض الألعاب تستخدم صيغ خاصة بها تماماً
- بعضها مزيج من أنماط متعددة
ملفات CFG نصية في الغالب، يمكن قراءتها بأي محرر. التطبيقات المختلفة تضعها في مواضع مختلفة: مجلد التطبيق، مجلد المستندات، أو بيانات التطبيق.
كيفية فتح ملفات CFG
- المفكرة / Notepad++ (ويندوز) — فتح مباشر للقراءة والتحرير
- VS Code (ويندوز، ماك، لينكس) — تلوين صياغة حسب المحتوى
- TextEdit (ماك) — في وضع النص العادي
- Vim / Nano (لينكس) — محررات الطرفية
- التطبيق المنشئ — الأفضل دائماً لضمان التحرير الصحيح
المواصفات التقنية
| الخاصية | القيمة |
|---|---|
| الصيغة | متنوعة (INI، key=value، XML، JSON، مخصص) |
| الترميز | UTF-8 أو ASCII في الغالب |
| التعليقات | # أو ; أو // حسب التطبيق |
| معيار عالمي | ❌ لا يوجد |
| الموقع | يختلف بالتطبيق |
| نوع MIME | text/plain |
الاستخدامات الشائعة
- إعدادات الألعاب: محركات ألعاب كـ Minecraft وSource Engine وUnity تحفظ إعداداتها في CFG (الرسوميات، التحكم، الشبكة)
- تكوين خوادم الويب: Apache و Nginx ومحركات CGI تستخدم CFG لإعداداتها
- إعدادات Python: بعض تطبيقات Python تستخدم
configparserمع ملفات CFG - أنظمة البناء: أدوات كـ CMake وMake تستخدم CFG لتكوين البناء
- تطبيقات المؤسسات: برامج ERP وCRM تخزن إعداداتها في CFG لسهولة التعديل دون واجهة
Minecraft كمثال شائع
# server.properties (Minecraft)
max-players=20
server-port=25565
level-name=world
gamemode=survival
difficulty=easy
allow-nether=true
تحذيرات عند تعديل CFG
- انسخ احتياطياً أولاً: قبل تعديل أي ملف CFG، احفظ نسخة باسم
.cfg.bak - لا تُغيِّر ملفات CFG النظامية: تعديل ملفات التكوين الخاصة بالنظام قد يُعطل الخدمات
- راعِ الترميز: احفظ بنفس الترميز الأصلي (UTF-8 أو ANSI)
- راعِ نهايات الأسطر: بعض التطبيقات حساسة لـ LF مقابل CRLF
قراءة CFG بـ Python
import configparser
config = configparser.ConfigParser()
config.read('app.cfg')
# قراءة قيمة
host = config['database']['host']
port = config.getint('database', 'port')
# تعديل وحفظ
config['database']['port'] = '5433'
with open('app.cfg', 'w') as f:
config.write(f)