Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.72/39: Рейтинг темы: голосов - 39, средняя оценка - 4.72
0 / 0 / 0
Регистрация: 01.09.2013
Сообщений: 66

Экспорт и последующий анализ данных spc

09.09.2013, 16:41. Показов 8731. Ответов 126
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
приветствую!

программист я не очень)) но имеется желание облегчить себе жизнь)
собственно суть:
имеем файл базы данных spc (лог системы контроля параметров) во вложении, данный фаил содержит примерно сутки работы системы количество строк всегда 10002 количество столбцов при преобразовании может варьироваться
необходимо:
1. наладить импорт из данного файла в таблицу Excel, ну или экспорт (с этим у меня пока самая большая проблема)
предполагаю что в конечной таблице должна открываться юзерформа где можно указать путь к файлу из которого нужно взять данные при этом копируемые данные должны помещаться в начало листа
2.после переноса в основной файл должны ракладываться в нормальные столбцы и проверятся на ряд параметров : Во первых должны удалятся строки содержащие хотя бы одно 0 значение, во вторых в конце массива могут содержаться дубли уже внесенной ранее информции т.к. лог снимается вручную втретих нужно проводить проверку на наполнение листа т.е при достижении 1кк строк начинать новый лист.
3. на отдельном листе или в юзерформе создать группу графиков с изменяемым интервалом дат т.е забиваем дата/время начало-дата/время конец и получаем графическое отображение изменений данных параметров.

собственно вопросы следующие:
насколько это реализуемо средствами excel/vba
как реализовать п 1.

п.2 сейчас потихоньку делаю сам, хотя как конролировать наполнение листа тоже пока не представляю.
Вложения
Тип файла: rar DataLogSPC.rar (165.3 Кб, 20 просмотров)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.09.2013, 16:41
Ответы с готовыми решениями:

Обработка множества документов word/pdf и последующий семантический анализ их содержимого
Добрый день, уважаемые форумчане. Подскажите, каким образом корректней решать следующую задачу: Есть множество документов в форматах...

Ввод данных в Input и их последующий вывод на странице
Добрый день. Только начал осваивать MVC. Осваиваю по оф документам и сайту metanit.com Под спойлером лирика о сложностях, можно...

Поиск данных в текстовом файле и последующий вывод
Доброго времени суток, форумчане! Нужна ваша помощь. В колледже стал проходить C++ Builder, работаю с Embarcadero RAD Studio XE5, и...

126
0 / 0 / 0
Регистрация: 01.09.2013
Сообщений: 66
16.09.2013, 14:40  [ТС]
Студворк — интернет-сервис помощи студентам
Igor_Tr, график построен по 3м столбцам, дата время параметр (т.е. в таблице дата и время это отдельные столбцы)
а вообще в зависимости от типа проблемы необходимо строить данный график за промежуток от надцати минут до нескольких часов.

другой вопрос как реализовать поиск по 3 параметрам один из которых задается не точно))
0
4377 / 661 / 36
Регистрация: 17.01.2010
Сообщений: 2,134
16.09.2013, 14:51
другой вопрос как реализовать поиск по 3 параметрам один из которых задается не точно))
Поиск чего?, где?, какие параметры?, как уточняються результаты? Функций много. Можно собрать приблизительные по двум, потом функциями отобрать "уточнить в большую/меньшую сторону". Что-то такое, на ходу.
0
0 / 0 / 0
Регистрация: 01.09.2013
Сообщений: 66
16.09.2013, 14:57  [ТС]
имеем 5 ячеек
1 параметр
2 дата начало
3 время начало (задается без секунд)
4 дата конец
5 время конец (снова без секунд)
заполняем 5 полей получаем график изменения параметра

по названию параметра находим какой столбец значений нам нужен
по датам и временам находим начальную и конечную строку
в итоге получаем массив из 3х столбцов и х строк
от которых строим график
0
4377 / 661 / 36
Регистрация: 17.01.2010
Сообщений: 2,134
16.09.2013, 15:31
Не понимаю. Параметр - точный. Даты у Вас на листе. Указываете - значит точно. Рядом время. Тоже получается точный параметр. Приблизительно. Все в массив. Загоняете в словарь с ключем "Параметр" , в Item собираете что нужно по признаку временного диапазона (> = (Дата + время) начала, <= (Дата + время) конца). Можна поиграться с AdvancedFilter. А может запрос. Нужно пробовать.
0
0 / 0 / 0
Регистрация: 01.09.2013
Сообщений: 66
16.09.2013, 15:33  [ТС]
Igor_Tr, время точно сложно задавать будет если с секундами там же за каждую минуту несколько значений
0
4377 / 661 / 36
Регистрация: 17.01.2010
Сообщений: 2,134
16.09.2013, 18:34
Если указываете >= 9 час. - это значит, что все что больше 08:59:59. И наоборот.

Добавлено через 2 часа 41 минуту
Я просто подумал, зачем Вам дополнительно заморачиваться? Выделите ячейку всередине табл. на листе Reunion (если мой вариант), выберите в меню (вкл. Home) "Форматировать как таблицу" (или что-то такое), Вам выдаст уже с фильтрами. Выбрали даты, потом время (но не в видимом секторе, а в "Фильтры чисел"), там выставите условия, дальше только параметр. Дел на копейки.
1
4377 / 661 / 36
Регистрация: 17.01.2010
Сообщений: 2,134
19.09.2013, 13:00
Тут таки интересные истории. Это про "мааааленькая проблемка" Вот здесь, на этом форуме, я попросил помощи:
Excel, csv & Query
В этом коде, который кидаю сейчас, сделано по рекомендации Hugo121. Но Вы все-таки туда зайдите, и посмотрите мою переписку с Aksima. Он тоже предложил очень грамотное решение, выходит немного за рамки VBA, с созданием файла *.ini. Для себя я сделаю этот вариант, чуть больше свободного времени будет, а вот Вы решите - потом кидать Вам его, или нет. Такие решения они некоторых могут отпугнуть. Я все равно его буду доделывать. Если будет быстрее и насколько...
А так этот, внизу - работает быстро. У меня в районе 2 сек. на все и с форматированем заголовка.
Кликните здесь для просмотра всего текста
Visual Basic
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
Sub NEW_mCSV_ToExcel()
Dim ar(), marr(), stTime!, mSTR$, mOldSTR$, mFlag As Boolean
Dim sumOfText, datt, fObj As Object, iText, i&, j&, k&, mRNG As Range, rr As Range
   If ActiveSheet.Name = "Reunion" Then MsgBox "Please, select other SHEET": Exit Sub
   mSTR = Application.GetOpenFilename(" (*.csv),*.csv", , "Please, open your CSV files", , False)
      If mSTR = "False" Then MsgBox "Canceled": Exit Sub
   stTime = Timer
   With CreateObject("Scripting.FileSystemObject")
       With .GetFile(mSTR).OpenAsTextStream 'open file
           iText = .ReadAll: .Close 'read it and then close
       End With
   End With
   sumOfText = Split(iText, vbCrLf) 'делим текст на строки
   mSTR = LCase(Replace(Replace(Replace(Application.Trim(sumOfText(0)), _
                                       ",", vbNullString, 1), "/", "", 1), Space(1), "", 1))
   With Sheets("Reunion")
      For i = 1 To .Cells(1, .Columns.Count).End(xlToLeft).Column
         mOldSTR = mOldSTR & .Cells(1, i).Value
      Next 'i
   End With
   mOldSTR = LCase(Replace(Replace(Replace(Application.Trim(mOldSTR), _
                                       ",", vbNullString, 1), "/", "", 1), Space(1), "", 1))
   If (mOldSTR <> vbNullString) * (mSTR <> mOldSTR) Then mFlag = True
   ReDim ar(UBound(sumOfText)) '
   ReDim marr(0 To UBound(sumOfText), 0 To UBound(Split(sumOfText(0), ",")) + 1)
      If (mFlag) * (mOldSTR <> vbNullString) Then k = 0 Else k = 2
      For i = k To (UBound(ar)) 'loop by row
          datt = Split(sumOfText(i), ","): ar(i) = datt  'делим на столбцы
          ar(i) = datt
            For j = LBound(marr, 2) To UBound(marr, 2) - 1
               If UBound(ar(i)) > 0 Then
                  If j = 0 Then
                     Select Case i
                        Case Is = 0
                           marr(i, 1) = Split(ar(i)(0), "/")(1)
                           marr(i, 0) = Split(ar(i)(0), "/")(0):  j = j + 1
                        Case Is = 1: marr(i, 0) = "mDATE":    j = j + 1
                        Case Is > 1
                           If UBound(Split(ar(i)(0), Space(1))) > 0 Then
                              marr(i, 1) = Split(ar(i)(0), Space(1))(1)
                              marr(i, 0) = CDate(Split(ar(i)(0), Space(1))(0)):  j = j + 1
                                 Else: marr(i, 0) = ar(i): marr(i, 1) = vbNullString
                           End If
                     End Select
                  End If
                  marr(i, j + 1) = ar(i)(j)
                     Else: Exit For
               End If
            Next 'j
      Next 'i
'Stop
'--ADD--SORT---DATA---------------------------------------------
      If mFlag Then MsgBox "TABLE   HEADERS   DIFFER !": ActiveSheet. _
         [a1].Resize(UBound(marr, 1) + 1, UBound(marr, 2) + 1).Value = marr: _
         Erase marr: MsgBox "My   TIME :" & _
         Space(3) & Format(Timer - stTime, "##0.000"): End
      With Sheets("Reunion")
         mSTR = IIf(.[a1].Value = vbNullString, "A1", _
                     .Rows(.UsedRange.Rows.Count + 1).Cells(1).Address)
         If (.UsedRange.Rows.Count + UBound(marr, 1)) > .Rows.Count Then
            MsgBox "YOU   NEEEEEED   NEW   SHEETS !":   End
         End If
         .Range(mSTR).Resize(UBound(marr, 1) + 1, UBound(marr, 2) + 1).Value = marr
         ReDim marr(0 To .UsedRange.Columns.Count - 1)
            For i = 1 To .UsedRange.Columns.Count:  marr(i - 1) = i:  Next i
         Set mRNG = .Range(.[a3], .Cells(.UsedRange.Rows.Count, .UsedRange.Columns.Count))
         mRNG.RemoveDuplicates (marr), xlNo:  Erase marr
         On Error Resume Next: Err.Number = 0
            For Each rr In mRNG.SpecialCells(xlCellTypeBlanks)
                .Cells(rr.Row, mRNG.Columns.Count + 1) = 1
            Next
               If Err.Number = 0 Then
                  Set rr = .Cells(1, mRNG.Columns.Count + 1)
                  .UsedRange.Columns(mRNG.Columns.Count + 1). _
                                    ColumnDifferences(rr).EntireRow.Delete
               End If
         On Error GoTo 0
            If mSTR = "A1" Then
               With .Range(.Cells(1, 1), .Cells(2, .UsedRange.Columns.Count))
                  .Borders.Weight = xlThin:   .WrapText = True
                  .HorizontalAlignment = xlCenter: .VerticalAlignment = xlCenter
                  .Font.Name = "comic sans ms"
                  .ColumnWidth = 14
               End With
               .Columns("a:c").ColumnWidth = 9.12
            End If
            With mRNG
               .Sort .Cells(1), xlDescending, .Cells(2), , xlDescending, , Header:=xlNo
            End With
      End With
'==End==ADD==SORT==DATA============================
   Application.ScreenUpdating = True
   Erase marr:  MsgBox "My   TIME :" & Space(3) & Format(Timer - stTime, "##0.000")
   Sheets("Reunion").Activate:   MsgBox Space(10) & "D O N E!"
End Sub


Добавлено через 42 минуты
Не то скопировал. Уже исправил.

Добавлено через 14 часов 37 минут
Кажется, все. Тему можна закрывать. Подогнал код от Aksima под Ваши нужды. Там мало изменений от оригинала. Все коментарии - его. Но, ввиду того, что мы вставляем доп. поле не на листе, а в вирт. массиве, проверяем соответствие существующего к новому (по заголовкам), ... , etc., изменил перенос с Recordset в массив (с применением функции транспонировки). Практически - это все изменения. Время - на секунду больше. Думаю, если поиграться - можна сделать равными. Не забывайте - если новый файл отличается структурой от существующего на "Reunion", данные на сборный лист добавляться не будут, а выгрузятся на чистый лист запуска для "разборок". Все. Удачи!
Кликните здесь для просмотра всего текста
Visual Basic
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
Const ARG_PRV = "Provider="
Const ARG_SRC = "Data Source="
Const ARG_EPS = "Extended Properties="
Const PAR_X12 = "Microsoft.ACE.OLEDB.12.0"
Const PAR_TXT = "Text"
 
Sub GetDataFromCSV()
 'based on code from Aksima
 '([url]https://www.cyberforum.ru/vba/thread955753-page2.html[/url])
Dim i As Long, j As Long, k&
Dim arr As Variant
Dim p As String, db As String, s As String
Dim sCnn As String, sQry As String
Dim cnn As Object, rst As Object, mRNG As Range, rr As Range
Dim DecSep$, mDelimitr$, mSTR$, mOldSTR, stTime!, mFlag As Boolean
    
   If ActiveSheet.Name = "Reunion" Then MsgBox "Please, select other SHEET": Exit Sub
   With Sheets("Reunion")
      For i = 1 To .Cells(1, .Columns.Count).End(xlToLeft).Column
         mOldSTR = mOldSTR & .Cells(1, i).Value
      Next 'i
   End With
   mOldSTR = LCase(Replace(Replace(Replace(Application.Trim(mOldSTR), _
                                       ",", vbNullString, 1), "/", "", 1), Space(1), "", 1))
    
'   DecSep = InputBox("SPECIFY   DECIMAL   SEPARATOR   IN   *.CSV   FILE" & _
'      Chr(13) & Chr(13) & "BY   DEFAULT :" & Space(3) & Chr(46) & " /dot/", , ".")
'   mDelimitr = InputBox("SPECIFY   DELIMITER   IN   *.CSV   FILE" & _
'      Chr(13) & Chr(13) & "BY   DEFAULT :" & Space(3) & Chr(44) & " /coma/", , ",")
   
  DecSep = Chr(46):  mDelimitr = Chr(44)
  
    'Здесь пользователь указывает расположение csv-файла,
    'а мы разбиваем эту информацию на путь до папки
    'csv-файла и имя самого csv-файла.
    
   p = Application.GetOpenFilename("CSV data logs,*.csv", , _
                        "Укажите расположение csv-файла", , False)
   stTime = Timer ' general timer
   If p = "False" Then Exit Sub
   db = Mid(p, InStrRev(p, "\") + 1) 'Имя csv-файла.
   p = Left(p, InStrRev(p, "\")) 'Путь к папке csv-файла.
    
    'В папке csv-файла создаем файл схемы данных БД
    '(schema.ini), в котором указываем, что все поля
    'csv-файла должны обрабатываться как текстовые.
    
    'Считываем первую строку csv-файла, чтобы понять,
    'сколько полей нам необходимо определить в schema.ini.
   Open p & db For Input As #1
   Line Input #1, s
   Close #1
    'Неаккуратно заполненный csv-файл, бывает, имеет кучу
    'запятых и пробелов в конце каждой строки, включая
    'первую. Игнорируем их.
   While Right(s, 1) = "," Or Right(s, 1) = " "
        s = Left(s, Len(s) - 1)
   Wend
'   stTime = Timer ' for creating file *.ini (~ 0.005 sec. )
    'Создаем файл schema.ini.
   Open p & "schema.ini" For Output As #1
    'Запись шапки схемы:
   Print #1, "[" & db & "]" & vbCr   'Записываем название
            'csv-файла, к которому относится файл schema.ini.
   Print #1, "Format=Delimited(" & mDelimitr & ")" & vbCr 'Указываем, что
            'файл имеет разделители, и ими являются запятые.
   Print #1, "DecimalSymbol=" & DecSep & "" & vbCr 'Указываем, что"
            'десятичной точкой является точка, а не запятая
            '(как это принято в локализованной ОС),
            'и поэтому нет конфликтов с общим разделителем.
   Print #1, "ColNameHeader=False" & vbCr 'Указываем, что
            'CSV-файл не имеет заголовков (вообще-то они
            'могут быть, но если об этом заикнуться, то
            'драйвер не включит первую строку csv-файла
            'в рекордсет и придется заголовки выгружать
            'отдельным кодом).
    'Указание типов полей csv-файла как текстовых:
      For i = 0 To UBound(Split(s, ","))  'Для каждого поля с
                                           '0-го до последнего.
         Print #1, "Col" & i + 1 & "=""Fld" & i _
           & """ Text" & vbCr
      Next i
   Close #1
'  MsgBox "Create  *.ini  file.   Time:" & Space(3) & Format(Timer - stTime, "##0.000")
    'Создаем и открываем подключение к csv-файлу.
   sCnn = Join(Array(ARG_PRV & PAR_X12, ARG_SRC & p, _
                                                      ARG_EPS & PAR_TXT), ";")
   Set cnn = CreateObject("ADODB.Connection")
   cnn.Open sCnn
    'Создаем и исполняем запрос к csv-файлу.
   sQry = "SELECT * FROM " & db
   Set rst = CreateObject("ADODB.Recordset")
   rst.ActiveConnection = cnn
   rst.Open sQry
    'Больше нам файл схемы не нужен - удаляем его.
   Kill p & "schema.ini"
    'Данные из рекордсета заносим в промежуточный
    'массив и производим предварительную
    'обработку данных перед выгрузкой.
   arr = rst.GetRows: Set rst = Nothing:  Set cnn = Nothing
'   stTime = Timer ' to measure the time of transposition
   arr = TransposeDim(arr) ' time ~ 0.24 sec.
'  MsgBox "Transpose.   Time:" & Space(3) & Format(Timer - stTime, "##0.000")
   'rst.Close
   'cnn.Close
   ReDim Preserve arr(0 To UBound(arr, 1), 0 To UBound(arr, 2) + 1)
      For i = 0 To UBound(arr, 2):  mSTR = mSTR & arr(0, i):  Next 'i
      mSTR = LCase(Replace(Replace(Replace(Application.Trim(mSTR), _
                                       ",", vbNullString, 1), "/", "", 1), Space(1), "", 1))
      If mOldSTR = vbNullString Then
         k = 0
            Else
               If (mOldSTR <> vbNullString) * (mOldSTR <> mSTR) Then
                  k = 0:  mFlag = True
                     Else: k = 2
               End If
      End If
      For i = k To (UBound(arr, 1)) 'loop by row
         For j = UBound(arr, 2) To LBound(arr, 2) Step -1
            If j > 0 Then
               arr(i, j) = arr(i, j - 1)
                  Else
                     Select Case i
                        Case Is = 0
                           If InStr(1, arr(i, 0), "/", vbTextCompare) Then
                              arr(i, 1) = Split(arr(i, 0), "/")(1)
                              arr(i, 0) = Split(arr(i, 0), "/")(0)
                                 Else: arr(i, 1) = vbNullString
                           End If
                        Case Is = 1: arr(i, 0) = "mDate": arr(i, 1) = "mTime"
                        Case Is > 1
                           If IsDate(arr(i, j)) Then
                              arr(i, 1) = Format(Replace(arr(i, j), Split(arr(i, j), Space(1))(0), "", 1), "hh:mm:ss")
                              arr(i, 0) = CDate(Split(arr(i, j), Space(1))(0))
                                 Else: arr(i, 1) = vbNullString
                           End If
                     End Select
            End If
         Next 'j
      Next 'i
    'Выгружаем данные из массива на лист.
'--ADD--SORT---DATA---------------------------------------------
      If mFlag Then MsgBox "TABLE   HEADERS   DIFFER !": ActiveSheet. _
         [a1].Resize(UBound(arr, 1) + 1, UBound(arr, 2) + 1).Value = arr: _
         Erase arr: MsgBox "My   TIME :" & _
                                    Space(3) & Format(Timer - stTime, "##0.000"): End
      With Sheets("Reunion")
         mSTR = IIf(.[a1].Value = vbNullString, "A1", _
                     .Rows(.UsedRange.Rows.Count + 1).Cells(1).Address)
         If (.UsedRange.Rows.Count + UBound(arr, 1)) > .Rows.Count Then
            MsgBox "YOU   NEEEEEED   NEW   SHEET !":   End
         End If
         .Range(mSTR).Resize(UBound(arr, 1) + 1, UBound(arr, 2) + 1).Value = arr
         ReDim arr(0 To .UsedRange.Columns.Count - 1)
            For i = 1 To .UsedRange.Columns.Count:  arr(i - 1) = i:  Next i
         Set mRNG = .Range(.[a3], .Cells(.UsedRange.Rows.Count, .UsedRange.Columns.Count))
         mRNG.RemoveDuplicates (arr), xlNo:  Erase arr
         On Error Resume Next: Err.Number = 0
            For Each rr In mRNG.SpecialCells(xlCellTypeBlanks)
                .Cells(rr.Row, mRNG.Columns.Count + 1) = 1
            Next
               If Err.Number = 0 Then
                  Set rr = .Cells(1, mRNG.Columns.Count + 1)
                  .UsedRange.Columns(mRNG.Columns.Count + 1). _
                                    ColumnDifferences(rr).EntireRow.Delete
               End If
         On Error GoTo 0
            If mSTR = "A1" Then
               With .Range(.Cells(1, 1), .Cells(2, .UsedRange.Columns.Count))
                  .Borders.Weight = xlThin:   .WrapText = True
                  .HorizontalAlignment = xlCenter: .VerticalAlignment = xlCenter
                  .Font.Name = "comic sans ms"
                  .ColumnWidth = 14
               End With
               .Columns("a:c").ColumnWidth = 9.12
            End If
            With mRNG
               .Sort .Cells(1), xlDescending, .Cells(2), , xlDescending, , Header:=xlNo
            End With
      End With
'==End==ADD==SORT==DATA============================
   Application.ScreenUpdating = False
   Application.ScreenUpdating = True:     Set mRNG = Nothing
   Erase arr:  MsgBox "My   TIME :" & Space(3) & Format(Timer - stTime, "##0.000")
   Sheets("Reunion").Activate:   MsgBox Space(10) & "D O N E!"
End Sub
 
Function TransposeDim(v As Variant) As Variant
' obtained from the Internet
Dim X As Long, Y As Long, Xupper As Long, Yupper As Long
Dim tempArray As Variant
   Xupper = UBound(v, 2)
   Yupper = UBound(v, 1)
   ReDim tempArray(Xupper, Yupper)
      For X = 0 To Xupper
         For Y = 0 To Yupper
            tempArray(X, Y) = v(Y, X)
         Next Y
      Next X
    TransposeDim = tempArray
End Function
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.09.2013, 13:00

SQL: Группирование записей таблицы, и последующий вывод данных
Доброго времени суток всем. Помогите с проблемкой. Есть таблица с платежами. Каждый студент может иметь несколько платежей. Это...

Чтение из файла данных и последующий вывод на экран в виде линейного однонаправленного списка
Здравствуйте, я новичок в программировании. Не понимаю как выполнить следующую задачу: Дан список группы в 10 человек в виде ...

Копирование строки. При вводе пробела программа пропускает последующий ввод данных
char st, st1; int k, m, i, j; system(&quot;cls&quot;); cout &lt;&lt;&quot;Введите строку&quot;&lt;&lt;endl; cin &gt;&gt;st; cout &lt;&lt;&quot;Введите номер символа,...

Экспорт данных из базы данных *.DB в Word через Table (DateSet)
Всем Hello! у меня проблема не могу выгрузить данные из DB через table много чего перепробовал но увы не получается подскажите или хотя бы...

Как сделать экспорт данных из таблицы базы данных MSSQL 2008 в Excel на php?
Добрый день. Подскажите как сделать экспорт данных из таблицы базы данных MSSQL 2008 в Excel ? P.S.: на MySQl все просто, однако...


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

Или воспользуйтесь поиском по форуму:
127
Ответ Создать тему
Новые блоги и статьи
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru