ใครทีเก่งเรื่อง วิชวลเบสิก 2005 ช่วยทีนะครับ
ช่วยสอนวิธีใช้ SaveFileDialog ทีครับ เอาตั้งแต่ต้นเลยนะครับ จนถึงเซฟไฟล์อะครับ
พอดีผมจะเอาข้อมูลใน RichTextbox มาเซฟเป็นไฟล์ txt อะครับ
หรือพอมีวิธีอื่นช่วนสอนทีนะครับ
ใครทีเก่งเรื่อง วิชวลเบสิก 2005 ช่วยทีนะครับ
ช่วยสอนวิธีใช้ SaveFileDialog ทีครับ เอาตั้งแต่ต้นเลยนะครับ จนถึงเซฟไฟล์อะครับ
พอดีผมจะเอาข้อมูลใน RichTextbox มาเซฟเป็นไฟล์ txt อะครับ
หรือพอมีวิธีอื่นช่วนสอนทีนะครับ
Imports System.IO
Dim cdl As New SaveFileDialog
cdl.DefaultExt = "txt"
cdl.Title = "Save Text File"
cdl.Filter = "Texe File|*.txt"
cdl.InitialDirectory = Application.StartupPath
cdl.OverwritePrompt = True
If cdl.ShowDialog = DialogResult.OK Then
Dim s As New StreamWriter(cdl.FileName)
Dim x As String
Dim z As String
Dim cr_lf As String = Chr(13) + Chr(10)
For Each x In RichTextBox1.Lines
z += x + cr_lf
Next
s.Write(z)
s.Close()
End If[/b]
รบกวนท่าน neoclassic ช่วยอธิบายคำสั่งนี้หน่อยได้มั้ยครับผม
cdl.InitialDirectory = Application.StartupPath
cdl.OverwritePrompt = True
Dim s As New StreamWriter(cdl.FileName)
Dim x As String
Dim z As String
Dim cr_lf As String = Chr(13) + Chr(10)
Each x In RichTextBox1.Lines
z += x + cr_lf
แล็วก็คำสั่ง cr_lf นี่เหมือนกับ VbCrlf ที่ไว้สำหรับขึ้นบรรทัดใหม่หรือไม่ครับ
cdl.InitialDirectory = Application.StartupPath
'กำหนดตำแหน่งแรกเริ่มที่จะ save เปลี่ยนตำแหน่งหรือเอาออกก็ได้
'เช่น cdl.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.System)
'จะไปเริ่มที่ system32
cdl.OverwritePrompt = True 'แจ้งหากไฟล์มีอยู่แล้ว ทำการเตือน
Dim s As New StreamWriter(cdl.FileName)
'ตัวแปร string StreamWriter
Dim x As String
'ตัวแปร string หา data ทั้งหมด
Dim z As String
'ตัวแปร string รวม data ทั้งหมด
Dim cr_lf As String = Chr(13) + Chr(10) 'เหมือน vbCrLf ทุกอย่างเลย
Each x In RichTextBox1.Lines 'วน loop หา data ทั้งหมด
z += x + cr_lf 'data เอาค่ามาต่อๆกัน ทั้งหมด
เขียนแบบนี้ก็ได้
'z = z + x + cr_lf
หรือ
'z = z + x + vbCrLf
แล็วก็คำสั่ง cr_lf นี่เหมือนกับ VbCrlf ที่ไว้สำหรับขึ้นบรรทัดใหม่หรือไม่ครับ
'เหมือน vbCrLf ทุกอย่างเลย เพียงแต่แยกมันออกมาให้เห็นชัดๆ
[/b]
รบกวนท่าน neoclassic อีกทีครับผม
ผมได้ทำโค้ดที่ท่านให้มาอะครับไปใส่ไว้ในส่วนของ button1
เพื่อที่จะเวลากด button1 แล้วมันจะมีหน้าต่างเซฟเด้งขึ้นมา
เพื่อที่จะให้เลือกที่จะเซฟ แต่บังเอิญว่า พอกดปุ๊ป ไม่มีอะไีรเกิดขึ้นเลยอะครับ
ไม่มีหน้าต่าง SaveFile เด้งมาอะครับ ไม่ทราบว่าเกิดจากอะไรครับผม
แล้วก็ ตรงบรรทัด Dim s As New StreamWriter(cdl.FileName)
มันมีเส้นใต้ยึกยือยึกยือสีน้ำเงินเกิดขึ้นตรง StreamWriter มันเกิดจากอะไรอีกเช่นกันครับ
รบกวนด้วยนะครับ ^^
ก่อนอื่นผมเปิด Browser ตัวโปรดขึ้นมา หลังจากนั้นเข้าไปที่ Google เพื่อนรัก จากนั้นใส่คำค้นลงไป
"savefiledialog vb.net" เอาละกด Search เลย .....
ไม่นานก็เจอเว็บที่ต้องการ และผมก็ได้ Code นี้มา Simple SaveFiledialog
[code]
Stream myStream;
SaveFileDialog saveFileDialog1 = new SaveFileDialog();
saveFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*";
saveFileDialog1.FilterIndex = 2;
saveFileDialog1.RestoreDirectory = true;
if(saveFileDialog1.ShowDialog() == DialogResult.OK)
{
ต้อง Imports System.IO ด้วยน้ะ
ของผมใช้ VB 2008 .Net Framework 3.5 SP 1 ทดลองบน vista sp 1
คิดว่าไม่น่าต่างกัน 2005 กับ 2008 ถ้า Framework เดียวกันไม่น่ามีปัญหา
ขอบคุณท่าน neoclassic มากครับ
จริงๆแล้วมันต้องนำมาประยุกต์จริงๆด้วยครับ ^^
แล้วผมก็เปลี่ยนจาก Richtextbox เป็น Textbox ธรรมดา
เมื่อคืนนั่งลองทำทั้งคืน ปรากฏว่าได้แล้วครับ
SaveFileDialog1.FileName = ""
SaveFileDialog1.DefaultExt = "txt"
SaveFileDialog1.Title = "Save Script File"
SaveFileDialog1.Filter = "Sec File (*.sec)|*.sec"
'SaveFileDialog1.InitialDirectory = Application.StartupPath
SaveFileDialog1.OverwritePrompt = True
If SaveFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
Dim name As String
Dim StreamFile As New IO.StreamWriter(SaveFileDialog1.FileName)
name = TextBox12.Text
StreamFile.Writeline(name)
StreamFile.Close()
'Button7.Enabled = False
End If
End Sub
![]()
ขอรบกวนถามผู้รู้อีกนิดนึงนะครับว่า
ถ้าเกิดว่าเราต้องการเซฟเป็นไฟล์ที่เอนโค้ดแบบ UTF-8
เราต้องเขียนคำสั่งเพิ่มตรงไหนอะครับ
![]()
ลองเปลี่ยนเป็น Dim StreamFile As New IO.StreamWriter(SaveFileDialog1.FileName,System.Text.Encoding.UTF8)ขอบคุณท่าน neoclassic มากครับ
จริงๆแล้วมันต้องนำมาประยุกต์จริงๆด้วยครับ ^^
แล้วผมก็เปลี่ยนจาก Richtextbox เป็น Textbox ธรรมดา
เมื่อคืนนั่งลองทำทั้งคืน ปรากฏว่าได้แล้วครับ
SaveFileDialog1.FileName = ""
SaveFileDialog1.DefaultExt = "txt"
SaveFileDialog1.Title = "Save Script File"
SaveFileDialog1.Filter = "Sec File (*.sec)|*.sec"
'SaveFileDialog1.InitialDirectory = Application.StartupPath
SaveFileDialog1.OverwritePrompt = True
If SaveFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
Dim name As String
Dim StreamFile As New IO.StreamWriter(SaveFileDialog1.FileName)
name = TextBox12.Text
StreamFile.Writeline(name)
StreamFile.Close()
'Button7.Enabled = False
End If
End Sub
[/b]
อ้างอิงได้ ที่นี่
Actions : (View-Readers)
There are no names to display.