• 0

كيف أحذف سطر ما وكلمة معينة من ملف نصي بلغة C؟

السلام عليكم ....

اريد ان اسأل عن كيفية حذف سطر معين وكلمة معينة من ملف نصي بلغة سي.

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 1

سأفترض أنك تعرف رقم السطر الذي تريد حذفه وهو موجود في متغير باسم 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

جرب الكود التالي:

#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" ); }

حيث سيقوم السكريبت بما يلي:

ستقوم بادخال نص السطر المبحوث عنه.

يفتح السكريبت الملف النصي، ويقوم بالبحث عن السطر المبحوث عنه سطراً سطراً.

هناك احتمالين عند تصفح كل سطر:

  1. عدم توافق السطر الحالي مع السطر المبحوث عنه: في هذه الحالة سيتم نسخ السطر الحالي في ملف آخر output.txt
  2. في حال توافق السطر الحالي مع السطر المبحوث عنه سيتم تجاوز هذه المرحلة دون نسخ السطر في الملف الجديد.

يغلف الملفين معا input.txt وَ الملف المحصل عليه output.txt

تغيير اسم output;txt إلى input.txt وبالتي نحصل على ملف خالي من السطر المبحوث عنه والمُراد حذفه.

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن