powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Работа с двумерным массивом
4 сообщений из 4, страница 1 из 1
Работа с двумерным массивом
    #34842050
32sasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть массив
F1a2a3a4a5a61968005319627000196320110197460001975044600044600043477220004773000
Необходимо получить массив
F1a2a3a4a5a6T7T8T9T10T11196800537460001962700075044600044600043196320110477220004773000
Если a2=6 тогда заносим данные в поля с названием а , а если а2=7 тогда в свободные поля Т при условии если F1=(к примеру 19).
Помогите пожалуйста.
...
Рейтинг: 0 / 0
Работа с двумерным массивом
    #34842891
FAndrew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня такое чувство, что Вы неправильно поставили задачу. А почему Вас не устроит два массива? Просто иначе прийдется проверять множество условий. Да и второй массив заполнен не в соответсвии с Вашим заданием. Например, в столбцы T попали значения с а=7, а F1 у них 47.
...
Рейтинг: 0 / 0
Работа с двумерным массивом
    #34847417
32sasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот получился такой код (ну плюс свои доработки)
Поставленую задачу выполнил! Может странно но работает :-)

Код: plaintext
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.
Dim Int_RiID( 20 ,  2 ) As String
rs.Open Ricki_ID, ResSQLsp
'создание массива и внесение в него DI риска и его имени
iri =  1 
While (Not rs.EOF)
For jri =  0  To  1 
        Int_RiID(iri, jri) = rs(jri)
    Next jri
rs.MoveNext
iri = iri +  1 
Wend
rs.Close
                   
Dim RisPlan( 50 ,  11 ) As String 'создание массива для заполнения таблицы Состояния работ планов..
rs.Open RisTask, ResSQL
ir =  1 
While (Not rs.EOF)
For jrw =  0  To  6 
    
If rs( 1 ) =  6  And jrw <>  1  Then If jrw =  4  Or jrw =  5  Then RisPlan(ir, jrw) = Format(rs(jrw), "#0.00") Else RisPlan(ir, jrw) = rs(jrw)
    
    If jrw =  1  Then 'название риска
For i_i =  1  To iri -  1 
If rs( 0 ) = Int_RiID(i_i,  0 ) Then RisPlan(ir, jrw) = Int_RiID(i_i,  1 )
Next i_i
    End If
    
    If rs( 1 ) =  7  And jrw <>  1  Then
        For ij =  1  To ir
        If RisPlan(ij,  0 ) = rs( 0 ) And RisPlan(ij,  7 ) = "" Then
        RisPlan(ij,  7 ) = rs( 2 )
        RisPlan(ij,  8 ) = rs( 3 )
        RisPlan(ij,  9 ) = Format(rs( 4 ), "#0.00")
        RisPlan(ij,  10 ) = Format(rs( 5 ), "#0.00")
        RisPlan(ij,  11 ) = rs( 6 )
        ir = ir -  1 
        GoTo  999 
        End If
        Next ij
    RisPlan(ir,  0 ) = rs( 0 )
For i_i =  1  To iri -  1 
If rs( 0 ) = Int_RiID(i_i,  0 ) Then RisPlan(ir,  1 ) = Int_RiID(i_i,  1 )
Next i_i
    RisPlan(ir,  7 ) = rs( 2 )
    RisPlan(ir,  8 ) = rs( 3 )
    RisPlan(ir,  9 ) = Format(rs( 4 ), "#0.00")
    RisPlan(ir,  10 ) = Format(rs( 5 ), "#0.00")
    RisPlan(ir,  11 ) = rs( 6 )
    GoTo  999 
    End If
Next jrw
 999 :
rs.MoveNext
ir = ir +  1 
Wend
rs.Close
'контромь перед заполнением таблицы
'For i = 1 To ir - 1
'    For jrw = 0 To 11
'za = za & RisPlan(i, jrw) & ","
'    Next jrw
'za = za & Chr(13)
'Next i
'MsgBox za
...
Рейтинг: 0 / 0
Работа с двумерным массивом
    #34847526
FAndrew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А Вас не учили что GOTO это очень-очень плохо?
Например, вместо последнего Goto можно элегантно поставить Exit For
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Работа с двумерным массивом
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]