المشاركات : 360
المواضيع 41
الإنتساب : Nov 2019
السمعة :
89
الشكر: 798
تم شكره 736 مرات في 325 مشاركات
06-08-22, 08:30 PM
السلام عليكم و رحمة الله و بركاته
هل هناك طريقة لتفعيل و الغاء امتداد ملف من فلتر الاوبن فايل ديالوج اثناء اختيار ملفات صور مثلا
بحيت تكون عدة ادوات التشاك بوكس تحمل اسماء امتدادات الصور حيث اذا كانت هذه الاخيرة مفعلة يدخل الامتداد في نطاق اختيار قائمة الفلترة للاوبن فايل و العكس
اتمنى ان اجد ردا
مشكورين مسبقا
المشاركات : 7,394
المواضيع 803
الإنتساب : Sep 2013
السمعة :
847
الشكر: 13249
تم شكره 18797 مرات في 4415 مشاركات
06-08-22, 10:58 PM
(آخر تعديل لهذه المشاركة : 06-08-22, 10:59 PM {2} بواسطة سعود.)
بصراحة لاول مرة افكر بهذا و ان شاء الله ان الكود هو ماتريد:
PHP كود :
Public Class Form1 Dim fltr As String = "" Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click Dim o As New OpenFileDialog o.Filter = fltr o.ShowDialog() End Sub Private Sub CheckBox1_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles CheckBox4.CheckedChanged, CheckBox3.CheckedChanged, CheckBox2.CheckedChanged, CheckBox1.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
نضع تاق لكل تشك بوكس
المشاركات : 360
المواضيع 41
الإنتساب : Nov 2019
السمعة :
89
الشكر: 798
تم شكره 736 مرات في 325 مشاركات
(06-08-22, 10:58 PM)سعود كتب : بصراحة لاول مرة افكر بهذا و ان شاء الله ان الكود هو ماتريد:
PHP كود :
Public Class Form1 Dim fltr As String = "" Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click Dim o As New OpenFileDialog o.Filter = fltr o.ShowDialog() End Sub Private Sub CheckBox1_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles CheckBox4.CheckedChanged, CheckBox3.CheckedChanged, CheckBox2.CheckedChanged, CheckBox1.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
نضع تاق لكل تشك بوكس
الله اكبر ما شاء الله و لا قوة الا بالله
الف شكر استاذ
المشاركات : 7,394
المواضيع 803
الإنتساب : Sep 2013
السمعة :
847
الشكر: 13249
تم شكره 18797 مرات في 4415 مشاركات
(06-08-22, 11:16 PM)asmarsou كتب : الله اكبر ما شاء الله و لا قوة الا بالله
الف شكر استاذ
الحمدلله
من بعدكم جميعا سباقين للخير.
المشاركات : 360
المواضيع 41
الإنتساب : Nov 2019
السمعة :
89
الشكر: 798
تم شكره 736 مرات في 325 مشاركات
(06-08-22, 11:20 PM)سعود كتب : (06-08-22, 11:16 PM)asmarsou كتب : الله اكبر ما شاء الله و لا قوة الا بالله
الف شكر استاذ
الحمدلله
من بعدكم جميعا سباقين للخير.
تمام و لله الحمد
فقط تعديل بسيط حتى يتسنى للباحثين الاستفادة من الكود
حيث نعطي لكل تشاك بوكس كخاصية تكست باسم الامتداد
و نغير في الكود من ch.tag الى ch.text
بارك الله لك و فيك مجددا
المشاركات : 7,394
المواضيع 803
الإنتساب : Sep 2013
السمعة :
847
الشكر: 13249
تم شكره 18797 مرات في 4415 مشاركات
سبحان الله
انها ليست اول مرة اللذي حدث معي اليوم.
لي كم يوم لم اجتز عقبة بوجهي في اتمام كود تقسيم ملف واعادة تجميعه بسبب مشكلة بسيطة جدا لم افهمها او اكشفها الا اليوم وخصوصا بعد مشاركتي في موضوعك هذا.
سبحان الله.
المشاركات : 360
المواضيع 41
الإنتساب : Nov 2019
السمعة :
89
الشكر: 798
تم شكره 736 مرات في 325 مشاركات
07-08-22, 12:21 AM
(آخر تعديل لهذه المشاركة : 07-08-22, 12:37 AM {2} بواسطة 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 String, ByVal 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(buffer, 0, Me.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(buffer, 0, remainLen) curFileName = (filename + ("." _ + (Me.counter.ToString + ".E"))) End If If File.Exists(curFileName) Then File.Delete(curFileName) End If File.WriteAllBytes(curFileName, buffer) Me.counter = (Me.counter + 1) br.Close MessageBox.Show("File spilitted successfully") End Sub Public Sub MargeUp(ByVal firstFileName As String) If (firstFileName.Length < 1) Then Return End If Dim endPart As String = firstFileName Dim orgFile As String = "" orgFile = endPart.Substring(0, endPart.LastIndexOf(".")) endPart = endPart.Substring((endPart.LastIndexOf(".") + 1)) If (endPart = "E") Then orgFile = orgFile.Substring(0, orgFile.LastIndexOf(".")) endPart = "0" End If If File.Exists(orgFile) Then If (MessageBox.Show((orgFile + " already exists, do you want to delete it"), "", MessageBoxButtons.YesNo) = DialogResult.Yes) Then 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 String, ByVal 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(buffer, 0, Me.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(buffer, 0, remainLen) curFileName = (filename + ("." _ + (Me.counter.ToString + ".E"))) End If If File.Exists(curFileName) Then File.Delete(curFileName) End If File.WriteAllBytes(curFileName, buffer) Me.counter = (Me.counter + 1) br.Close MessageBox.Show("File spilitted successfully") End Sub Public Sub MargeUp(ByVal firstFileName As String) If (firstFileName.Length < 1) Then Return End If Dim endPart As String = firstFileName Dim orgFile As String = "" orgFile = endPart.Substring(0, endPart.LastIndexOf(".")) endPart = endPart.Substring((endPart.LastIndexOf(".") + 1)) If (endPart = "E") Then orgFile = orgFile.Substring(0, orgFile.LastIndexOf(".")) endPart = "0" End If If File.Exists(orgFile) Then If (MessageBox.Show((orgFile + " already exists, do you want to delete it"), "", MessageBoxButtons.YesNo) = DialogResult.Yes) Then 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/2...round.html
المشاركات : 7,394
المواضيع 803
الإنتساب : Sep 2013
السمعة :
847
الشكر: 13249
تم شكره 18797 مرات في 4415 مشاركات
الاشكال اللي عندي الان فقط مع الملفات الصغيرة اما الملفات اللتي بحجم 500 وفوق لا مشكلة معها.
مع المثال الان قم بتقسيم الملف الصغير ثم اغلق البرنامج ثم قم بالدمج هكذا ينجح مع الملفات الصغيرة اما الاحجام الكبيرة فينجح من دون غلق البرنامج بل مباشرة بعد التقسيم يكون الدمج.
احاول معرفة الاشكال ولم استطع.
|