View Full Version : ช่วยสอนวิธีใช้ SaveFileDialog ทีครับ
Secret_Man
30-09-2008, 08:39 PM
ใครทีเก่งเรื่อง วิชวลเบสิก 2005 ช่วยทีนะครับ
ช่วยสอนวิธีใช้ SaveFileDialog ทีครับ เอาตั้งแต่ต้นเลยนะครับ จนถึงเซฟไฟล์อะครับ
พอดีผมจะเอาข้อมูลใน RichTextbox มาเซฟเป็นไฟล์ txt อะครับ
หรือพอมีวิธีอื่นช่วนสอนทีนะครับ
neoclassic
01-10-2008, 09:42 AM
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]
Secret_Man
01-10-2008, 08:18 PM
รบกวนท่าน 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 ที่ไว้สำหรับขึ้นบรรทัดใหม่หรือไม่ครับ
neoclassic
01-10-2008, 09:44 PM
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]
Secret_Man
04-10-2008, 12:23 AM
รบกวนท่าน neoclassic อีกทีครับผม
ผมได้ทำโค้ดที่ท่านให้มาอะครับไปใส่ไว้ในส่วนของ button1
เพื่อที่จะเวลากด button1 แล้วมันจะมีหน้าต่างเซฟเด้งขึ้นมา
เพื่อที่จะให้เลือกที่จะเซฟ แต่บังเอิญว่า พอกดปุ๊ป ไม่มีอะไีรเกิดขึ้นเลยอะครับ
ไม่มีหน้าต่าง SaveFile เด้งมาอะครับ ไม่ทราบว่าเกิดจากอะไรครับผม
แล้วก็ ตรงบรรทัด Dim s As New StreamWriter(cdl.FileName)
มันมีเส้นใต้ยึกยือยึกยือสีน้ำเงินเกิดขึ้นตรง StreamWriter มันเกิดจากอะไรอีกเช่นกันครับ
รบกวนด้วยนะครับ ^^
pspn.n
04-10-2008, 09:34 AM
ก่อนอื่นผมเปิด 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)
{
neoclassic
04-10-2008, 09:34 AM
http://pic.citec.us/out.php/i7097_vbnetrich.jpg
ต้อง Imports System.IO ด้วยน้ะ
ของผมใช้ VB 2008 .Net Framework 3.5 SP 1 ทดลองบน vista sp 1
คิดว่าไม่น่าต่างกัน 2005 กับ 2008 ถ้า Framework เดียวกันไม่น่ามีปัญหา
Secret_Man
04-10-2008, 09:51 AM
ขอบคุณท่าน 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
:D
Secret_Man
19-10-2008, 01:22 PM
ขอรบกวนถามผู้รู้อีกนิดนึงนะครับว่า
ถ้าเกิดว่าเราต้องการเซฟเป็นไฟล์ที่เอนโค้ดแบบ UTF-8
เราต้องเขียนคำสั่งเพิ่มตรงไหนอะครับ
:unsure:
alcoholic
20-10-2008, 01:21 PM
ขอบคุณท่าน 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
:D
[/b]
ลองเปลี่ยนเป็น Dim StreamFile As New IO.StreamWriter(SaveFileDialog1.FileName,System.Text.Encoding.UTF8)
อ้างอิงได้ ที่นี่ (http://msdn.microsoft.com/en-us/library/3aadshsx.aspx)
Powered by vBulletin® Version 4.2.5 Copyright © 2026 vBulletin Solutions Inc. All rights reserved.