0 / 0 / 0
Регистрация: 19.12.2012
Сообщений: 17
1

VB работа с файлами

23.12.2014, 15:32. Показов 1205. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Объясните пожалуйста что происходит в этом коде:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Dim s As String
Dim b(5) As Single
Dim p As String
 
Private Sub CommandButton1_Click()
Open "C:\Mass.txt" For Input As 1
Open "C:\rez.txt" For Output As #2
s = Input$(LOF(1), #1)
Close 1
Dim a '()
a = Split(s, vbCrLf)
p = 1
For i = 0 To UBound(a)
  If Val(a(i)) Then p = p * Val(a(i))
  Next
Print #2, ""; p
End
End Sub
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.12.2014, 15:32
Ответы с готовыми решениями:

Работа с файлами
Люди, помогите, пожалуйста, выполнить такое задание: Пусть есть файл с последовательным...

Работа с файлами
Как сделать чтобы на файл файл.txt записывалась следующая строка: "a"+"b"+"c"+"d"+"e"+"F" и...

работа с файлами
Toxa33rus, Здравствуйте! Помогите мне решить задачу? Вот задача: Задача Имя входного файла ...

Работа с файлами в VB
Существует 2 файла типа Sequential (.txt). код на их создание написали, помогите как отсортировать...

6
Заблокирован
23.12.2014, 15:39 2
Прочитать файл с числами, перемножить ненулевые и вывести результат в другой файл.
0
11485 / 3773 / 677
Регистрация: 13.02.2009
Сообщений: 11,152
23.12.2014, 15:41 3
Написали за тебя программу, а тебе даже лень заглянуть в справочник?
Да прочитай, хотя бы, задание!
Инструкция Dim

Описывает переменные и выделяет для них память.

Синтаксис

Dim [WithEvents] имяПеременной[([индексы])] [As [New] тип] [, [WithEvents] имяПеременной[([индексы])] [As [New] тип]] . . .

Синтаксис инструкции Dim содержит следующие элементы:

Элемент Описание
WithEvents Необязательный. Ключевое слово, указывающее, что имяПеременной является объектной переменной, которая используется при отклике на события, генерируемые объектом ActiveX. Применяется только в модулях класса. Пользователь имеет возможность описать с помощью ключевого слова WithEvents произвольное количество отдельных переменных, однако при этом не допускается создание массивов. Не допускается также использование ключевого слова New с ключевым словом WithEvents.
имяПеременной Обязательный. Имя переменной, удовлетворяющее стандартным правилам именования переменных.
индексы Необязательный. Размерности переменной массива; допускается описание до 60 размерностей. Для задания аргумента индексы используется следующий синтаксис:
[нижний To] верхний [, [нижний To] верхний] . . .
Если нижний индекс не задан явно, нижняя граница массива определяется инструкцией Option Base. Если отсутствует инструкция Option Base, нижняя граница массива равняется нулю.
New Необязательный. Ключевое слово, включающее возможность неявного создания объекта. Если указано ключевого слова New при описании объектной переменной, новый экземпляр объекта создается при первой ссылке на объект, поэтому нет необходимости присваивать ссылку на объект с помощью инструкции Set. Ключевое слово New нельзя использовать для описания переменных любых внутренних типов данных, для описания экземпляров зависимых объектов, а также вместе с ключевым словом WithEvents.
тип Необязательный. Тип данных переменной; поддерживаются типы Byte, Boolean, Integer, Long, Currency, Single, Double, Decimal (в настоящее время не поддерживается), Date, String (для строк переменной длины), String * длина (для строк фиксированной длины), Object, Variant, определяемый пользователем тип или объектный тип. Для каждой описываемой переменной следует использовать отдельное предложение As тип.
Дополнительные сведения

Переменные, описанные с помощью ключевого слова Dim на уровне модуля, доступны для всех процедур в данном модуле. Переменные, описанные на уровне процедуры, доступны только в данной процедуре.
Инструкция Dim предназначена для описания типа данных переменной на уровне модуля или процедуры. Например, следующая инструкция описывает переменную с типом Integer.

Dim NumberOfEmployees As Integer

Инструкция Dim предназначена также для описания объектного типа переменных. Далее приводится описание переменной для нового образца листа электронной таблицы.

Dim X As New Worksheet

Если при описании объектной переменной не используется ключевое слово New, то для использования объекта, на который ссылается переменная, существующий объект должен быть с помощью инструкции Set присвоен переменной. До присвоения объекта описанная объектная переменная имеет специальное значение Nothing, которое указывает, что она не содержит ссылку на какой-либо определенный экземпляр объекта.

Имеется также возможность применять инструкцию Dim с пустыми скобками для описания динамического массива. После описания динамического массива, воспользуйтесь инструкцией ReDim в процедуре для определения числа размерностей и элементов массива. При попытке переопределить размерности переменной-массива, чей размер был явно указан в инструкции Private, Public или Dim, возникает ошибка.

Если тип данных или тип объекта не задан, и в модуле отсутствует инструкция DefТип, по умолчанию переменная получает тип Variant.

При инициализации переменных числовая переменная получает значение 0, строка переменной длины получает значение пустой строки (""), а строка фиксированной длины заполняется нулями. Переменные типа Variant получают при инициализации значение Empty. Каждый элемент переменной определяемого пользователем типа при инициализации получает значение, которые он получил бы, если бы являлся отдельной переменной.

Примечание. При использовании инструкции Dim в процедуре ее обычно помещают в начало процедуры.
0
0 / 0 / 0
Регистрация: 19.12.2012
Сообщений: 17
23.12.2014, 15:44  [ТС] 4
Я не хотел бы агрессии в свой адрес. Я ни кого не заставляю помогать, а лишь прошу помощи. Я не понимаю что именно в этой части происходит :
Visual Basic
1
2
3
4
5
6
Dim a '()
a = Split(s, vbCrLf)
p = 1
For i = 0 To UBound(a)
  If Val(a(i)) Then p = p * Val(a(i))
  Next
0
11485 / 3773 / 677
Регистрация: 13.02.2009
Сообщений: 11,152
23.12.2014, 15:57 5
Лучший ответ Сообщение было отмечено The trick как решение

Решение

Про массивы:
Описание массивов
Как и другие переменные, массивы описываются с помощью инструкций Dim, Static, Private или Public. Разница между скалярными переменными (т.е. не массивами) и массивами состоит в том, что для последних надо указывать размер массива. Массив с заданным размером называется массивом фиксированного размера. Массив с переменным размером называется динамическим.
Начало индексации массива с 0 или 1 определяется параметрами инструкции Option Base. Если не указано Option Base 1, нижняя граница индексов массива равняется нулю.

Описание массива фиксированного размера

В следующей строке программы массив фиксированного размера описывается как массив типа Integer, имеющий 11 строк и 11 столбцов:

Dim MyArray(10, 10) As Integer

Первый аргумент представляет строки, а второй - столбцы.

Как и при описании других переменных, если тип данных при описании массива не задается, подразумевается, что элементы массива имеют тип Variant. На каждый элемент массива типа Variant отводится 16 байт. Строковый элемент типа Variant занимает 22 байта. Для написания максимально компактной программы следует явно описывать массивы как принадлежащие к типу данных, отличному от Variant. В следующих строках программы сравниваются размерности нескольких массивов:

' Массив Integer занимает 22 байта (11 элементов * 2 байта).
ReDim MyIntegerArray(10) As Integer

' Массив Double-precision занимает 88 байт (11 элементов * 8 байт).
ReDim MyDoubleArray(10) As Double

' Массив Variant занимает не менее 176 байт (11 элементов * 16 байт).
ReDim MyVariantArray(10)

' Массив Integer занимает 100 * 100 * 2 байт (20,000 байт).
ReDim MyIntegerArray (99, 99) As Integer

' Массив Double-precision занимает 100 * 100 * 8 байт (80,000 байт).

ReDim MyDoubleArray (99, 99) As Double

' Массив Variant занимает не менее 160,000 байт (100 * 100 * 16 байт).
ReDim MyVariantArray(99, 99)

Максимальные размеры массива варьируются в зависимости от имеющейся операционной системы и доступной памяти. Использование массивов, превышающих по размеру объем доступной системной оперативной памяти, замедляет работу программы, поскольку при этом данные должны читаться с диска и записываться на диск.

Описание динамического массива

Если массив описан как динамический, можно изменять его размер во время работы программы. Для описания динамического массива используются инструкции Static, Dim, Private, или Public с пустыми скобками, как показано в следующем примере.

Dim sngArray() As Single

Примечание. Можно воспользоваться инструкцией ReDim для неявного описания массива внутри процедуры. При этом надо точно задавать имя массива. В случае опечатки, даже если в модуле есть инструкция Option Explicit, будет создан второй массив.

В процедуре внутри области определения массива используется инструкция ReDim для изменения числа размерностей, определения числа элементов и задания верхних и нижних границ индексов для каждой размерности. Инструкцию ReDim можно применять для изменения динамического массива столько раз, сколько потребуется. Однако при каждом применении данные, содержащиеся в массиве, теряются. Инструкция ReDim Preserve увеличивает размер массива, сохраняя при этом его содержимое. В следующем примере показывается, как можно увеличить массив varArray на 10 элементов без уничтожения текущих значений элементов массива.

ReDim Preserve varArray(UBound(varArray) + 10)

Примечание. Использование ключевого слова Preserve вместе с динамическим массивом позволяет изменить только верхнюю границу последней размерности массива, однако изменение числа размерностей невозможно.
Буду для тебя копипастить опимание каждого слова из программы!
Вот только сомневаюсь, что читать будешь

Добавлено через 1 минуту
Что мешает посмотреть в справочнике значение каждого оператора?

Добавлено через 1 минуту
http://msdn.microsoft.com/ru-r... s.90).aspx

Добавлено через 3 минуты
http://msdn.microsoft.com/ru-r... 6z1kb.aspx

Добавлено через 2 минуты
http://msdn.microsoft.com/ru-r... s.90).aspx

Добавлено через 2 минуты
http://msdn.microsoft.com/ru-r... y8abs.aspx
самому влом поискать?
0
0 / 0 / 0
Регистрация: 19.12.2012
Сообщений: 17
23.12.2014, 16:27  [ТС] 6
спасибо большое, но хватит быть таким агрессивным. Будь добрее. Я искал и попадалась не то. Не просто так я сюда пришел. Я прекрасно понимаю все кроме того что я выше писал. Удачного дня тебе. И добра
0
1 / 1 / 0
Регистрация: 26.05.2015
Сообщений: 124
22.11.2015, 02:10 7
Как сделать чтобы на файл файл.txt записывалась следующая строка:
"a"+"b"+"c"+"d"+"e"+"F" и т.д.
и в одну строчку.
Создание файла через Commondialog.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.11.2015, 02:10
Помогаю со студенческими работами здесь

Работа с файлами
Удалить из текстового файла всю информацию, дополнительный файл не использовать.

Работа с файлами в VB
Нужно написать прогу, которая считала в выбранной папке(включая все вложенные папки) количество...

Работа с файлами
Ребята, я хотел бы научиться работать с файлами в VB, поэтому мне нужен наставник(), который мог бы...

Работа с файлами
Доброго времени суток! Не могу реализовать вывод следующего вопроса, после нажатия кнопки "далее"....


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru