منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
[سؤال] كيفية تفعيل او الغاء امتداد ملف من فلتر الاوبن فايل ديالوج - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : [سؤال] كيفية تفعيل او الغاء امتداد ملف من فلتر الاوبن فايل ديالوج (/showthread.php?tid=42101)



كيفية تفعيل او الغاء امتداد ملف من فلتر الاوبن فايل ديالوج - asmarsou - 06-08-22

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


RE: كيفية تفعيل او الغاء امتداد ملف من فلتر الاوبن فايل ديالوج - سعود - 06-08-22

بصراحة لاول مرة افكر بهذا و ان شاء الله ان الكود هو ماتريد:
PHP كود :
Public Class Form1
    Dim fltr 
As String ""
 
   Private Sub Button1_Click(sender As System.ObjectAs System.EventArgsHandles Button1.Click
        Dim o 
As New OpenFileDialog
        o
.Filter fltr
        o
.ShowDialog()
 
   End Sub
    Private Sub CheckBox1_CheckedChanged
(sender As System.ObjectAs System.EventArgsHandles CheckBox4.CheckedChangedCheckBox3.CheckedChangedCheckBox2.CheckedChangedCheckBox1.CheckedChanged
        
'‎(*.txt)|*.txt|كافة الملفات (*.*)|*.*"
        Dim ch As CheckBox = DirectCast(sender, CheckBox)
        Dim firstfilter As String = "(" & ch.Tag & ")|*." & ch.Tag & ""
        Dim otherfilter As String = "| Other extensions (" & ch.Tag & ")|*." & ch.Tag & ""
        If ch.Checked = True Then
            If fltr.Trim = "" Then
                If fltr.Contains(firstfilter) = False Then
                    fltr = firstfilter
                End If
            Else
                If fltr.Contains(otherfilter) = False Then
                    fltr &= otherfilter
                End If
            End If
        Else
            If fltr.Contains(firstfilter) Then
                fltr = fltr.Remove(fltr.IndexOf(firstfilter), firstfilter.Length)
            End If
            If fltr.Contains(otherfilter) Then
                fltr = fltr.Remove(fltr.IndexOf(otherfilter), otherfilter.Length)
            End If
        End If
    End Sub
End Class 


نضع تاق لكل تشك بوكس


RE: كيفية تفعيل او الغاء امتداد ملف من فلتر الاوبن فايل ديالوج - asmarsou - 06-08-22

(06-08-22, 10:58 PM)سعود كتب : بصراحة لاول مرة افكر بهذا و ان شاء الله ان الكود هو ماتريد:
PHP كود :
Public Class Form1
    Dim fltr 
As String ""
 
   Private Sub Button1_Click(sender As System.ObjectAs System.EventArgsHandles Button1.Click
        Dim o 
As New OpenFileDialog
        o
.Filter fltr
        o
.ShowDialog()
 
   End Sub
    Private Sub CheckBox1_CheckedChanged
(sender As System.ObjectAs System.EventArgsHandles CheckBox4.CheckedChangedCheckBox3.CheckedChangedCheckBox2.CheckedChangedCheckBox1.CheckedChanged
        
'‎(*.txt)|*.txt|كافة الملفات (*.*)|*.*"
        Dim ch As CheckBox = DirectCast(sender, CheckBox)
        Dim firstfilter As String = "(" & ch.Tag & ")|*." & ch.Tag & ""
        Dim otherfilter As String = "| Other extensions (" & ch.Tag & ")|*." & ch.Tag & ""
        If ch.Checked = True Then
            If fltr.Trim = "" Then
                If fltr.Contains(firstfilter) = False Then
                    fltr = firstfilter
                End If
            Else
                If fltr.Contains(otherfilter) = False Then
                    fltr &= otherfilter
                End If
            End If
        Else
            If fltr.Contains(firstfilter) Then
                fltr = fltr.Remove(fltr.IndexOf(firstfilter), firstfilter.Length)
            End If
            If fltr.Contains(otherfilter) Then
                fltr = fltr.Remove(fltr.IndexOf(otherfilter), otherfilter.Length)
            End If
        End If
    End Sub
End Class 


نضع تاق لكل تشك بوكس
 الله اكبر ما شاء الله و لا قوة الا بالله
الف شكر استاذ


RE: كيفية تفعيل او الغاء امتداد ملف من فلتر الاوبن فايل ديالوج - سعود - 06-08-22

(06-08-22, 11:16 PM)asmarsou كتب :  الله اكبر ما شاء الله و لا قوة الا بالله
الف شكر استاذ

الحمدلله
من بعدكم جميعا سباقين للخير.


RE: كيفية تفعيل او الغاء امتداد ملف من فلتر الاوبن فايل ديالوج - asmarsou - 06-08-22

(06-08-22, 11:20 PM)سعود كتب :
(06-08-22, 11:16 PM)asmarsou كتب :  الله اكبر ما شاء الله و لا قوة الا بالله
الف شكر استاذ

الحمدلله
من بعدكم جميعا سباقين للخير.

تمام و لله الحمد
فقط  تعديل بسيط حتى يتسنى للباحثين الاستفادة من الكود
حيث نعطي لكل تشاك بوكس كخاصية تكست باسم الامتداد
و نغير في الكود من ch.tag الى ch.text
بارك الله لك و فيك مجددا


RE: كيفية تفعيل او الغاء امتداد ملف من فلتر الاوبن فايل ديالوج - سعود - 07-08-22

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


RE: كيفية تفعيل او الغاء امتداد ملف من فلتر الاوبن فايل ديالوج - asmarsou - 07-08-22

PHP كود :
Imports System
Imports System
.Collections.Generic
Imports System
.ComponentModel
Imports System
.Data
Imports System
.Drawing
Imports System
.Text
Imports System
.Windows.Forms
Imports System
.IO

Namespace FileCutter
    
    
'This class is used to call the actual file operation class.
    Public Class Form1
        Inherits Form
        
        Public Sub New()
            MyBase.New
            InitializeComponent
            Me.Text = "File cutter & assembler (upto 1.96 GB) by Suman Biswas"
        End Sub
        
        Private obj As FileHandling = New FileHandling
        
        Private Sub btnSelectFile_Click(ByVal sender As Object, ByVal e As EventArgs)
            Me.obj.SplitUp(Me.SelectFile, Integer.Parse(textBox1.Text))
        End Sub
        
        Private Sub button1_Click(ByVal sender As Object, ByVal e As EventArgs)
            Me.obj.MargeUp(Me.SelectFile)
        End Sub
        
        Private Function SelectFile() As String
            Dim fbd As OpenFileDialog = New OpenFileDialog
            If (fbd.ShowDialog <> DialogResult.OK) Then
                MessageBox.Show("No file selected")
                Return ""
            Else
                Return fbd.FileName
            End If
            
        End Function
    End Class
    
    '
Main file operation is done here.
 
   Class FileHandling
        
        Private sliceLen 
As Integer = (1024 1024)
 
       
        Private counter 
As Integer 0
        
        Public Sub SplitUp
(ByVal filename As StringByVal fileSizeInMB As Integer)
 
           " 0;"
 
           buffer "new"
 
           br "new"
 
           slicelen = (" (int)br.BaseStream.Length;"  _
                        
> (Me.sliceLen Me.counter))
 
           If (br.BaseStream.Length  _
                        
> (Me.sliceLen  _
                        
* (Me.counter 1))) Then
                br
.BaseStream.Read(buffer0Me.sliceLen)
 
               curFileName = (filename + ("." Me.counter.ToString))
 
           Else
                Dim remainLen 
As Integer = (CType(br.BaseStream.Length,Integer _
                            
- (Me.sliceLen Me.counter))
 
               buffer = New Byte((remainLen) - 1) {}
 
               br.BaseStream.Read(buffer0remainLen)
 
               curFileName = (filename + ("."  _
                            
+ (Me.counter.ToString ".E")))
 
           End If
 
           
            If File
.Exists(curFileNameThen
                File
.Delete(curFileName)
 
           End If
 
           
            File
.WriteAllBytes(curFileNamebuffer)
 
           Me.counter = (Me.counter 1)
 
           br.Close
            MessageBox
.Show("File spilitted successfully")
 
       End Sub
        
        Public Sub MargeUp
(ByVal firstFileName As String)
 
           If (firstFileName.Length 1Then
                Return
            End 
If
 
           
            Dim endPart 
As String firstFileName
            Dim orgFile 
As String ""
 
           orgFile endPart.Substring(0endPart.LastIndexOf("."))
 
           endPart endPart.Substring((endPart.LastIndexOf(".") + 1))
 
           If (endPart "E"Then
                orgFile 
orgFile.Substring(0orgFile.LastIndexOf("."))
 
               endPart "0"
 
           End If
 
           
            If File
.Exists(orgFileThen
                If 
(MessageBox.Show((orgFile " already exists, do you want to delete it"), ""MessageBoxButtons.YesNo) = DialogResult.YesThen
                    File
.Delete(orgFile)
 
               Else
                    MessageBox
.Show("File not assembled. Operation cancelled by user.")
 
                   Return
                End 
If
 
               
            End 
If
 
           
            
'Assembling starts from here
            Dim bw As BinaryWriter = New BinaryWriter(File.Open(orgFile, FileMode.Append))
            Dim nextFileName As String = ""
            Dim buffer() As Byte = New Byte((bw.BaseStream.Length) - 1) {}
            Dim counter As Integer = Integer.Parse(endPart)
            
            While true
                nextFileName = (orgFile + ("." + Me.counter.ToString))
                If File.Exists((nextFileName + ".E")) Then
                    '
Last slice
                    buffer 
File.ReadAllBytes((nextFileName ".E"))
 
                   bw.Write(buffer)
 
                   Exit While
 
               Else
                    buffer 
File.ReadAllBytes(nextFileName)
 
                   bw.Write(buffer)
 
               End If
 
               
                Me
.counter = (Me.counter 1)
 
               
            End 
While
 
           
            bw
.Close
            MessageBox
.Show("File assebled successfully")
 
       End Sub
    End 
Class
End Namespace 
(07-08-22, 12:06 AM)سعود كتب : سبحان الله
انها ليست اول مرة اللذي حدث معي اليوم.
لي كم يوم لم اجتز عقبة بوجهي في اتمام كود تقسيم ملف واعادة تجميعه بسبب مشكلة بسيطة جدا لم افهمها او اكشفها الا اليوم وخصوصا بعد مشاركتي في موضوعك هذا.
سبحان الله.

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

(07-08-22, 12:21 AM)asmarsou كتب :
PHP كود :
Imports System
Imports System
.Collections.Generic
Imports System
.ComponentModel
Imports System
.Data
Imports System
.Drawing
Imports System
.Text
Imports System
.Windows.Forms
Imports System
.IO

Namespace FileCutter
    
    
'This class is used to call the actual file operation class.
    Public Class Form1
        Inherits Form
        
        Public Sub New()
            MyBase.New
            InitializeComponent
            Me.Text = "File cutter & assembler (upto 1.96 GB) by Suman Biswas"
        End Sub
        
        Private obj As FileHandling = New FileHandling
        
        Private Sub btnSelectFile_Click(ByVal sender As Object, ByVal e As EventArgs)
            Me.obj.SplitUp(Me.SelectFile, Integer.Parse(textBox1.Text))
        End Sub
        
        Private Sub button1_Click(ByVal sender As Object, ByVal e As EventArgs)
            Me.obj.MargeUp(Me.SelectFile)
        End Sub
        
        Private Function SelectFile() As String
            Dim fbd As OpenFileDialog = New OpenFileDialog
            If (fbd.ShowDialog <> DialogResult.OK) Then
                MessageBox.Show("No file selected")
                Return ""
            Else
                Return fbd.FileName
            End If
            
        End Function
    End Class
    
    '
Main file operation is done here.
 
   Class FileHandling
        
        Private sliceLen 
As Integer = (1024 1024)
 
       
        Private counter 
As Integer 0
        
        Public Sub SplitUp
(ByVal filename As StringByVal fileSizeInMB As Integer)
 
           " 0;"
 
           buffer "new"
 
           br "new"
 
           slicelen = (" (int)br.BaseStream.Length;"  _
                        
> (Me.sliceLen Me.counter))
 
           If (br.BaseStream.Length  _
                        
> (Me.sliceLen  _
                        
* (Me.counter 1))) Then
                br
.BaseStream.Read(buffer0Me.sliceLen)
 
               curFileName = (filename + ("." Me.counter.ToString))
 
           Else
                Dim remainLen 
As Integer = (CType(br.BaseStream.Length,Integer _
                            
- (Me.sliceLen Me.counter))
 
               buffer = New Byte((remainLen) - 1) {}
 
               br.BaseStream.Read(buffer0remainLen)
 
               curFileName = (filename + ("."  _
                            
+ (Me.counter.ToString ".E")))
 
           End If
 
           
            If File
.Exists(curFileNameThen
                File
.Delete(curFileName)
 
           End If
 
           
            File
.WriteAllBytes(curFileNamebuffer)
 
           Me.counter = (Me.counter 1)
 
           br.Close
            MessageBox
.Show("File spilitted successfully")
 
       End Sub
        
        Public Sub MargeUp
(ByVal firstFileName As String)
 
           If (firstFileName.Length 1Then
                Return
            End 
If
 
           
            Dim endPart 
As String firstFileName
            Dim orgFile 
As String ""
 
           orgFile endPart.Substring(0endPart.LastIndexOf("."))
 
           endPart endPart.Substring((endPart.LastIndexOf(".") + 1))
 
           If (endPart "E"Then
                orgFile 
orgFile.Substring(0orgFile.LastIndexOf("."))
 
               endPart "0"
 
           End If
 
           
            If File
.Exists(orgFileThen
                If 
(MessageBox.Show((orgFile " already exists, do you want to delete it"), ""MessageBoxButtons.YesNo) = DialogResult.YesThen
                    File
.Delete(orgFile)
 
               Else
                    MessageBox
.Show("File not assembled. Operation cancelled by user.")
 
                   Return
                End 
If
 
               
            End 
If
 
           
            
'Assembling starts from here
            Dim bw As BinaryWriter = New BinaryWriter(File.Open(orgFile, FileMode.Append))
            Dim nextFileName As String = ""
            Dim buffer() As Byte = New Byte((bw.BaseStream.Length) - 1) {}
            Dim counter As Integer = Integer.Parse(endPart)
            
            While true
                nextFileName = (orgFile + ("." + Me.counter.ToString))
                If File.Exists((nextFileName + ".E")) Then
                    '
Last slice
                    buffer 
File.ReadAllBytes((nextFileName ".E"))
 
                   bw.Write(buffer)
 
                   Exit While
 
               Else
                    buffer 
File.ReadAllBytes(nextFileName)
 
                   bw.Write(buffer)
 
               End If
 
               
                Me
.counter = (Me.counter 1)
 
               
            End 
While
 
           
            bw
.Close
            MessageBox
.Show("File assebled successfully")
 
       End Sub
    End 
Class
End Namespace 
(07-08-22, 12:06 AM)سعود كتب : سبحان الله
انها ليست اول مرة اللذي حدث معي اليوم.
لي كم يوم لم اجتز عقبة بوجهي في اتمام كود تقسيم ملف واعادة تجميعه بسبب مشكلة بسيطة جدا لم افهمها او اكشفها الا اليوم وخصوصا بعد مشاركتي في موضوعك هذا.
سبحان الله.

سبحان الله
لا تزال الفكرة في بالي حيث في وقت ما اقرء ردك هذا كنت احول كود من سي شارب الى ال في بي نت
لم اجربه بعد و لم المه بعد و هو كالتالي
 مشكل في التحويل
عموما هذا رابط الموضوع بالسي شارب
https://socketprogramming.blogspot.com/2008/11/split-and-assemble-large-file-around.html


RE: كيفية تفعيل او الغاء امتداد ملف من فلتر الاوبن فايل ديالوج - سعود - 07-08-22

الاشكال اللي عندي الان فقط مع الملفات الصغيرة اما الملفات اللتي بحجم 500 وفوق لا مشكلة معها.
مع المثال الان قم بتقسيم الملف الصغير ثم اغلق البرنامج ثم قم بالدمج هكذا ينجح مع الملفات الصغيرة اما الاحجام الكبيرة فينجح من دون غلق البرنامج بل مباشرة بعد التقسيم يكون الدمج.

احاول معرفة الاشكال ولم استطع.