Nano Hash - криптовалюты, майнинг, программирование

Экспорт определенных скрытых/видимых столбцов DataGridView в TXT (не весь DataGridView)

Мой пост относится к программе Visual Basic Windows Forms. У меня есть представление сетки данных (называемое: Device_LabelsDataGridView), в котором есть сочетание видимых и невидимых столбцов, размещенных в диалоговом окне.

Я хочу экспортировать два конкретных столбца под названием «Местоположение» (которое скрыто) и «Данные» (которые видны), но пропустить средний столбец под названием «Описание». На данный момент приведенный ниже код экспортирует мои данные вот так (с такими же запятыми):

Location,Description,Data
Location,Description,Data
Location,Description,Data
Continued…

А я хочу (опять же, с запятыми как есть)

Location,Data
Location,Data
Location,Data
Continued…

Ниже приведен код, который я пытался использовать, но не могу получить то, что хочу.

Dim writer As StreamWriter = New StreamWriter("C:\GridExport.txt")
    If (DeviceLabels.Device_LabelsDataGridView.Rows.Count > 0) Then
        For Each col As DataGridViewColumn In DeviceLabels.Device_LabelsDataGridView.Columns
        Next
    End If

    For Each row As DataGridViewRow In DeviceLabels.Device_LabelsDataGridView.Rows
        'If Not omitIndices.Contains(row.Index) Then
        For Each cell As DataGridViewCell In row.Cells
            If (cell.OwningColumn.Index = (DeviceLabels.Device_LabelsDataGridView.Columns.Count - 1)) Then
                If (Not (cell.Value) Is Nothing) Then
                    writer.WriteLine(cell.Value.ToString)
                Else
                    writer.WriteLine("")
                End If

            ElseIf (Not (cell.Value) Is Nothing) Then
                writer.Write(String.Concat(cell.Value.ToString, ","))
            Else
                writer.Write(String.Concat("", ","))
            End If
        Next
        'End If
    Next

    writer.Close()

End Sub 

Кто-нибудь может помочь? У меня не так много волос осталось! Я новичок в VB и у меня нет опыта, и я не могу найти какие-либо соответствующие примеры, которые включают экспорт видимых и невидимых столбцов.

Мне тоже нужны текстовые файлы, поэтому никакой другой формат использовать нельзя. Программа, которую я создаю, это программатор EEPROM. Как только этот текстовый экспорт заработает, я смогу работать над следующей половиной моей программы — отправкой файлов в мой обработчик EEPROM.


Ответы:


1

Я считаю, что использование старых X, Y для доступа к DGV легко закодировать, если вы просто ищете значения:

Вот мой тестовый пример:

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    Dim sLine As String = ""
    Dim sLines As String = "" ' added
    For iRow As Integer = 0 To Device_LabelsDataGridView.RowCount - 1
        sLine = ""
        For iCol As Integer = 0 To Device_LabelsDataGridView.ColumnCount - 1
            ' test header text: Device_LabelsDataGridView.Columns(iCol).HeaderText
            If iCol = 0 Or iCol = 1 Then
                sLine &= Device_LabelsDataGridView(iCol, iRow).Value.ToString & "," 
            End If
        Next
        sLines &= sLine.Substring(0, sLine.Length - 1) & vbCrLf
    Next
    My.Computer.FileSystem.WriteAllText("C:\Test.txt", sLines, True) ' generated from right click, snippets
End Sub
Private Sub Form5_Load(sender As Object, e As System.EventArgs) Handles Me.Load
    Device_LabelsDataGridView.Rows.Add({"1a", "1b", "1c"})
    Device_LabelsDataGridView.Rows.Add({"2a", "2b", "2c"})
    Device_LabelsDataGridView.Rows.Add({"3a", "", ""})
    Device_LabelsDataGridView.Rows.Add({"4a", "4b", "4c"})
End Sub

Я добавил три столбца в DGV и сделал 2-й Visible=False и отключил опцию, чтобы иметь возможность добавлять строки (щелкните значок > в правом верхнем углу DGV).

Не имеет значения, виден ли столбец или нет.

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

.Cell.Value.Tostring работает с пустыми ячейками.

06.05.2013
  • Как я уже сказал, я новичок. Я понятия не имею, публикует ли ваш код текстовый файл или где он его сохранит. Итак, это редактирование моего datagridview с новыми столбцами? 07.05.2013
  • Извините - я просто представил схему части решения. Довольно сложно опубликовать полное приложение .... Я отредактировал вышеприведенное, чтобы собрать строки, а затем преобразовать их в файл. 07.05.2013
  • Вы можете игнорировать мою загрузку DataGridView и использовать свой DataGridView. Удалите префикс DeviceLabels в ваших ссылках на вашу сетку. изменить тест, для которого столбцы включить в вывод. 07.05.2013
  • ЭТО СРАБОТАЛО! Большое спасибо!!! Небольшая проблема, любой новый экспорт добавляется к тому же файлу, можно ли перезаписать файл после нажатия кнопки? 08.05.2013
  • Нажмите F1 сразу за методом/свойством, с которым вам нужна помощь — в данном случае WriteAllText. И/или поместите курсор в список параметров, введите пробел, и вы должны увидеть описание параметров. В приведенном выше примере третий параметр имеет значение True, что указывает на то, что данные будут добавлены, если файл существует. Также внизу справки для WriteAllText есть ссылка на обширную тему по работе с файлами в VB.Net. 08.05.2013
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..