Помогите разобраться, пожалуйста.

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
PolMuadDib
Начинающий
Начинающий
 
Сообщения: 2
Зарегистрирован: 01.06.2005 (Ср) 22:34

Помогите разобраться, пожалуйста.

Сообщение PolMuadDib » 01.06.2005 (Ср) 22:42

Люди! Помогите пожалуйста разобраться в чем проблема
Вот задание:
"Создать ффайл, содержащий сведения о месячной заработной плате рабочих завода. Каждая запись содержит поля: фамилия рабочего, наименование цеха, размер заработной платы за месяц.

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

Код: Выделить всё
Private Sub Command1_Click()
Dim Fam() As String, Zeh() As Byte
Dim Zar() As Integer
Dim i As Integer

Open "C:\1.txt" For Input As #1
Input #1, razmer 'Первый элемент файла обозначаем как Razmer
ReDim Fam(razmer), Zeh(razmer), Zar(razmer) 'Переопределяем переменые
Close #1

For i = 1 To razmer
Input #1, Fam(i), Zeh(i), Zar(i)  'Массивом задаем считывающиеся элементы
Next i

Dim b As Integer  'суммарная зарплата в цехе
Dim c As Integer  'средняя зарплата в цехе


b = Val(Text1.Text) 'Номер цеха вводится в textbox

For i = 1 To razmer
If b = Zeh(i) Then Sum = Sum + Zar(i) 'общую сумму выплат за месяц по цеху b
If c = Zeh(i) Then c = (Sum + Zar(i)) / b  'размер заработной платы за месяц
Next i

End Sub


При запуске выделяет строку
Код: Выделить всё
Input #1, Fam(i), Zeh(i), Zar(i)

и пишет BadFile name or number


Текстовой файл 1.txt выглядит следующим образом:
4
Крикунов, 1, 10000
Иванов, 1, 12000
Петров, 2, 4000
Сидоров, 2, 9000



Скажите пожалуйста в чем ошибка, и правильно ли я делаю эту программу?

ism
Постоялец
Постоялец
 
Сообщения: 337
Зарегистрирован: 12.12.2001 (Ср) 12:59
Откуда: Russia, Saint-Petersburg

Сообщение ism » 02.06.2005 (Чт) 1:27

Т.к файл текстовой, то попробуй считывать целой строкой, которую дальше по массивам раскидывать.

Код: Выделить всё
dim myMas() as string
dim strString as String
...

Input #1, strString
myMas=split(strString," ")
Fam(i)=myMas(0)
Zeh(i)=myMas(1)
Zar(i)=myMas(2)

FaKk2
El rebelde gurú
El rebelde gurú
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 02.06.2005 (Чт) 2:08

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

GM
programador
programador
 
Сообщения: 1427
Зарегистрирован: 24.06.2003 (Вт) 15:56
Откуда: 194.67.52.100

Сообщение GM » 02.06.2005 (Чт) 7:41

Код: Выделить всё
Open "C:\1.txt" For Input As #1
Input #1, razmer 'Первый элемент файла обозначаем как Razmer
ReDim Fam(razmer), Zeh(razmer), Zar(razmer) 'Переопределяем переменые
[B]Close #1[/b]

Ну так, млин, Close #1, ты закрываеш файл,
поставь Close #1, после
Код: Выделить всё
For i = 1 To razmer
Input #1, Fam(i), Zeh(i), Zar(i)  'Массивом задаем считывающиеся элементы
Next i
الفيجوال بيسك الرابح

PolMuadDib
Начинающий
Начинающий
 
Сообщения: 2
Зарегистрирован: 01.06.2005 (Ср) 22:34

Сообщение PolMuadDib » 04.06.2005 (Сб) 22:31

спасибо!


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот, SemrushBot и гости: 147

    TopList