|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » VBA - [решено] сохранить элементы массива и потом загрузить обратно |
|
VBA - [решено] сохранить элементы массива и потом загрузить обратно
|
Новый участник Сообщения: 8 |
помогите разобраться с прогой, есть две формы связанные одним глобальным массивом, так вот на одной форме мы к примеру в текстбоксах пишем некие суммы и надо чтоб это сохранялось в массив потом при новом запуске проги, вторая форма уже использовала этот сохраненный массив
![]() |
|
Отправлено: 15:31, 02-02-2015 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Пишете в файл. При запуске ищете этот файл и загружаете из него данные.
|
Отправлено: 16:48, 02-02-2015 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 8
|
Профиль | Отправить PM | Цитировать я тут по искал в инете http://www.cyberforum.ru/vb-net/thread1233719.html, сохраняет в файл, но вот почему то не получается сохранить данные типа double
|
Отправлено: 17:03, 02-02-2015 | #3 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать matyash, у Вас VB, VBA или VB.Net? Массив содержит данные одного типа или нескольких?
|
Отправлено: 17:23, 02-02-2015 | #4 |
Новый участник Сообщения: 8
|
Профиль | Отправить PM | Цитировать VB.Net одного Double
|
|
Отправлено: 17:50, 02-02-2015 | #5 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Можете, например, попробовать так:
Скрытый текст
Imports System.IO Module Module1 Sub Main() Dim aArrayOfDoubles() = New Double() {1, 2, 3, 4, 5} Dim elem As Double Dim sSourceFile As String = "c:\MyArray.bin" Dim oFileStream As New System.IO.FileStream(sSourceFile, IO.FileMode.OpenOrCreate, IO.FileAccess.Write) Dim oBinaryWriter As New System.IO.BinaryWriter(oFileStream) For Each elem In aArrayOfDoubles oBinaryWriter.Write(elem) Next oBinaryWriter.Close() oFileStream.Close() Dim oFileStream2 As New System.IO.FileStream(sSourceFile, IO.FileMode.Open, IO.FileAccess.Read) Dim oBinaryReader As New System.IO.BinaryReader(oFileStream2) Try Do Console.WriteLine(oBinaryReader.ReadDouble()) Loop Catch ex As EndOfStreamException ' Nothing to do Finally oBinaryReader.Close() End Try oFileStream2.Close() End Sub End Module Первая часть кода сохраняет значения массива double() в файл, вторая — читает значения double из файла. |
Отправлено: 23:05, 02-02-2015 | #6 |
Новый участник Сообщения: 8
|
Профиль | Отправить PM | Цитировать спасибо попробую, а если не сложно можно закомментировать данный код, чтобы не тупо скатать, а понять и запомнить на будущее
![]() |
Отправлено: 20:55, 03-02-2015 | #7 |
Новый участник Сообщения: 8
|
Профиль | Отправить PM | Цитировать не выходит:
у меня массив public: вот форма 1 Public Class Form1 Dim sum As Double Private Sub Button40_Click(sender As Object, e As EventArgs) Handles Button40.Click Form2.Show() End Sub Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click TextBox1.Text = TextBox1.Text & "мясной - " & Convert.ToString(costs(1)) & vbCrLf sum = sum + costs(1) TextBox2.Text = Convert.ToString(sum) End Sub Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load End Sub Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click TextBox1.Text = TextBox1.Text & "элегия - " & Convert.ToString(costs(0)) & vbCrLf sum = sum + costs(0) TextBox2.Text = Convert.ToString(sum) End Sub Private Sub Button39_Click(sender As Object, e As EventArgs) Handles Button39.Click TextBox1.Clear() TextBox2.Clear() sum = 0 End Sub модуль форма 2 Private Sub TextBox2_TextChanged(sender As Object, e As EventArgs) Handles TextBox2.TextChanged If TextBox2.Text <> "" Then costs(1) = Convert.ToDouble(TextBox2.Text) Else costs(1) = costs(1) End If End Sub Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged If TextBox1.Text <> "" Then costs(0) = Convert.ToDouble(TextBox1.Text) Else costs(0) = costs(0) End If |
Последний раз редактировалось Drongo, 05-02-2015 в 19:42. Причина: # Отправлено: 21:24, 03-02-2015 | #8 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата matyash:
Скрытый текст
' Импортируем библиотеку Imports System.IO Module Module1 Sub Main() ' Первая часть Замечания:
|
|
Последний раз редактировалось Iska, 05-02-2015 в 13:16. Причина: Исправлена описка: «запонять» → «заполнять» Отправлено: 21:08, 04-02-2015 | #9 |
Новый участник Сообщения: 8
|
Профиль | Отправить PM | Цитировать спасибо вам
![]() |
Отправлено: 08:43, 05-02-2015 | #10 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Разное - как мне превратить флеху в локальный диск(флеха kingmax 4gb,)а потом обратно. | fipati100 | Накопители (SSD, HDD, USB Flash) | 0 | 22-01-2015 15:12 | |
Разное - Все программы перестали выполнять команды: Открыть, сохранить, сохранить как. | KvadraNT | Microsoft Windows 7 | 9 | 11-12-2012 12:32 | |
[решено] Как присвоить элементы массива в "перетасованном" виде другому массиву? | evg64 | AutoIt | 3 | 27-09-2009 14:09 | |
Разное - из SP2 в SP1 а потом обратно | 35house | Microsoft Windows Vista | 9 | 19-07-2009 19:22 | |
Доступ - [решено] Растёт время отклика от сервера, потом он недоступен, а потом снова нормальный пинг | Lesta | Microsoft Windows 2000/XP | 9 | 19-06-2009 13:38 |
|