البرمجة

قراءة أسطر معينة في ملف التكوين باستخدام C

عند القراءة من ملف نصي مثل ملف التكوين الذي ذكرته، يمكنك استخدام العديد من الطرق لقراءة الأسطر التي تهمك دون قراءة الأسطر الأخرى. إليك بعض الطرق التي يمكنك استخدامها باستخدام لغة البرمجة C:

1. استخدام fgets مع العد الذكي للأسطر:
يمكنك استخدام دالة fgets لقراءة النص في كل سطر من الملف، ثم تحديد الأسطر التي تريد قراءتها وتجاهل الأسطر الأخرى. على سبيل المثال:

c
#include int main() { FILE *file; file = fopen("config.txt", "r"); if (file == NULL) { printf("Unable to open file.\n"); return 1; } char line[256]; int line_number = 0; while (fgets(line, sizeof(line), file)) { line_number++; if (line_number == 3 || line_number == 5 || line_number == 7) { printf("%s", line); // or do whatever you want with the line } } fclose(file); return 0; }

2. استخدام fscanf مع تجاهل الأسطر التي لا تحتاجها:
باستخدام fscanf، يمكنك تجاهل الأسطر التي لا تحتاج إليها من خلال قراءة وتجاهل السطور التي تحتوي على البيانات التي لا تهمك. على سبيل المثال:

c
#include int main() { FILE *file; file = fopen("config.txt", "r"); if (file == NULL) { printf("Unable to open file.\n"); return 1; } char buffer[256]; // Skip unwanted lines fscanf(file, "%*[^\n]\n%*[^\n]\n"); // Read and print wanted lines while (fscanf(file, "%[^\n]\n", buffer) == 1) { printf("%s\n", buffer); // Skip unwanted lines fscanf(file, "%*[^\n]\n%*[^\n]\n"); } fclose(file); return 0; }

في الطريقتين، يتم استخدام المتغير line_number أو buffer لقراءة الأسطر واختيار الأسطر المحددة التي تريد قراءتها، وتجاهل الأسطر الأخرى. بعد ذلك، يتم إغلاق الملف باستخدام fclose.

المزيد من المعلومات

بالطبع، إليك الاستكمال:

3. استخدام getline للقراءة الديناميكية:
يمكنك أيضًا استخدام دالة getline لقراءة الأسطر من الملف بشكل ديناميكي، وذلك باستخدام حجم الذاكرة المطلوب لكل سطر. بمجرد قراءة كل سطر، يمكنك التحقق مما إذا كان السطر الحالي يحتوي على البيانات التي تريدها. على سبيل المثال:

c
#include #include int main() { FILE *file; file = fopen("config.txt", "r"); if (file == NULL) { printf("Unable to open file.\n"); return 1; } char *line = NULL; size_t len = 0; ssize_t read; int line_number = 0; while ((read = getline(&line, &len, file)) != -1) { line_number++; if (line_number == 3 || line_number == 5 || line_number == 7) { printf("%s", line); // or do whatever you want with the line } } free(line); fclose(file); return 0; }

استخدام التعبيرات النمطية (Regular Expressions):
بعض لغات البرمجة توفر دعمًا لتعبيرات نمطية، مما يمكنك من تحديد الأسطر التي تهمك باستخدام أنماط معينة. على سبيل المثال، في Python، يمكنك استخدام المكتبة re لتحقيق ذلك.

python
import re with open("config.txt", "r") as file: for line in file: if re.match(r'^\s*\S', line): # Matches lines that start with a non-whitespace character print(line.strip())

تذكر أن تستبدل \S بنمط يطابق النص الذي ترغب في قراءته.

باستخدام أي من هذه الأساليب، يمكنك قراءة الأسطر المحددة التي تهمك من ملف التكوين دون الحاجة إلى قراءة الأسطر الأخرى. تأكد من اختيار الطريقة التي تناسب متطلبات مشروعك ولغة البرمجة التي تستخدمها.

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر