تغيير جملة موجودة في ملف ( c language )

السلام عليكم هل منكم من تصادف بهذا المشكل يعني يريد تغير سطر في ملف txt او جملة لم اجد اي دالة تفي بالغرض

كل ما وجدته كحل أن تنشأ ملف جديد و تنقل محتوى الملف الأول الى الملف الثاني حرف ب حرف و تقوم بتغير ما تريد

عند الوصول الى ذلك السطر الى غاية النهاية تحذف الملف الأول و تغير اسم الملف الثاني الى اسم ملف الأول

هي طريقة تستهلك وقت و غير فعالة

أريد رأيكم و هل هناك من لديه فكرة ؟

الرام 256 كيلو بايت و الملف كبير نوعا ما 25 كيلو بايت

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

التعليقات

يوسف سيد أضف ردا

بحسب ما فهمتُ أنت تقصد الكتابة فوق بيانات على الملف؟ إذا كان كذلك الأمر جدّ بسيط ستغير موقع مؤشر الكتابة، ثم تكتب، مثلًا هذه الدالة -ستحتاج إلى إعادة المؤشر إن كنت ستستخدم الملف بعدها-:

void replaceFileFrom(FILE *stream, int start, char *str) {
    fseek(stream, start, SEEK_SET);
    fputs(str, stream);
}

وهذا مثالٌ على اِستخدامها:

amin0u أضف ردا

الله ينورك :)

تم حل المشكل و هل يمكن اضافة سطر في الوسط بدون كتابته فوق البيانات ؟

يوسف سيد أضف ردا

تم حل المشكل و هل يمكن اضافة سطر في الوسط بدون كتابته فوق البيانات ؟

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

على الجانب: لن يصل تنبيه إذا ما عدلتَ ردًا كان أفضل إن تكتب ردًا أخرًا، لم أنتبه أنك عدلتَ ردك وأضفتَ هذا السؤال إلا عندما رأيتُ رد @Rashadoo .

لقد كتبت دالة تفي بالغرض و التي تخزن سطر في جدول char و تكتب فوقه السطر الذي نريد اضافته ثم تأخد السطر الذي بعده و تخزنه و تكتب السطر السابق مكانه الى غاية نهاية الملف لتضيف السطر الأخير

هي أفضل طريقة تفي بالغرض وجدتها لحد الأن الا أنني أحس أنها ليست فعالة ( فهي تستهلك وقتا ) خصوصا اذا كان الملف كبيرا

Rashadoo أضف ردا

عفواً اعتذر .. لم اكن اعرف انه يعرف مكان بداية الكلمة المراد استبدالها

1- ما هو نظام التشغيل الذي تعمل عليه؟

2- هل تعرف موقع الجملة المراد تغييرها ضمن الملف الأول؟

1- ما هو نظام التشغيل الذي تعمل عليه؟

أنا اعمل على لوحة أردوينوا

2- هل تعرف موقع الجملة المراد تغييرها ضمن الملف الأول؟

نعم قمت ب برمجة دالة تعيد لي موقعها و بدالة seek() اذهب الى بداية الجملة في الملف