Tareq Khashaneh نشر 17 مايو 2016 أرسل تقرير نشر 17 مايو 2016 السلام عليكم .... اريد ان اسأل عن كيفية حذف سطر معين وكلمة معينة من ملف نصي بلغة سي. اقتباس
1 هشام رزق الله نشر 18 مايو 2016 أرسل تقرير نشر 18 مايو 2016 سأفترض أنك تعرف رقم السطر الذي تريد حذفه وهو موجود في متغير باسم delete_line وأن الملف الذي تريد حذف السطر منه موجود في fileptr1 وستكون النتيجة في fileptr2 (ملفnew.txt )، ففي هذه الحالة يمكنك استخدام حلقة التكرار while للدوران حول الحروف في الملف ونسخ الحروف إلى الملف الجديد ما عدا الحروف الموجودة في السطر الذي تريد حذفه: FILE *fileptr1, *fileptr2; char filename[40]; char ch; int temp = 1; fileptr2 = fopen("new.txt", "w"); ch = getc(fileptr1); while (ch != EOF) { ch = getc(fileptr1); if (ch == '\n') { temp++; } if (temp != delete_line) { putc(ch, fileptr2); } } اقتباس
0 E.Nourddine نشر 19 مايو 2016 أرسل تقرير نشر 19 مايو 2016 جرب الكود التالي: #include <stdio.h> char buffer[128]; /* عدد أحرف السطر المبحوث عنه */ FILE * in, * out; in = fopen( "input.txt", "r" ); out = fopen( "output.txt", "w" ); if ( in == NULL || out == NULL ) { perror( "fopen" ); } while ( ! feof( in )) { if ( fgets( buffer, 128, in ) == NULL ) { perror( "fgets" ); } if ( goodline( buffer )) { fputs( buffer, out ); } } fclose( in ); fclose( out ); if ( rename( "output.txt", "input.txt" ) != 0 ) { perror( "rename" ); } حيث سيقوم السكريبت بما يلي: ستقوم بادخال نص السطر المبحوث عنه. يفتح السكريبت الملف النصي، ويقوم بالبحث عن السطر المبحوث عنه سطراً سطراً. هناك احتمالين عند تصفح كل سطر: عدم توافق السطر الحالي مع السطر المبحوث عنه: في هذه الحالة سيتم نسخ السطر الحالي في ملف آخر output.txt في حال توافق السطر الحالي مع السطر المبحوث عنه سيتم تجاوز هذه المرحلة دون نسخ السطر في الملف الجديد. يغلف الملفين معا input.txt وَ الملف المحصل عليه output.txt تغيير اسم output;txt إلى input.txt وبالتي نحصل على ملف خالي من السطر المبحوث عنه والمُراد حذفه. 1 اقتباس
السؤال
Tareq Khashaneh
السلام عليكم ....
اريد ان اسأل عن كيفية حذف سطر معين وكلمة معينة من ملف نصي بلغة سي.
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.