منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : الحفظ بالترقيم
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم
احتاج كود  ترقيم الملف عند حفظه
اي
ملف1
ملف2
الخ......
وشكرا
السلام عليكم

هذه الدالة ترسل لها اسم الملف كامل بدون رقم مع المسار ويعيد اسم الملف بالرقم المتاح مثل
كود :
Dim f As String = GetNewFilename("C:\folder\filename.txt")

الدالة
كود :
Public Function GetNewFilename(fullfilename As String) As String
    'If Not IO.File.Exists(fullfilename) Then Return fullfilename
    Dim path As String = IO.Path.GetDirectoryName(fullfilename)
    Dim filename As String = IO.Path.GetFileNameWithoutExtension(fullfilename)
    Dim extension As String = IO.Path.GetExtension(fullfilename)
    Dim n As Integer = 1
    Do
        Dim nfn As String = String.Concat(path, "\", filename, " ", n, extension)
        If Not IO.File.Exists(nfn) Then Return nfn
        n += 1
    Loop
End Function
(21-02-17, 06:50 AM)مساعدة كتب : [ -> ]السلام عليكم

هذه الدالة ترسل لها اسم الملف كامل بدون رقم مع المسار ويعيد اسم الملف بالرقم المتاح مثل
كود :
Dim f As String = GetNewFilename("C:\folder\filename.txt")

الدالة
كود :
Public Function GetNewFilename(fullfilename As String) As String
   'If Not IO.File.Exists(fullfilename) Then Return fullfilename
   Dim path As String = IO.Path.GetDirectoryName(fullfilename)
   Dim filename As String = IO.Path.GetFileNameWithoutExtension(fullfilename)
   Dim extension As String = IO.Path.GetExtension(fullfilename)
   Dim n As Integer = 1
   Do
       Dim nfn As String = String.Concat(path, "\", filename, " ", n, extension)
       If Not IO.File.Exists(nfn) Then Return nfn
       n += 1
   Loop
End Function

اخي لم تنجح الدالة معي او ربما لم اتعامل معها بالشكل الصحيح وللتوضيح اكثر
المشكلة أنه عند تكرار الاسم يقوم البرنامج بالكتابة على الملف القديم
أريد باختصار عند تكرار الاسم ترقيم الملفات الجديدة برقم تلقائي
مثل طريقة الويندوز عند انشاء مجلد جديد
مجلد جديد1
مجلد جديد2
وهكذا ولك جزيل الشكر
هذا يعني لم تعرف تستخدم الدالة.

وإن ماشرحت يقوم بالفعل بما ذكرت،
وهو أنه في حالة وجود ملف بالاسم يقوم بتغيير الاسم إلى اسم جديد مع رقم جديد.
(21-02-17, 04:01 PM)مساعدة كتب : [ -> ]هذا يعني لم تعرف تستخدم الدالة.

وإن ماشرحت يقوم بالفعل بما ذكرت،
وهو أنه في حالة وجود ملف بالاسم يقوم بتغيير الاسم إلى اسم جديد مع رقم جديد.

بارك الله فيك  اخي / مساعدة دائما مبدع 


اعتقد اخي الكريم  ان الفكرة كالاتي 

قبل عملية حفظ الملف 

استخدم  الدالة المذكورة فقط لجلب الرقم المتاح 

 ثم قم بحفظ الملف بالرقم المتاح  حتى لا تتكرر الملفات.
ارجو ان تعذروني بالتعديل على النموذج المرفق وجزاكم الله خيرا
أشكرك أستاذ sendbad100
فشرحكم وافي ما شاء الله.

أستاذ bidaya

مشروعك ذو اصدار اعلى، فلم أتمكن من تشغيله،

لكن بالنظر للكود لم أجد الدالة

هذا تعديل لأحد اسطرها
كود :
Dim zipPath As String = GetNewFilename(SaveDir & "\save" & FolderName & ".rar")
(21-02-17, 06:02 PM)مساعدة كتب : [ -> ]أشكرك أستاذ sendbad100
فشرحكم وافي ما شاء الله.

أستاذ bidaya

مشروعك ذو اصدار اعلى، فلم أتمكن من تشغيله،

لكن بالنظر للكود لم أجد الدالة

هذا تعديل لأحد اسطرها
كود :
Dim zipPath As String = GetNewFilename(SaveDir & "\save" & FolderName & ".rar")
لا ادري كيف ومن اين ابدأ اخي الشكر قليل عليك اخي
الله يحفظك اخي وان يجعلها لك في ميزان الحسنات
الكود ظبط تمام التمام
الحمد لله

وجزاكم الله خيراً