الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مساعدة في ال File Delete من خلال Array

مغلق
بدأه SmartOne في 22 أكتوبر 2005 · 10 رد · 896 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

مرحبا شباب

لنعتبر انة عندي 100 ملف باسم file001.txt file002.txt الخ....

كيف ممكن اكتب كود استطيع من خلالة اعطاء أمر بحذف مثلا اول 25 ملف او اول 50 ملف من خلال تكست بوكس أكتب فية عدد الملفات المراد حذفها

انا استعملت التالي ولكنة طبعا بدائي انة اكتب File.Delete("file001.txt") و File.Delete("file002.txt") مع إستعمال If endif

أعتقد انة ممكن عمل هذا الكود من خلال الـ Array ليحسب اسم الملف ويضيف علية رقم 1 بلتتالي حتى يصبح file001.txt file002.txt حتى العدد المراد حذفة وإعطاء أمر الحذف لكل ما هو في الـ Array ولكن للأسف مش قادر اكتب هذا الكود بشكل صحيح

ارجو المساعدة من خبراء القسم , وآسف إذا كان مكرر ولاككن لاسف مش عارف على شو أبحث بلظبط لأجد طلبي

تم تعديل هذه المشاركة بواسطة SmartOne في 22 أكتوبر 2005 في 13:55

#2

السلام عليكم

كما نوهنا من قبل أن القالب Directory مجهز لمثل هذه المشاريع , لانه يمتلك وظيفة باسم getFiles تمكنا من جلب كل

الملفات للتحكم فيها , شاهد النصوص البرمجية لحذف الملفات النصية في المجلد Files , هذه ليست الطريقة المثلى , لكنها إحدى الحلول بالتوفيق إن شاء الله.

Imports System.IO ' Import Directory Class

'Create ArrayList to hold Files
        Dim arrLstFiles As New ArrayList

        'Create a path that Points to the Folder contents the files
        Dim Path As String = Application.StartupPath & "\Files"

        'Crate a full path hold Folder path & files
        Dim fullPath As String

        'Create a directory to get all txt files
        Dim dir As New DirectoryInfo(Path)

        'Specific the txt extension
        Dim extension As String = "*.txt"

        'Load all txt files to the ArrayList
        arrLstFiles.AddRange(dir.GetFiles(extension))

        'Create a file info
        Dim f As FileInfo

        'Loop around array size to delete files.
        For i As Integer = 0 To arrLstFiles.Count - 1

            'Clear the path
            fullPath = String.Empty

            'Recreate the full path with each file
            fullPath = Path & "\" & arrLstFiles(i).ToString

            'assign that path to file info
            f = New FileInfo(fullPath)

            'Delete the current file
            f.Delete()

        Next

        'Distroies Objects
        Path = Nothing
        extension = Nothing

ملاحظة الملف المرفق منشئ على بيئة التطوير 2005 بالتوفيق.

FindTextFiles.zip

في المثال يتضح المقال

#3

الف شكر لك مشرفنا العزيز

الكود اشتغل تمام ولكن واجهتني مشكلة انة يعمل بلعكس :) ,يعني لو غيرت قيمة الـ 0 الموجودة في For i As Integer = 0 To arrLstFiles.Count - 1 من 0 الى 3 مثلا فإنة يترك اول ثلاث ملفات الأولى ويحذف الباقي بينما انا اريد ان يحذف عدد ملفات حسب القيمة التى احددها يعني لو احدد 3 يحذف اول ثلاث ملفات, فضلا شوف الملف المرفق

وهل يوجد إمكانية لعمل التالي : مثلا لو حذفت اول ثلاث ملفات هلق اقدر بشكل اتوماتيكي ان اعمل rename للملفات الباقية ليكون اسمها عن جديد file001 file002 file003 الخ...

يعني الفكرة من المشروع كلة هو حذف عدد معين من الملفات وإعادة تسمية الملفات الباقية بلترتيب من 001 الى النهاية

واشكر لكم حسن تعاونكم وصبركم مع المبتدئين امثالنا وإن شاء الله يجي يوم ونقدر نرد الجميل في هذا المنتدى .

وللعلم هذا البرنامج البسيط يُستعمل حاليا لإدخال أسئلة لمسابقة معلومات عامة والتي تُبث حاليا على أحد القنوات الفضائية خلال شهر رمضان , والهدف هنا أصبح حذف ملفات أسئلة ما قد سُئل من الحلقة الماضية وإعادة تسمية باقي الملفات من file001 ليحلو من جديد من الرقم 001 مكان الأسئلة القديمة :)

Delete&Rename.zip

#4

السلام عليكم

في هذه الحالة يتطلب تغيير المنطق من For إلى While بهذا الشكل

 'Loop around array size to delete files.
        Dim i As Integer = 0

        While i < CInt(delNumber.Text)

            'Clear the path
            fullPath = String.Empty

            'Recreate the full path with each file
            fullPath = Path & "\" & arrLstFiles(i).ToString

            'assign that path to file info
            f = New FileInfo(fullPath)

            'Delete the current file
            f.Delete()

            i += 1

        End While

أما مسألة اعادة تسمية الملفات , فهذا أتركه لك حاول أن تجلب الملفات في مصفوفة ثم تعمل حلقه عليها بالـ For

و تستخدم أدوات النصوص String Minuplation لتغيير أخر رقم وفقاً للحلقه For ثم نستخدم اي عنصر لأعادة كتابتها من جديد

,, على فكرة منطق الاسئلة بهذا الشكل ( غير مقبول إطلاقاً ) وكان يفترض عليكم إنشاء قاعدة بيانات أو وثيقة XML Document

و بناء منطق الاسئلة على هذا الاساس أفضل بكثير مما إنتهجتموه , على كل حال لا زالت هنالك فرصه للتغير , على تشعب الموضوع

أو تعقيدة, بالتوفيق إن شاء الله.

في المثال يتضح المقال

#5

الف الف شكر مشرفنا الغالي على المساعدة بارك الله فيك

سأعمل على كود إعادة التسمية من بعد ما اعطيتني المبادء الاساسية .

بلنسبة لإستعمالي للـ Text Files بدل من الـ DB هو اني صممت برنامج المسابقات من خلال برنامج Flash MX بحيث انة يتطلب كل مرة تحميل الـ Variables والتي هي عبارة عن الأسئلة من Text File لأنة للأسف لا يتعامل DB , ولكن اعتقد ان الفلاش الجديد 8 يتعامل مع XML .

شكرا

#6

السلام عليكم

عزيزي أحسن الله إليك , ذكرتنا بأيام فلاش , قضيت على هذا البرنامج حوالي خمسة سنوات

في تطوير مشاريع على Flash , و أتذكر من النسخة الخامسة كنا نستخدم وثيقة XML

و تفضل هذا المثال على شكل أسئلة بوثيقة XML بالتوفيق إن شاء الله.

XMLQuestion.zip

في المثال يتضح المقال

#7

بارك الله فيك مشرفنا , والله يعجز اللسان عن الشكر أخجلتنا بكرمك آخي الغملاسي

مشالله عليك مبدع في جميع المجالآت , بما انة تطرقنا الى الفلاش مع الـ xml

لربما أجد عندك حل لمشكلة اساسة واجهتني وهي عند تحميل نص عربي من Variable

في MultiLine TextBox عند نهاية السطر الأول الكلمة تنقطع لأحرف وما تنتقل

كلها للسطر التاني إنما ينتقل منها الحرف الذائد , مثلا بلشكل دة :

السلام عل

يكم ورحمة

الله

اشكر كرمك آخي الكريم

#8

السلام عليكم

لا شكر على واجب , احسن الله إليك, وشكراً على الاطراء.

حتى لا نخرج عن طور المنتدى بفلاش ,,أقول السبب في ذلك هو أن فلاش لا يدعم الـ Unicode في النسخ السابقة

ويدعمها حالياً في 2004 مع بعض الـ bugs للأسف , هذا الذي جعلني أترك فلاش و عالمه و أذهب إلى الـ .NET

و كذلك الممل في فلاش أنه لا يعرف قاعدة البيانات بشكل مباشر, ويحتاج إلى Web Server و اي Script

مثل ASP أو PHP وهذا مضجر للغاية.

الله يعينك على الفلاش, قصدي على المشروع.

السلام عليكم

في المثال يتضح المقال

#9

آخي العزيز الغملاسي واخواني الأعضاء

عندي مشكلة في العربي وهي انة لما اضع نقطتين فوق بعض " : " آخر السطر وآحفط هذا النص في Text file فإن النقطين بتطلع اول السطر في ملف الـ text وليس في آخرة كما أدخلتها في ال textbox في الفورم وكذالك الأمر بلنسبة الى علامة الإستفهام والـ () ,

مع العلم اني استعمل ال righttoleft واتبعت احدى الطرق الأخ الغملاسي /index.php?showtopic=73601 باستعمال الـ Localizable ولكن من دون فائدة

مثل :

في الفورم تدخل كدة

شهر رمضان هو :

في ال Text بتطلع كدة

: شهر رمضان هو

بس لو اكتب اي حرف بعم النقطتين بيمشي الحال ولكن هذا ليس صحيح

شكرا

#10

السلام عليكم

فقط اعكس الطريقة

ضع النقطتين في البداية ثم اكتب الجملة ,, بالتوفيق.

في المثال يتضح المقال

#11

كل الشكر لك عزيزي

هذا ما افعلة بوضع النقطتين في البداية

هذا الموضوع مغلق.

مواضيع مشابهة