Структурированный вывод в csv\xls

124
26 июля 2019, 09:00

есть модуль, как можно сделать вывод в csv\xls по типу как на скриншоте

WriteFile(hLogFile, "--Packet begin--\r\n", 18, &dwWritten, 0);
                            if (IsDlgButtonChecked(hwndDlg, IDC_CHECK_OPTION_LOG_TARGET_IP) == TRUE) {
                                IN_ADDR ia;
                                ia.s_addr = hdr->iph_dest;
                                CHAR *pszTargetIP = inet_ntoa(ia);
                                WriteFile(hLogFile, "To: ", 4, &dwWritten, 0);
                                WriteFile(hLogFile, pszTargetIP, lstrlen(pszTargetIP), &dwWritten, 0);
                                WriteFile(hLogFile, "\r\n", 2, &dwWritten, 0);
                            }
                            if (IsDlgButtonChecked(hwndDlg, IDC_CHECK_OPTION_LOG_SENDER_IP) == TRUE) {
                                IN_ADDR ia;
                                ia.s_addr = hdr->iph_src;
                                CHAR *pszSourceIP = inet_ntoa(ia);
                                WriteFile(hLogFile, "From: ", 6, &dwWritten, 0);
                                WriteFile(hLogFile, pszSourceIP, lstrlen(pszSourceIP), &dwWritten, 0);
                                WriteFile(hLogFile, "\r\n", 2, &dwWritten, 0);
                            }
                            if (IsDlgButtonChecked(hwndDlg, IDC_CHECK_OPTION_WRITE_PROTO_NAME) == TRUE) {
                                WriteFile(hLogFile, "Protocol: ", 10, &dwWritten, 0);
                                switch (hdr->iph_protocol) {
                                case IPPROTO_IP:
                                    WriteFile(hLogFile, "IP\r\n", 4, &dwWritten, 0);
                                    break;
                                case IPPROTO_ICMP:
                                    WriteFile(hLogFile, "ICMP\r\n", 6, &dwWritten, 0);
                                    break;
                                case IPPROTO_IGMP:
                                    WriteFile(hLogFile, "IGMP\r\n", 6, &dwWritten, 0);
                                    break;
                                case IPPROTO_GGP:
                                    WriteFile(hLogFile, "GGP\r\n", 5, &dwWritten, 0);
                                    break;
                                case IPPROTO_TCP:
                                    WriteFile(hLogFile, "TCP\r\n", 5, &dwWritten, 0);
                                    break;
                                case IPPROTO_PUP:
                                    WriteFile(hLogFile, "PUP\r\n", 5, &dwWritten, 0);
                                    break;
                                case IPPROTO_UDP:
                                    WriteFile(hLogFile, "UDP\r\n", 5, &dwWritten, 0);
                                    break;
                                case IPPROTO_IDP:
                                    WriteFile(hLogFile, "IDP\r\n", 5, &dwWritten, 0);
                                    break;
                                case IPPROTO_IPV6:
                                    WriteFile(hLogFile, "IPv6\r\n", 6, &dwWritten, 0);
                                    break;
                                case IPPROTO_ND:
                                    WriteFile(hLogFile, "ND\r\n", 4, &dwWritten, 0);
                                    break;
                                case IPPROTO_ICLFXBM:
                                    WriteFile(hLogFile, "ICLFXBM\r\n", 9, &dwWritten, 0);
                                    break;
                                case IPPROTO_ICMPV6:
                                    WriteFile(hLogFile, "ICMPv6\r\n", 8, &dwWritten, 0);
                                    break;
                                }
                            }
                            if (IsDlgButtonChecked(hwndDlg, IDC_CHECK_OPTION_WRITE_PACKET_LEN) == TRUE) {
                                CHAR szTemp[17];
                                WriteFile(hLogFile, "Packet length: ", 15, &dwWritten, 0);
                                wsprintf(szTemp, "%d\r\n", size);
                                WriteFile(hLogFile, szTemp, lstrlen(szTemp), &dwWritten, 0);
                            }
                            WriteFile(hLogFile, "Contents:\r\n\r\n", 13, &dwWritten, 0);
                            WriteFile(hLogFile, &btBuffer[sizeof(IPHeader) * 2], size - sizeof(IPHeader) * 2, &dwWritten, 0);
                            WriteFile(hLogFile, "\r\n--Packet end--\r\n", 18, &dwWritten, 0);
                            SetDlgItemInt(hwndDlg, IDC_EDIT_LOG_SIZE, GetFileSize(hLogFile, NULL), FALSE);
                        }
READ ALSO
Как изменить положение ползунка QSlider через connect?

Как изменить положение ползунка QSlider через connect?

Проблема состоит вот в чемНужно, чтобы при изменении объекта изменялось положение ползунка QSlider'а

151
Компиляция в Си и работами со строками

Компиляция в Си и работами со строками

Суть ошибки вот в чём, надо составить программу, которая на входе получает "базис счисления" и "последовательность цифр" Базис может принимать...

156
Как при создании файла средствами python присвоить файлу свою иконку

Как при создании файла средствами python присвоить файлу свою иконку

Я пишу программу для шифрования файлов на PythonУ файла своё личное расширение(ни одно другое под мои задачи не подходит) и я чтобы файл не был...

169
Не работает сервер и клиент на Android

Не работает сервер и клиент на Android

Нашёл примеры сервера и клиента на android, но почему-то примеры не работают, хотя все верноЯ подумал, что возможно проблема связана с тем, что...

165