كيف يتم حذف اول حرف من اسماء مجموعه ملفات
#1
[COLOR="DarkGreen"]السلام عليكم ورحمة الله وبركاته
على سبيل المثال عندي 400 ملف كل منهم يبدأ أسمه بكلمة id
id01 - id02 - id03
كيف يتم حذف كلمة id من ال 400 ملف مره واحده
لاني حاولت ان اقوم بها من خلال ال Dos ولم اتمكن
شكرا جزيلا[/COLOR]
قل إن صلاتي ونسكي ومحياي ومماتي لله رب العالمين
الرد
#2
وعليكم السلام ورحمة الله وبركاته

كود :
var OldN,NewN : TSearchRec; Path : String; begin Path := 'C:\Temp\'; if FindFirst(Path+'*.*', faArchive, OldN) = 0 then begin repeat NewN.Name := (OldN.Name); Delete(NewN.Name,1,2); ReNameFile(Path + OldN.Name ,Path + NewN.Name); until FindNext(OldN) <> 0; FindClose(OldN); end;

لا أعرف إن كان هناك أسهل من هذه الطريقة ولكنها تؤدي العمل بكل الأحوال Smile

أيضاً يمكنك تعديل الاسماء من خلال powershell

كود :
gci *.pas | rename-item -newname { [string]($_.name).substring(2) }
الرد
#3
[COLOR="DarkGreen"]بارك الله فيك اخي m.rabee
الكود يعمل جيدا
[/COLOR]
[COLOR="Purple"]
لي سؤال بنفس الصدد
كيف اقوم بحذف اول حرفين بعد كلمه ID اذا كانا الحرفين 00 مع تغير امتدات الملف ؟
مثلا اسم الملف id0001.rpm - id0002.rpm - id0804.rpm
لتصبح الاسماء هكذا ..
كود :
01.mod - 02.mod - 0804.mod

[/COLOR]
قل إن صلاتي ونسكي ومحياي ومماتي لله رب العالمين
الرد
#4
اهلا أخي ELARAPY

كود :
var OldN : TSearchRec; NewN, Path : String; begin Path := 'C:\Temp\'; if FindFirst(Path+'*.*', faArchive, OldN) = 0 then begin repeat NewN := OldN.Name; if (UpperCase(NewN[1]) = 'I') and (UpperCase(NewN[2]) = 'D') then Delete(NewN,1,2); if (NewN[1] = '0') and (NewN[2] = '0') then Begin Delete(NewN,1,2); Delete(NewN,Length(NewN)-3,4); NewN := NewN+'.meg'; End; ReNameFile(Path + OldN.Name ,Path + NewN); until FindNext(OldN) <> 0; FindClose(OldN); end; end;
الرد
#5
السلام عليكم ورحمة الله

الكود يعمل جيدا ولكن لم يقم بتغير اسم الملف id0804.rpm
قل إن صلاتي ونسكي ومحياي ومماتي لله رب العالمين
الرد
#6
elarapy كتب :الكود يعمل جيدا ولكن لم يقم بتغير اسم الملف id0804.rpm

وعليكم السلام ورحمة الله وبركاته

أنت أردت أن تحول الاسم في حال كان يبدأ بـ id ثم 00
إقتباس :كيف اقوم بحذف اول حرفين بعد كلمه ID اذا كانا الحرفين 00 مع تغير امتدات الملف ؟

والملف الذي ذكرته يحتوي على 0 واحدة بعد الـ id فطبعاً لن يتغير اسمه
الرد
#7
هذه الصوره لتوضيح الفكره
كود :
http://im38.gulfup.com/cmGZw.bmp
علما بإن امتدات الملفات الجديد هو mod ..
ملحوظه :
جميع الملفات الاصليه تحمل اربع احرف بعد كلمة ID .
جميع الملفات بعد التسمية تحمل حرفين الى اربع احرف .
ملحوظه اخرى :
بعد تجربه الكود لوحظ بإن الامتدات الجديد يضاف ولكن لا يتم حذف الامتدات القديم .
قل إن صلاتي ونسكي ومحياي ومماتي لله رب العالمين
الرد
#8
عدل الكود التالي:

كود :
if (NewN[1] = '0') and (NewN[2] = '0') then Begin Delete(NewN,1,2); Delete(NewN,Length(NewN)-3,4); NewN := NewN+'.meg'; End;

الى

كود :
if (NewN[1] = '0') and (NewN[2] = '0') then Begin Delete(NewN,1,2); NewN := ChangeFileExt(NewN,'.mod'); End;
الرد
#9
السلام عليكم

الكود يعمل جيدا ولكن بقيت مشكله بسيطه وهي انه بعد تغير الامتدات يبقى اسم الامتدات القديم موجود كأنه نص ولم يحذف
قل إن صلاتي ونسكي ومحياي ومماتي لله رب العالمين
الرد
#10
وعليكم السلام

لقد قمت بتجربة الكود أكثر من مرة ولم اواجه هذه المشكلة !
الرد


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


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