Форум программистов, компьютерный форум, киберфорум
Наши страницы

Visual Basic .NET

Войти
Регистрация
Восстановить пароль
 
 
LORDikGOOD
0 / 0 / 0
Регистрация: 25.07.2014
Сообщений: 24
#1

Чтение/запись текста из TextBox в текстовый файл - Visual Basic .NET

25.07.2014, 11:28. Просмотров 9123. Ответов 34
Метки нет (Все метки)

Доброго времени суток, уважаемые программисты!!!

Сразу скажу что нашел подобную тему (Чтение строк из файла и запись их в отдельном textbox) но не смог в ней разобраться, поэтому прошу помочь мне в следующем вопросе, желательно поподробнее все разжевать:
Пишу программу на VB2010 суть которой в том, что на форме имеется определенное количество TextBox (например 5 штук) пользователь вводит в них определенную текстовую информацию (например ФИО, дата рождения, место жительства и т.д.) после нажатия соответствующей кнопки на форме, информация из указанных TextBox подставляется на закладки в шаблоне Word'а и документ открывается для форматирования, долее пользователь просматривает весь документ в Word'е и при необходимости выводит его на печать или сохраняет сам.
Так вот суть моей проблемы в том, чтоб при нажатии указанной выше кнопки информация из TextBox сохранялась и при необходимости, после нового запуска программы я мог загрузить эту информацию в нужные TextBox в эту же форму или другие формы.

Данную проблему пробовал решить записью текста из TextBox в .txt файл, но столкнулся со следующей проблемой, не могу записать текст из каждого отдельного TextBox а в новую строку и не могу считать определенную строку .txt файла в определенный TextBox.

Так же может кто подскажет другой способ сохранения и считывая текста из TextBox....

Заранее благодарен за помощь!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.07.2014, 11:28
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Чтение/запись текста из TextBox в текстовый файл (Visual Basic .NET):

Запись в файл текста из TextBox и замена букв на * - Visual Basic .NET
На форме есть Textbox и две кнопки.Первая кнопка создает txt файл и записывает в него все, что было в textbox.Вторая кнопка преобразует...

Чтение текста из файла в textbox - Visual Basic .NET
Проблема вот в чем... есть 6(в реальности их 50) TextBox'ов при выходе из программы, или при нажатии кнопки "Сохранить" данные из этих...

Содержимое textbox-а записать в текстовый файл - Visual Basic .NET
Помогите с кодом! Мне нужно, чтобы то, что вводится в Text box записывалось в txt файл. Я так понимаю, это выглядит как-то так: ...

.NET 4.x Запись текста из TextBox в книгу Excel - Visual Basic .NET
Подскажите как сделать так что бы текст из textbox добавляло в excel. То есть нужно что бы выводило из текстбоксов и добавляло в тот же...

Запись текста из нескольких textbox в txt - Visual Basic .NET
Доброго времени суток. Возник вопрос. У меня 13 textbox-ов, мне нужно брать текст только из 10: TextBox1, TextBox6, TextBox7,...

Запись текста из TextBox в документ MS Word - Visual Basic .NET
Как импортировать текст из текст бокса в вордовский документ?Если можно то дайте пример через комбо бокс. Буду благодарен.

34
Памирыч
Почетный модератор
20632 / 8673 / 1029
Регистрация: 11.04.2010
Сообщений: 11,008
26.07.2014, 10:19 #16
В кнопку выбора и загрузки данных впишите код

vb.net
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
        Dim OFD As New OpenFileDialog With {.Filter = "MyConfig|*.dat"}
        If OFD.ShowDialog <> Windows.Forms.DialogResult.OK Then Exit Sub
        For Each Line In System.IO.File.ReadAllLines(OFD.FileName)
            Dim Values() As String = Line.Split("=")
            Dim NameControl As String = Values(0).Trim()
            Dim TextControl As String = Values(1).Trim()
            If Controls.ContainsKey(NameControl) Then
                If TypeOf (Controls(NameControl)) Is TextBox Then
                    Controls(NameControl).Text = TextControl
                ElseIf TypeOf (Controls(NameControl)) Is ComboBox Then
                    Dim objComboBox As ComboBox = CType(Controls(NameControl), ComboBox)
                    If objComboBox.Items.Contains(TextControl) Then
                        objComboBox.Text = TextControl
                        objComboBox.SelectedItem = TextControl
                    End If
                ElseIf TypeOf (Controls(NameControl)) Is DateTimePicker Then
                    CType(Controls(NameControl), DateTimePicker).Value = Date.Parse(TextControl)
                End If
            End If
        Next
0
LORDikGOOD
0 / 0 / 0
Регистрация: 25.07.2014
Сообщений: 24
26.07.2014, 10:32  [ТС] #17
Памирыч, сделал как Вы сказали - проблема осталась прежней, после выбора файла и нажатия "открыть" ничего не происходит
0
Памирыч
Почетный модератор
20632 / 8673 / 1029
Регистрация: 11.04.2010
Сообщений: 11,008
26.07.2014, 10:37 #18
Тут я бессилен, код рабочий, и Вы его значит куда-то не туда вставляете
0
Nord790
Строитель
664 / 400 / 116
Регистрация: 01.04.2014
Сообщений: 421
26.07.2014, 10:40 #19
проблема осталась прежней, после выбора файла и нажатия "открыть" ничего не происходит
даже диалог не открывается?
0
LORDikGOOD
0 / 0 / 0
Регистрация: 25.07.2014
Сообщений: 24
26.07.2014, 10:44  [ТС] #20
Вот текст всего кода формы
vb.net
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
Public Class Form01
    'Ниже мы прописываем два объекта, которые нам будут нужны для открытия Word.
    'Прописывать их желательно до основного тела функций и событий.
    Dim oWord As Object ' Сам Word как приложение
    Dim oDoc As Object ' Конкретный документ .doc, для открытия в Word
   
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        '----------------------------------------------------------------------------------------------------------
        'СОХРАНЕНИЕ -----------------------------------------------------------------------------------------------
        '----------------------------------------------------------------------------------------------------------
        ' создание папки:
        If My.Computer.FileSystem.DirectoryExists("d:\БД (АРМС)\" + TextBox3.Text) Then ' проверка существует ли папка
            MsgBox("Папка с таким именем уже существует")  ' и вівод сообщение если такая уже есть
        Else
            My.Computer.FileSystem.CreateDirectory("d:\БД (АРМС)\" + TextBox3.Text) ' сздание новой папки
        End If
 
        '----------------------------------------------------------------------------------------------------------
        ' запись
 
        Dim Controls() As Control = {TextBox3, TextBox6, TextBox13, TextBox16, TextBox18, TextBox17, TextBox1,
                                     TextBox2, TextBox19, TextBox5, TextBox4, TextBox9, TextBox10, TextBox11,
                                     ComboBox1, ComboBox2, ComboBox3, ComboBox4, DateTimePicker1, DateTimePicker2}
        Using StreamWriter As New System.IO.StreamWriter("d:\БД (АРМС)\" + TextBox3.Text + "\Протокол" & TextBox1.Text & ".txt")
            For Each Control In Controls
                If TypeOf (Control) Is TextBox Then
                    StreamWriter.WriteLine(String.Format("{0} = {1}", Control.Name, Control.Text))
                ElseIf TypeOf (Control) Is ComboBox Then
                    StreamWriter.WriteLine(String.Format("{0} = {1}", Control.Name, CType(Control, ComboBox).Text))
                ElseIf TypeOf (Control) Is DateTimePicker Then
                    StreamWriter.WriteLine(String.Format("{0} = {1}", Control.Name, CType(Control, DateTimePicker).Value.ToString()))
                End If
            Next
        End Using
 
       
        '----------------------------------------------------------------------------------------------------------
        ' ДАЛЕЕ ВСТАВКА ТЕКСТА ИЗ ФОРМЫ В ВОРД ---------------------------------------------------------------------
        '----------------------------------------------------------------------------------------------------------
        oWord = CreateObject("Word.Application")
        oDoc = oWord.Documents.Add("D:\Шаблоны (АРМС)\Протокол.dot")
        oWord.visible = True
        ' Вставляем текст:
        oDoc.Bookmarks.Item("ТекстовоеПоле1").Range.Text = DateTimePicker1.Text
        oDoc.Bookmarks.Item("ТекстовоеПоле29").Range.Text = DateTimePicker1.Text
        oDoc.Bookmarks.Item("ТекстовоеПоле3").Range.Text = TextBox13.Text
       ' .......... и т.д.
    End Sub
    
' кнопка ВЫХОД
    Private Sub Button4_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        Form2_Основная_форма.Show()
        Me.Hide()
    End Sub
  
  'зкрытие формы крестиком или АЛТ ф4
    Private Sub Form2_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
        Form2_Основная_форма.Show()
    End Sub
  
 
  'ОТКРЫТИЕ данных из  файла
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
 
        Dim OFD As New OpenFileDialog With {.Filter = "MyConfig|*.dat"}
        If OFD.ShowDialog <> Windows.Forms.DialogResult.OK Then Exit Sub
        For Each Line In System.IO.File.ReadAllLines(OFD.FileName)
            Dim Values() As String = Line.Split("=")
            Dim NameControl As String = Values(0).Trim()
            Dim TextControl As String = Values(1).Trim()
            If Controls.ContainsKey(NameControl) Then
                If TypeOf (Controls(NameControl)) Is TextBox Then
                    Controls(NameControl).Text = TextControl
                ElseIf TypeOf (Controls(NameControl)) Is ComboBox Then
                    Dim objComboBox As ComboBox = CType(Controls(NameControl), ComboBox)
                    If objComboBox.Items.Contains(TextControl) Then
                        objComboBox.Text = TextControl
                        objComboBox.SelectedItem = TextControl
                    End If
                ElseIf TypeOf (Controls(NameControl)) Is DateTimePicker Then
                    CType(Controls(NameControl), DateTimePicker).Value = Date.Parse(TextControl)
                End If
            End If
        Next
    End Sub
End Class
З.Ы. прошу не ругать за корявый код, я ведь только учусь!
0
Nord790
Строитель
664 / 400 / 116
Регистрация: 01.04.2014
Сообщений: 421
26.07.2014, 10:44 #21
вот посмотри проект
0
Вложения
Тип файла: zip WindowsApplication1.zip (100.3 Кб, 29 просмотров)
LORDikGOOD
0 / 0 / 0
Регистрация: 25.07.2014
Сообщений: 24
26.07.2014, 10:52  [ТС] #22
Nord790, Ваш проект отлично работает! не могу понять что с моим то не так!!! все сделано аналогично!!!
Если Вам не сложно посмотрите текст моего проекта!
0
Nord790
Строитель
664 / 400 / 116
Регистрация: 01.04.2014
Сообщений: 421
26.07.2014, 10:56 #23
у меня только один вариант есть, скорее всего все эти элементы не на самой форме находятся, а скорее всего на другом элементе
потому что в коде идёт проверка
vb.net
1
If Controls.ContainsKey(NameControl) Then
Добавлено через 1 минуту
LORDikGOOD, попробуй в проекте который я скинул закинуть все текстбоксы, комбобоксы и дату, запихать в Panel, и у видишь результат при загрузки файла.
0
LORDikGOOD
0 / 0 / 0
Регистрация: 25.07.2014
Сообщений: 24
26.07.2014, 11:12  [ТС] #24
Nord790, разобрался я, так и есть элементы были на GroupBox, я думал это никак не влияет на код!!! Убрал GroupBox теперь все работает!

Еще раз огромное спасибо всем кто откликнулся!
0
Nord790
Строитель
664 / 400 / 116
Регистрация: 01.04.2014
Сообщений: 421
26.07.2014, 12:26 #25
LORDikGOOD, мог бы и не убирать
vb.net
1
GroupBox1.Controls
1
LORDikGOOD
0 / 0 / 0
Регистрация: 25.07.2014
Сообщений: 24
26.07.2014, 13:29  [ТС] #26
данные из файла .dat (точнее файлов, их будет много) буду использовать в других формах, только в тех формах будут использоваться не все данные, например только ФИО и все, как это прописать???
0
Nord790
Строитель
664 / 400 / 116
Регистрация: 01.04.2014
Сообщений: 421
26.07.2014, 13:34 #27
т.е. я так понял тебе надо, вычитать с файла только фио, а потом сохранить так чтобы изменилось только это строка, а всё остальное осталось?
0
Памирыч
26.07.2014, 13:35
  #28

Не по теме:

Вечно из-за этих групбоксов да панелей

недопонимание
Чтение/запись текста из TextBox в текстовый файл

0
LORDikGOOD
0 / 0 / 0
Регистрация: 25.07.2014
Сообщений: 24
26.07.2014, 13:49  [ТС] #29
ииNord790, с прошлой формой я разобрался: кратко напомню, запускается форма, пользователь вводит данные во все поля и по нажатию кнопки сохраняет все в файл, запуская в очередной раз эту же форму пользователь может либо снова ввести другие данные и сохранить их либо загрузить уже сохраненные из файла. Тут все работает.

Но в проекте есть еще одна форма, ее суть в том, что в ней есть 2 TextBox и при нажатии кнопки загрузить нужно из файла взять не всю информацию, а только, например только дату рождения в один TextBox фамилию во второй TextBox и все

Добавлено через 3 минуты
тоесть перезапись мне не нужно, просто нужно считать определенную строку файла (их может быть несколько) и записать эту строку в определенный TextBox
0
Darth Coder
278 / 259 / 69
Регистрация: 10.06.2011
Сообщений: 695
26.07.2014, 14:26 #30
Цитата Сообщение от LORDikGOOD Посмотреть сообщение
тоесть перезапись мне не нужно, просто нужно считать определенную строку файла (их может быть несколько) и записать эту строку в определенный TextBox

Не по теме:

а кто-то в самом начале советовал тебе использовать XML, во избежание подобных ситуаций

1
26.07.2014, 14:26
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.07.2014, 14:26
Привет! Вот еще темы с ответами:

Запись текста в TextBox другой формы - Visual Basic .NET
Среда Visual Basic STUDIO’2010 Professional Оба TextBox находяться на разных формах, Імена контролов совпадает. Строка находится в...

Сохранение в текстовый файл с именем указанным в тексте TextBox - Visual Basic .NET
а как можно сделать чтобы текстовый файл сохранялся с именем указанных в тексте TextBox, т.е. файл.txt заменить на TextBox.text? Одна...

Чтение текста из файла и запись его частей в переменные - Visual Basic .NET
Всем привет. Столкнулся с проблемой переноса ключей расшифровки. Одна программа генерирует ключи, записывает их в таком виде: 3|2|3 (могу...

Чтение строк текста из файла и запись каждой в свою переменную - Visual Basic .NET
В файле input.txt две строки, необходимо чтобы прога прочитала первую строку и записала ее в переменную LineA, а вторую строку в переменную...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
30
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.