تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
كود حذف ما بعد نص معين
#1
السلام عليكم ورحمة الله وبركاته
اخواني الاعزاء
لقد واجهتني مشكلة وفق سيناريو معين ارجو الرد اذا كان اي احد لديه معلومات

لدي قاعدة بيانات تحتوي جدول فية اسماء ملفات وورد او ادوبي مخزونة في الحاسبة اي موجود المسار بالاضافة الى اسم الملف والذي ينتهي بالامتداد PDF  او DOC. حيث ان كل صف في الجدول يحتوي معلومات كما في المثال

C:\directory\word\aa.pdf

لقد اصاب فايروس هذه الحاسبة بحيث قام هذا الفايروس باضافة كتابة الى كل ملف وتجعل قاعدة البيانات لا تعمل واصبح كل حقل في الجدول بالشكل التالي

C:\directory\word\aa.pdfAAfgjgjhhhgjghdlfhmdhkdffhkdfkh

سؤالي هل هناك طريقة لحذف الكتابة الاضافية بحيث تعود الى شكلها السابق وبالتالي لا يؤدي ذلك الى حذف مسارات العمل
مع الشكر الجزيل لمساعدتكم
الرد }}}
تم الشكر بواسطة:
#2
منيح يلي ما وضعت سؤالك في قسم الاسئلة منشان العدوى.... عمبمزح حبيبي عمار....

ممكن نعمل حلقة for تمر على اللاسماء وتعدل اسماء الملفات.... لكن ما بنعرف شو تستخدم #C او VB أو VB6 او......
الرد }}}
تم الشكر بواسطة:
#3
اخي العزيز شكراً على ردك
انا استخدم سي شارب ولكني بدي اعمل stored procedure قي السيكوال حتى اعمل Job يتنفذ كل اسبوع لتنظيف البيانات
المشكلة مش في اللوب هاي سهلة المشكلة كيف تفصل وتحذف كل كتابة ما بعد كلمة PDF او DOC واللي بعدها لازم ينحذف حتى تحافظ على البيانات من التغيير
شاكر مرة ثانية على مرورك
الرد }}}
تم الشكر بواسطة:
#4
حسب شرحك الاخير انو البيانات يلي تغيرت في قاعدة البيانات مش الملفات يلي بالجهاز
جرب هاد (طبعا فهمت منك ان قاعدة البيانات هي sqlserver)
علاساس انك تريد تبقي التلات حروف بعد النقطة الاخيرة.
كود :
UPDATE [dbo.myTable] SET  [filename] = REVERSE(SUBSTRING(REVERSE([filename]), CHARINDEX('.', REVERSE([filename])) - 3, 255))

فقط غير اسم الجدول myTable واسم الحقل filename ولاحظ ان اسم الحقل موجود تلات مرات في الكود
الرد }}}
تم الشكر بواسطة:
#5
شكرا اخي على الرد
يبدو اني احتاج الى توضيح اكثر
قاعدة البيانات لدي (CT) فيها جدول (Source_Path) يحتوي على حقل نص مخزون فيه مسار الملف وكما ذكررت في اعلاه بحيث تكون السجلات كالتالي

السجل الاول فية C:\directory\word\aa.pdf
السجل الثاني D:\directory1\Excel\ss.doc

وهكذا . الان بعد ان اصابه الفايروس اصبح

السجل الاول فية C:\directory\word\aa.pdf<divNJDHSSSUHDHFDSH
السجل الثاني D:\directory1\Excel\ss.doc<divLJLDkfkhsfkjdsfkhfds

طلبي هو سكربت استخدمه داخل SSMS لغرض حذف هذه الزيادات التي اصابت السجلات والتي هي حوالي 18000 سجل بحيث يرجع الجدول الى شكله السابق المذكور في اعلاه والبرنامج الخاص بي يقوم باستدعاء الملفات ولكن الان بسبب اسم الملف الذي اصبح غريبا لا يمكنه الاستدعاء

شكراً لكم على تعاونكم ومساعدتكم لحل هذه المشكلة
الرد }}}
تم الشكر بواسطة:
#6
نعم، هناك عدة طرق يمكنك استخدامها لحذف الكتابة الاضافية واستعادة الجدول إلى شكله السابق. أحد الأساليب الشائعة هو استخدام برنامج جاهز على تحليل قاعدة البيانات وإزالة الكتابة الزائدة. أيضًا، يمكنك إعادة تعيين كل حقل في الجدول بشكل يدوي إذا كان لديك عدد قليل من الصفوف.

لكن، إذا كان لديك عدد كبير من الصفوف، يمكنك استخدام البرمجيات لحل المشكلة بشكل أسرع وأكثر دقة. على سبيل المثال، يمكنك استخدام برنامج Microsoft Excel لتحليل الجدول وإزالة الكتابة الزائدة.

خطوة 1: قم بفتح الجدول في Microsoft Excel.
خطوة 2: اختر عمود الذي يحتوي على الحقول التي تريد تصحيحها.
خطوة 3: اضغط على زر "Data" ومن ثم اختر "Text to Columns".
خطوة 4: اختر "Delimited" وأضغط على "Next".
خطوة 5: اختر "Other" كنوع الفاصلة وأدخل "." كفاصلة.
خطوة 6: اضغط على "Finish".

خوف عن تعديل أو تلف أي جزء من البيانات، لذلك يفضل أن تأخذ نسخة احتياطية من الجدول قبل البدء في أي عملية تحليل أو تصحيح.

أتمنى أن تساعد هذه الإرشادات في حل مشكلتك.
الرد }}}
تم الشكر بواسطة:


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم