none
Запись в текстовый файл Visual Basic 2008 експрес выпуск RRS feed

  • Вопрос

  • Используя код для записи в текстовый файл

     

    Dim

     

    myStream As Stream

     

     

    Dim saveFileDialog1 As New SaveFileDialog()

    saveFileDialog1.Filter =

     

    "  (*.txt)|*.txt| (*.rtf)|*.rtf|All files (*.*)|*.*"

    saveFileDialog1.FilterIndex = 2

    saveFileDialog1.RestoreDirectory =

    True

     

    If saveFileDialog1.ShowDialog() = DialogResult.OK Then

    myStream = saveFileDialog1.OpenFile()

     

    If (myStream IsNot Nothing) Then

     

    ' Code to write the stream goes here.

    myStream.Close()

     

    End If

     

    End If

    файл создается, но когда ево открыть в текстовом редакторе, текста в нем нет. Как ето исправить?
    • Перемещено SachinW 1 октября 2010 г. 21:28 MSDN Forums Consolidation (От:Начинающие разработчики)
    13 июля 2010 г. 18:54

Ответы

  • Public Class MainForm
    
      Private filename As String
    
      Private Sub openTextFile_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles openTextFile.Click
        Try
          With odlgTextFile
            ' См. в событии btnRetriveFileNames_Click описания значений по умолчанию 
            ' для свойств.
    
            ' Убедитесь, что выбранный файл существует. Иначе в диалоговом окне появится 
            ' предупреждение.
            .CheckFileExists = True
    
            ' Убедитесь, что выбранный путь существует. Иначе в диалоговом окне появится 
            ' предупреждение.
            .CheckPathExists = True
    
            ' Получите или задайте расширение по умолчанию. Не указывайте начальный знак ".".
            .DefaultExt = "txt"
    
            ' Возвратить файл, на который указывает ссылка? Если задано значение False, просто возвращается выбранный файл
            ' ссылки. Если значение True, то возвращается файл, связанный с LNK-файлом.
            .DereferenceLinks = True
    
            ' Как в VB6, используйте набор пар фильтров, разделенных знаком "|". Каждая 
            ' пара включает спецификацию описание|файл. Используйте "|" между парами. Не указывайте
            ' "|" в конце. Можно также задать свойство FilterIndex, чтобы выбрать фильтр
            ' по умолчанию. Первый фильтр получает номер 1 (не 0). По умолчанию: 1. 
            .Filter = _
            "Text files (*.txt)|*.txt|All files|*.*"
    
            .Multiselect = False
    
            ' Восстановить исходный каталог после завершения выбора
            ' файла? Если задано значение False, текущий каталог будет заменен
            ' на каталог, в котором выбран файл.
            ' Задайте значение True, чтобы вернуть текущую папку туда,
            ' где она была вначале.
            ' По умолчанию: False.
            .RestoreDirectory = True
    
            ' Показать кнопку "Справка" и флажок "Только чтение"?
            .ShowHelp = True
            .ShowReadOnly = False
    
            ' Начать с установленным флажком "Только чтение"?
            ' Это имеет смысл только в случае, когда ShowReadOnly имеет значение True.
            .ReadOnlyChecked = False
    
            .Title = "Select a file to open"
    
            ' Принимать только допустимые имена файлов Win32?
            .ValidateNames = True
    
            If .ShowDialog = Windows.Forms.DialogResult.OK Then
              Try
                txtFileContents.Text = My.Computer.FileSystem.ReadAllText(.FileName)
              Catch fileException As Exception
                Throw fileException
              End Try
            End If
    
          End With
        Catch ex As Exception
          MsgBox(ex.Message, MsgBoxStyle.Exclamation, Me.Text)
        End Try
      End Sub
    
      Private Sub btnSaveTextFile_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSaveTextFile.Click
        Try
          With sdlgTextFile
            ' В коде, демонстрирующим элемент управления OpenFileDialog, см.
            ' примеры использования большинства свойств, одинаковых
            ' для обоих элементов управления.
    
            ' Добавьте расширение по умолчанию, если пользователь забыл добавить расширение.
            ' По умолчанию: True.
            .AddExtension = True
    
            ' Убедитесь, что путь к выходному файлу существует. Выдавать запрос перед
            ' созданием нового файла? Предупреждать перед перезаписью? 
            ' По умолчанию: True.
            .CheckPathExists = True
            ' По умолчанию: False.
            .CreatePrompt = False
            ' По умолчанию: True.
            .OverwritePrompt = True
            ' По умолчанию: True.
            .ValidateNames = True
            ' По умолчанию: False.
            .ShowHelp = True
    
            ' Если пользователь не указывает расширение и если свойство AddExtension имеет
            ' значение True, используйте это расширение. По умолчанию: "".
            .DefaultExt = "txt"
    
            ' Предложите запрос с именем текущего файла, если оно было указано.
            ' По умолчанию: "".
            .FileName = filename
    
            ' По умолчанию: "".
            .Filter = _
            "Text files (*.txt)|*.txt|" & _
            "All files|*.*"
            .FilterIndex = 1
    
            If .ShowDialog() = Windows.Forms.DialogResult.OK Then
              My.Computer.FileSystem.WriteAllText(.FileName, txtFileContents.Text, False)
            End If
    
          End With
        Catch ex As Exception
          MsgBox(ex.Message, MsgBoxStyle.Exclamation, Me.Text)
        End Try
      End Sub
    

    Вот кусок кода из примера VS 2008 RTM VBSamples\Winforms Samples\CommonDialogs

    скачай пример и посмотри сам, я с этим не сталкивался.

    txtFileContents.Text-текстовое поле на форме

    • Предложено в качестве ответа mr_arti 14 июля 2010 г. 14:51
    • Помечено в качестве ответа I.Vorontsov 15 июля 2010 г. 5:12
    14 июля 2010 г. 10:19