Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
8 / 8 / 10
Регистрация: 16.10.2012
Сообщений: 523

Запись в текстовый файл определенной структуры

03.12.2014, 12:27. Показов 1050. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток, нужно в писать в файл определенной структурой:

Не по теме:


Aspire E1 571G
Core_i3|101:Core_i5|212

710M|146:GT620M|151:HD3000|153

15.6
113
3072МБ|85:4096МБ|113

320ГБ|175:1000ГБ|846


Как просто писать в файл я знаю, а как организовать запись таким образом, чтобы с формы в программе (Текстовые поля и кнопки), можно было вписывать в файл конфигурации цены на новые модели
P.S. Если сделать хотя бы 1 ошибку в файле, то файл конфигурации перестает работать
Внизу скрин того, как оно должно работать.
Файл также прикладываю.
Прогрузка конфигурации:

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
Sub LoadToCombo(ByVal Index As Integer)
        Dim Tmp As Notebook = lst(Index)
        comboBox1.Items.Clear() : comboBox1.Items.AddRange(Tmp.Processor.ToArray) : comboBox1.Tag = String.Join("|", Tmp.ProcessorPrice.ToArray)
        comboBox2.Items.Clear() : comboBox2.Items.AddRange(Tmp.Video.ToArray) : comboBox2.Tag = String.Join("|", Tmp.VideoPrice.ToArray)
        comboBox3.Items.Clear() : comboBox3.Items.Add(Tmp.Diag)
        comboBox4.Items.Clear() : comboBox4.Items.AddRange(Tmp.Memory.ToArray) : comboBox4.Tag = String.Join("|", Tmp.MemoryPrice.ToArray)
        comboBox5.Items.Clear() : comboBox5.Items.AddRange(Tmp.HDD.ToArray) : comboBox5.Tag = String.Join("|", Tmp.HDDPrice.ToArray)
    End Sub
*************
Private Sub ComboBox7_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) Handles ComboBox7.SelectedIndexChanged
        LoadToCombo(ComboBox7.SelectedIndex)
        comboBox1.Enabled = True
    End Sub
*************
    Class Notebook
        Public Company, Model, Diag As String
        Public Processor, Video, Memory, HDD, ProcessorPrice, VideoPrice, MemoryPrice, HDDPrice As New List(Of String)
    End Class
*************
Private Sub ComboBox6_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox6.SelectedIndexChanged
        ComboBox7.Enabled = True
        'Не надо прописывать Acer и т.д. Пусть это будут имена файлов
        If IO.File.Exists("Data\SystemFiles\" & ComboBox6.Text & ".txt") Then
            Dim Lines() As String = IO.File.ReadAllLines("Data\SystemFiles\" & ComboBox6.Text & ".txt", System.Text.Encoding.Default)
            ComboBox7.Items.Clear()
            Total = 0
            For I As Integer = 0 To Lines.Length - 1 Step 11
                Dim Tmp As New Notebook
                With Tmp
                    .Model = Lines(I)
                    For Each StrTmp As String In Lines(I + 1).Split(":") 'Процы и их цены
                        .Processor.Add(StrTmp.Split("|")(0))
                        .ProcessorPrice.Add(StrTmp.Split("|")(1))
                    Next
 
                    For Each StrTmp As String In Lines(I + 3).Split(":") 'Видюхи и их цены
                        .Video.Add(StrTmp.Split("|")(0))
                        .VideoPrice.Add(StrTmp.Split("|")(1))
                    Next
 
                    .Diag = Lines(I + 5)
                    Razmer = Lines(I + 6)
 
                    For Each StrTmp As String In Lines(I + 7).Split(":") 'Память и их цены
                        .Memory.Add(StrTmp.Split("|")(0))
                        .MemoryPrice.Add(StrTmp.Split("|")(1))
                    Next
 
                    For Each StrTmp As String In Lines(I + 9).Split(":") 'Харды и их цены
                        .HDD.Add(StrTmp.Split("|")(0))
                        .HDDPrice.Add(StrTmp.Split("|")(1))
                    Next
 
                End With
                lst.Add(Tmp)
                ComboBox7.Items.Add(Tmp.Model)
            Next
        Else
            ComboBox7.Items.Clear()
            MsgBox("Не найден конфиг для " & ComboBox6.Text)
        End If
        If IO.File.Exists("Data\Img\" + ComboBox6.Text + ".jpg") Then
            Dim fs As New System.IO.FileStream("Data\Img\" + ComboBox6.Text + ".jpg", System.IO.FileMode.Open)
            Dim img As System.Drawing.Image = System.Drawing.Image.FromStream(fs)
            fs.Close()
            PictureBox1.Image = img
        Else
            Dim fs As New System.IO.FileStream("Data\Img\error.jpg", System.IO.FileMode.Open)
            Dim img As System.Drawing.Image = System.Drawing.Image.FromStream(fs)
            fs.Close()
            PictureBox1.BackgroundImage = img
        End If
    End Sub
Миниатюры
Запись в текстовый файл определенной структуры  
Вложения
Тип файла: txt Acer.txt (1.0 Кб, 3 просмотров)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.12.2014, 12:27
Ответы с готовыми решениями:

Задача с использованием структуры «текстовый файл» (в файле хранится текст) 1) Переписать в другой текстовый файл самую
Задача с использованием структуры «текстовый файл» (в файле хранится текст) 1) Переписать в другой текстовый файл самую короткую и самую...

Запись структуры в текстовый файл
Необходимо в текстовый фаил вывести данные. Фаил создается, но как бы я не пробовал, в него ничего не записывается. В строках 94-100...

Запись структуры в текстовый файл
в программе написан код для записи данных в бинарный файл. как его переделать, чтобы записывало в текстовый? просто сменить .bin на .txt не...

4
 Аватар для mc-black
2786 / 718 / 106
Регистрация: 04.02.2011
Сообщений: 1,443
03.12.2014, 14:15
А что за роспись звёздочками? Должно быть закомментировано! Выложите файл с модулями и UserForm.

Добавлено через 2 минуты
Private Sub ComboBox7_SelectedIndexChanged(...) Handles ComboBox7.SelectedIndexChanged
Вы видно форум перепутали - это относится к .NET
0
8 / 8 / 10
Регистрация: 16.10.2012
Сообщений: 523
03.12.2014, 15:49  [ТС]
Цитата Сообщение от mc-black Посмотреть сообщение
А что за роспись звёздочками?
Просто так, разделил текст программы
Вот код программы
Вложения
Тип файла: txt код.txt (481 байт, 7 просмотров)
0
Модератор
Эксперт JS
 Аватар для Eva Rosalene
5241 / 2115 / 416
Регистрация: 06.01.2013
Сообщений: 4,846
03.12.2014, 19:29
Цитата Сообщение от Darkvoid Посмотреть сообщение
Вот код программы
Это что вообще? Там совсем другой текст, проверили бы, прежде чем выкладывать.
0
8 / 8 / 10
Регистрация: 16.10.2012
Сообщений: 523
04.12.2014, 00:44  [ТС]
Простите, извините, видимо ошибся файлом

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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
Imports System.IO
Imports System.Text
 
Public Class Stoim
 
    Public Company, Model, Processor, Video, Diagonal, Pamyat, HDD, Podpis As String
 
    Public Stoimost As Double
    Public Result As Double = 0
    Public Proc As Double = 0
    Public Vid As Double = 0
    Public Razmer As Double = 0
    Public OZU As Double = 0
    Public Vin As Double = 0
    Public USD As Double = 0
    Dim BLR1, RUR1, EUR1 As Double
    Dim Total As Integer
 
    Function clearComboBox()
        comboBox1.Items.Clear()
        comboBox2.Items.Clear()
        comboBox3.Items.Clear()
        comboBox4.Items.Clear()
        comboBox5.Items.Clear()
    End Function
 
    Private Sub textBox2_KeyPress(sender As Object, e As KeyPressEventArgs) Handles textBox2.KeyPress
        Dim b As TextBox = TryCast(sender, TextBox)
        If Not ([Char].IsDigit(e.KeyChar)) AndAlso Not ((e.KeyChar = ","c) AndAlso (b.Text.IndexOf(",") = -1) AndAlso (b.Text.Length <> 0)) Then
            If e.KeyChar <> DirectCast(ChrW(Keys.Back), Char) Then
                e.Handled = True
            End If
        End If
    End Sub
 
    Private Sub textBox3_KeyPress(sender As Object, e As KeyPressEventArgs) Handles textBox3.KeyPress
        Dim b As TextBox = TryCast(sender, TextBox)
        If Not ([Char].IsDigit(e.KeyChar)) AndAlso Not ((e.KeyChar = ","c) AndAlso (b.Text.IndexOf(",") = -1) AndAlso (b.Text.Length <> 0)) Then
            If e.KeyChar <> DirectCast(ChrW(Keys.Back), Char) Then
                e.Handled = True
            End If
        End If
    End Sub
 
    Private Sub textBox4_KeyPress(sender As Object, e As KeyPressEventArgs) Handles textBox4.KeyPress
        Dim b As TextBox = TryCast(sender, TextBox)
        If Not ([Char].IsDigit(e.KeyChar)) AndAlso Not ((e.KeyChar = ","c) AndAlso (b.Text.IndexOf(",") = -1) AndAlso (b.Text.Length <> 0)) Then
            If e.KeyChar <> DirectCast(ChrW(Keys.Back), Char) Then
                e.Handled = True
            End If
        End If
    End Sub
 
 
    Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
        Process.Start("Data\SystemFiles")
    End Sub
 
    Dim lst As New List(Of Notebook)
 
    Private Sub Stoim_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
        'TODO: данная строка кода позволяет загрузить данные в таблицу "ModelsDataSet.Компания". При необходимости она может быть перемещена или удалена.
        Me.КомпанияTableAdapter.Fill(Me.ModelsDataSet.Компания)
        'ComboBox6.Items.AddRange(IO.File.ReadAllLines("Data\SystemFiles\Companies.txt", System.Text.Encoding.Default))
        BLR1 = Double.Parse(textBox2.Text)
        RUR1 = Double.Parse(textBox3.Text)
        EUR1 = Double.Parse(textBox4.Text)
        label7.Text = "Цена:"
        button1.Enabled = False
        button2.Enabled = False
        comboBox1.Enabled = False
        comboBox2.Enabled = False
        comboBox3.Enabled = False
        comboBox4.Enabled = False
        comboBox5.Enabled = False
        ComboBox7.Enabled = False
    End Sub
 
    Sub LoadToCombo(ByVal Index As Integer)
        Dim Tmp As Notebook = lst(Index)
        comboBox1.Items.Clear() : comboBox1.Items.AddRange(Tmp.Processor.ToArray) : comboBox1.Tag = String.Join("|", Tmp.ProcessorPrice.ToArray)
        comboBox2.Items.Clear() : comboBox2.Items.AddRange(Tmp.Video.ToArray) : comboBox2.Tag = String.Join("|", Tmp.VideoPrice.ToArray)
        comboBox3.Items.Clear() : comboBox3.Items.Add(Tmp.Diag)
        comboBox4.Items.Clear() : comboBox4.Items.AddRange(Tmp.Memory.ToArray) : comboBox4.Tag = String.Join("|", Tmp.MemoryPrice.ToArray)
        comboBox5.Items.Clear() : comboBox5.Items.AddRange(Tmp.HDD.ToArray) : comboBox5.Tag = String.Join("|", Tmp.HDDPrice.ToArray)
    End Sub
 
    Private Sub ComboBox7_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) Handles ComboBox7.SelectedIndexChanged
        LoadToCombo(ComboBox7.SelectedIndex)
        comboBox1.Enabled = True
    End Sub
    Class Notebook
        Public Company, Model, Diag As String
        Public Processor, Video, Memory, HDD, ProcessorPrice, VideoPrice, MemoryPrice, HDDPrice As New List(Of String)
    End Class
 
    Private Sub ComboBox6_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox6.SelectedIndexChanged
        ComboBox7.Enabled = True
        'Не надо прописывать Acer и т.д. Пусть это будут имена файлов
        If IO.File.Exists("Data\SystemFiles\" & ComboBox6.Text & ".txt") Then
            Dim Lines() As String = IO.File.ReadAllLines("Data\SystemFiles\" & ComboBox6.Text & ".txt", System.Text.Encoding.Default)
            ComboBox7.Items.Clear()
            Total = 0
            For I As Integer = 0 To Lines.Length - 1 Step 11
                Dim Tmp As New Notebook
                With Tmp
                    .Model = Lines(I)
                    For Each StrTmp As String In Lines(I + 1).Split(":") 'Процы и их цены
                        .Processor.Add(StrTmp.Split("|")(0))
                        .ProcessorPrice.Add(StrTmp.Split("|")(1))
                    Next
 
                    For Each StrTmp As String In Lines(I + 3).Split(":") 'Видюхи и их цены
                        .Video.Add(StrTmp.Split("|")(0))
                        .VideoPrice.Add(StrTmp.Split("|")(1))
                    Next
 
                    .Diag = Lines(I + 5)
                    Razmer = Lines(I + 6)
 
                    For Each StrTmp As String In Lines(I + 7).Split(":") 'Память и их цены
                        .Memory.Add(StrTmp.Split("|")(0))
                        .MemoryPrice.Add(StrTmp.Split("|")(1))
                    Next
 
                    For Each StrTmp As String In Lines(I + 9).Split(":") 'Харды и их цены
                        .HDD.Add(StrTmp.Split("|")(0))
                        .HDDPrice.Add(StrTmp.Split("|")(1))
                    Next
 
                End With
                lst.Add(Tmp)
                ComboBox7.Items.Add(Tmp.Model)
            Next
        Else
            ComboBox7.Items.Clear()
            MsgBox("Не найден конфиг для " & ComboBox6.Text)
        End If
        If IO.File.Exists("Data\Img\" + ComboBox6.Text + ".jpg") Then
            Dim fs As New System.IO.FileStream("Data\Img\" + ComboBox6.Text + ".jpg", System.IO.FileMode.Open)
            Dim img As System.Drawing.Image = System.Drawing.Image.FromStream(fs)
            fs.Close()
            PictureBox1.Image = img
        Else
            Dim fs As New System.IO.FileStream("Data\Img\error.jpg", System.IO.FileMode.Open)
            Dim img As System.Drawing.Image = System.Drawing.Image.FromStream(fs)
            fs.Close()
            PictureBox1.BackgroundImage = img
        End If
    End Sub
 
    Private Sub button2_Click(sender As Object, e As EventArgs) Handles button2.Click
        Model = ComboBox7.Text
        Processor = comboBox1.Text
        Video = comboBox2.Text
        Diagonal = comboBox3.Text
        Pamyat = comboBox4.Text
        HDD = comboBox5.Text
        'Stoim = TextBox1.Text
 
        Result = Proc + Vid + Razmer + OZU + Vin
        USD = Result
        Dim BLR As Double = BLR1 * USD
        Dim RUR As Double = RUR1 * USD
        Dim EUR As Double = EUR1 * USD
        If radioButton1.Checked Then
            label7.Text = "Бел"
            TextBox1.Text = BLR.ToString()
            Stoimost = BLR
            FinishZakaz.st = Stoimost
            Podpis = "Б. рублей"
        End If
        If radioButton2.Checked Then
            label7.Text = "Дол"
            TextBox1.Text = USD.ToString()
            Stoimost = USD
            FinishZakaz.st = Stoimost
            Podpis = "Долларов"
        End If
        If radioButton3.Checked Then
            label7.Text = "Евр"
            TextBox1.Text = EUR.ToString()
            Stoimost = EUR
            FinishZakaz.st = Stoimost
            Podpis = "Евро"
        End If
        If radioButton4.Checked Then
            label7.Text = "Рус"
            TextBox1.Text = RUR.ToString()
            Stoimost = RUR
            FinishZakaz.st = Stoimost
            Podpis = "Р. рублей"
        End If
        button1.Enabled = True
    End Sub
 
 
    Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles comboBox1.SelectedIndexChanged
        Proc = comboBox1.Tag.ToString.Split("|")(sender.SelectedIndex)
        comboBox2.Enabled = True
    End Sub
 
    Private Sub comboBox2_SelectedIndexChanged(sender As Object, e As EventArgs) Handles comboBox2.SelectedIndexChanged
        Vid = comboBox2.Tag.ToString.Split("|")(sender.SelectedIndex)
        comboBox3.Enabled = True
    End Sub
 
    Private Sub comboBox3_SelectedIndexChanged(sender As Object, e As EventArgs) Handles comboBox3.SelectedIndexChanged
        comboBox4.Enabled = True
    End Sub
 
    Private Sub comboBox4_SelectedIndexChanged(sender As Object, e As EventArgs) Handles comboBox4.SelectedIndexChanged
        OZU = comboBox4.Tag.ToString.Split("|")(sender.SelectedIndex)
        comboBox5.Enabled = True
    End Sub
 
    Private Sub comboBox5_SelectedIndexChanged(sender As Object, e As EventArgs) Handles comboBox5.SelectedIndexChanged
        Vin = comboBox5.Tag.ToString.Split("|")(sender.SelectedIndex)
        button2.Enabled = True
    End Sub
 
    Private Sub Stoim_Activated(sender As Object, e As EventArgs) Handles MyBase.Activated
        Button3.Enabled = Vhod.bso
    End Sub
 
    Private Sub button1_Click(sender As Object, e As EventArgs) Handles button1.Click
        FinishZakaz.Show()
        Me.Close()
    End Sub
End Class
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
04.12.2014, 00:44
Помогаю со студенческими работами здесь

Запись/считывание структуры в текстовый файл
Здравствуйте! Нужна помощь, я создаю структуру, заполняю её и вывожу на экран в форме таблицы, с этим все окей, но я хочу сделать так: к...

Запись структуры в файл - Как сделать так, чтобы в файл записывались только данные структуры?
Здравствуйте! using System.Runtime.Serialization.Formatters.Binary; public struct wav { public char a; public...

Как распарсить файл определенной структуры
Есть файл типа yml если я не ошибаюсь. Inform: 'News1': type: IT MiSet: {set: 9.0, pos: 71.0, mod: replace} ...

Как мне создать текстовый файл в определенной директории?
Мне нужно по определенному пути моего проекта создать текстовый файл.

Как создать текстовый файл в определённой директории на диске?
Ребят помогите,как создать текстовый файл в определённой директории на диске C.


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru