منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
[VB.NET] فتح ملف وورد - نسخة قابلة للطباعة

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

الصفحات: 1 2 3


فتح ملف وورد - EMADW - 19-04-25


  1. Process.start("D\all\mn.docx")استخدم هذا الكود لفتح كتاب وورد اسمه mn موجود  على قرص d ضمن مجلد اسمه allكيف بقدر بحال لم يجد المجلد all على القرص d ياتي به من الفلاشة hيعني بحال لم يجده في d ياتي به من h



RE: فتح ملف وورد - Kamil - 19-04-25

يمكنك استخدام كود  يتحقق أولًا من وجود الملف في المسار الأساسي (D:\all\mn.docx) وإذا لم يكن موجودًا، يحاول فتح الملف من الفلاشة (مثلًا H:\all\mn.docx). 

إليك الطريقة:

PHP كود :
Imports System.IO
Imports System
.Diagnostics

Sub OpenWordDocument
()
 
   Dim filePathD As String "D:\all\mn.docx"
 
   Dim filePathH As String "H:\all\mn.docx"

 
   If File.Exists(filePathDThen
        Process
.Start(filePathD)
 
   ElseIf File.Exists(filePathHThen
        Process
.Start(filePathH)
 
   Else
        MessageBox
.Show("الملف غير موجود على القرص D أو الفلاشة H""خطأ"MessageBoxButtons.OKMessageBoxIcon.ErrorMessageBoxDefaultButton.Button1MessageBoxOptions.RightAlign)
 
   End If
End Sub 

وإذا أردت أن يبحث حتى في D: ضمن حلقة الأقراص:

يمكنك تعديل الكود بحيث يتحقق من كل الأقراص، بما فيها D: . 


PHP كود :
Imports System.IO
Imports System
.Diagnostics

Sub OpenWordDocument
()
 
   For Each drive As DriveInfo In DriveInfo.GetDrives()
 
       If drive.IsReady AndAlso (drive.DriveType DriveType.Removable OrElse drive.DriveType DriveType.FixedThen
            Dim path 
As String Path.Combine(drive.Name"all\mn.docx")
 
           If File.Exists(pathThen
                Process
.Start(path)
 
               Exit Sub
            End 
If
 
       End If
 
   Next

    MessageBox
.Show("الملف mn.docx غير موجود في أي قرص.""خطأ"MessageBoxButtons.OKMessageBoxIcon.ErrorMessageBoxDefaultButton.Button1MessageBoxOptions.RightAlign)
End Sub 
هكذا:


RE: فتح ملف وورد - EMADW - 19-04-25

اخي الكريم لم يعمل معي هذا الكود لا اعرف اين المشكلة


RE: فتح ملف وورد - Kamil - 19-04-25

هل وضعت الكود المرفق في زر

PHP كود :
OpenWordDocument() 



RE: فتح ملف وورد - EMADW - 19-04-25

اذا في مجال ترفق الكود بمشروع لان جربت كل الاحتمالات وما اشتغل معي الكود


RE: فتح ملف وورد - Kamil - 19-04-25

تم تجربة المثال على جهازي 

الملف موجود في ميموري كارد موصولة بالجهاز

قم بتجربته


RE: فتح ملف وورد - EMADW - 20-04-25

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


RE: فتح ملف وورد - Kamil - 20-04-25

كل ما عليك ان تفعله هو تبديل اسم الملف مثلا من mn إلى hj و ساحاول عند عودتي من العمل انشاء ملف كلاس لمنع تكرار الاكواد


RE: فتح ملف وورد - Kamil - 20-04-25

في المثال المرفق استخدمت تكست بوكس تكتب به اسم الملف الذي تريد فتحه 
واستخدمت كلاس 

تضع في الفورم 

PHP كود :
Imports System.IO
Public Class Form1
    Private Sub btnOpenDoc_Click
(sender As ObjectAs EventArgsHandles btnOpenDoc.Click
        Dim fileName 
As String TxtFileName.Text.Trim()
 
       WordFileOpener.OpenWordDocument(fileName)
 
   End Sub

End 
Class 

تضع في الكلاس 
PHP كود :
Imports System.IO
Imports System
.Diagnostics

Public Class WordFileOpener
    Public Shared Sub OpenWordDocument
(fileName As String)
 
       If String.IsNullOrWhiteSpace(fileNameThen
            MessageBox
.Show("يرجى إدخال اسم الملف.""تنبيه"MessageBoxButtons.OKMessageBoxIcon.WarningMessageBoxDefaultButton.Button1MessageBoxOptions.RightAlign)
 
           Return
        End 
If

 
       ' تأكد من أن الاسم ينتهي بـ .docx
        If Not fileName.ToLower().EndsWith(".docx") Then
            fileName &= ".docx"
        End If

        For Each drive As DriveInfo In DriveInfo.GetDrives()
            If drive.IsReady AndAlso (drive.DriveType = DriveType.Removable OrElse drive.DriveType = DriveType.Fixed) Then
                Dim path As String = IO.Path.Combine(drive.Name, "all", fileName)
                If File.Exists(path) Then
                    Process.Start(path)
                    Exit Sub
                End If
            End If
        Next

        MessageBox.Show("الملف " & fileName & " غير موجود في أي قرص.", "خطأ", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, MessageBoxOptions.RightAlign)
    End Sub
End Class 

واذا كنت تريد فتح اي نوع من الملفات اتبع الاتي 

في الكلاس تكتب الآتي

PHP كود :
Imports System.IO
Imports System
.Diagnostics

Public Class FileOpener
    Public Shared Sub OpenDocument
(fileName As StringfileExtension As String)
 
       If String.IsNullOrWhiteSpace(fileNameOrElse String.IsNullOrWhiteSpace(fileExtensionThen
            MessageBox
.Show("يرجى إدخال اسم الملف ونوع الامتداد.""تنبيه"MessageBoxButtons.OKMessageBoxIcon.WarningMessageBoxDefaultButton.Button1MessageBoxOptions.RightAlign)
 
           Return
        End 
If

 
       ' تأكد من وجود النقطة في الامتداد
        If Not fileExtension.StartsWith(".") Then
            fileExtension = "." & fileExtension
        End If

        Dim fullFileName As String = fileName & fileExtension

        For Each drive As DriveInfo In DriveInfo.GetDrives()
            If drive.IsReady AndAlso (drive.DriveType = DriveType.Removable OrElse drive.DriveType = DriveType.Fixed) Then
                Dim path As String = IO.Path.Combine(drive.Name, "all", fullFileName)
                If File.Exists(path) Then
                    Process.Start(path)
                    Exit Sub
                End If
            End If
        Next

        MessageBox.Show("الملف " & fullFileName & " غير موجود في أي قرص.", "خطأ", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, MessageBoxOptions.RightAlign)
    End Sub
End Class 


في الفورم تكتب الآتي

PHP كود :
Private Sub BtnOpenFile_Click(sender As ObjectAs EventArgsHandles BtnOpenFile.Click
    Dim fileName 
As String TxtFileName.Text.Trim()
 
   Dim extension As String TxtExtension.Text.Trim()
 
   FileOpener.OpenDocument(fileNameextension)
End Sub 


واذا اردت يمكن استخدام OpenFileDialog

كالآتي 

PHP كود :
Imports System.IO
Imports System
.Diagnostics
Imports System
.Windows.Forms

Public Class FileOpener

    
' فتح ملف بالاسم والامتداد من مجلد all في جميع الأقراص
    Public Shared Sub OpenDocument(fileName As String, fileExtension As String)
        If String.IsNullOrWhiteSpace(fileName) OrElse String.IsNullOrWhiteSpace(fileExtension) Then
            MessageBox.Show("يرجى إدخال اسم الملف ونوع الامتداد.", "تنبيه", MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1, MessageBoxOptions.RightAlign)
            Return
        End If

        If Not fileExtension.StartsWith(".") Then
            fileExtension = "." & fileExtension
        End If

        Dim fullFileName As String = fileName & fileExtension

        For Each drive As DriveInfo In DriveInfo.GetDrives()
            If drive.IsReady AndAlso (drive.DriveType = DriveType.Removable OrElse drive.DriveType = DriveType.Fixed) Then
                Dim path As String = IO.Path.Combine(drive.Name, "all", fullFileName)
                If File.Exists(path) Then
                    Process.Start(path)
                    Exit Sub
                End If
            End If
        Next

        MessageBox.Show("الملف " & fullFileName & " غير موجود في أي قرص.", "خطأ", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, MessageBoxOptions.RightAlign)
    End Sub

    ' 
فتح الملف يدويًا باستخدام OpenFileDialog
    Public Shared Sub OpenFileWithDialog
()
 
       Dim ofd As New OpenFileDialog()
 
       ofd.Title "اختر ملفًا"
 
       ofd.Filter "ملفات Word|*.docx|ملفات PDF|*.pdf|كل الملفات|*.*"

 
       If ofd.ShowDialog() = DialogResult.OK Then
            Try
                Process
.Start(ofd.FileName)
 
           Catch ex As Exception
                MessageBox
.Show("حدث خطأ أثناء فتح الملف: " ex.Message"خطأ"MessageBoxButtons.OKMessageBoxIcon.ErrorMessageBoxDefaultButton.Button1MessageBoxOptions.RightAlign)
 
           End Try
 
       End If
 
   End Sub

End 
Class 


زر لفتح الملف تلقائيًا بالاسم والامتداد:

PHP كود :
Private Sub BtnOpenByName_Click(sender As ObjectAs EventArgsHandles BtnOpenByName.Click
    Dim fileName 
As String TxtFileName.Text.Trim()
 
   Dim extension As String TxtExtension.Text.Trim()
 
   FileOpener.OpenDocument(fileNameextension)
End Sub 

زر لفتح الملف يدويًا عن طريق اختيار من الجهاز:

PHP كود :
Private Sub BtnOpenByDialog_Click(sender As ObjectAs EventArgsHandles BtnOpenByDialog.Click
    FileOpener
.OpenFileWithDialog()
End Sub 



RE: فتح ملف وورد - 1albasha - 02-05-25

PHP كود :
Public Class Form1

    Sub OpenWordDocument
()
 
       Dim filePathD As String "D:\all\4.docx"
 
       Dim filePathH As String "H:\all\4.docx"
 
       Dim filePathe As String "e:\all\4.docx"
 
       Dim filePathc As String "c:\all\4.docx"
 
       Dim filePathg As String "g:\all\4.docx"
 
       If File.Exists(filePathDThen
            Process
.Start(filePathD)
 
       ElseIf File.Exists(filePathHThen
            Process
.Start(filePathH)
 
       ElseIf File.Exists(filePathcThen
            Process
.Start(filePathc)
 
       ElseIf File.Exists(filePatheThen
            Process
.Start(filePathe)
 
       ElseIf File.Exists(filePathgThen
            Process
.Start(filePathg)
 
       Else
            MessageBox
.Show("الملف المطلوب غير موجود على اي قرص""خطأ"MessageBoxButtons.OKMessageBoxIcon.ErrorMessageBoxDefaultButton.Button1MessageBoxOptions.RightAlign)
 
       End If




 
   End Sub
بقدر اختصر هذا الكود لو سمحتم