2

我想从列表框中导出数据,

  Listbox1.AddRow "001", "Orange", "1.00","Arief"
  Listbox1.AddRow "001", "Apple", "1.00","Arief"
  Listbox1.AddRow "001", "Banana", "1.00","Arief"
  Listbox1.AddRow "004", "Orange", "1.00","Arief"
  Listbox1.AddRow "005", "Apple", "1.00","Brandon"
  Listbox1.AddRow "006", "Banana", "1.00","Brenda"

  dim f as folderitem
  dim tisx as TextOutputStream
  f = new folderitem("item.txt")
  tisx = f.CreateTextFile
  dim Last_first_word as String
  dim maxRow as Integer = Listbox1.listcount-1
  for row as integer =  0 to maxRow
    if Listbox1.Cell(row,0)<> Last_first_word then
      tisx.WriteLine ""
      tisx.writeline listBox1.cell(row,0)
      tisx.WriteLine listBox1.cell(row,1)+" "+listBox1.cell(row,2)
      Last_first_word=Listbox1.Cell(row,0)
    else
      tisx.WriteLine listBox1.cell(row,1)+" "+listBox1.cell(row,2)
    end if
  next
  tisx.Close

我想对所有具有相同代码的项目进行分类,并将名称放在最后。如何使结果像,

    001
    Orange 1.00
    Apple 1.00
    Banana 1.00
    Arief

    004
    Orange 1.00
    Arief

    005
    Apple 1.00
    Brandon

    006
    Banana 1.00
    Brenda

谢谢

问候,

阿里夫

4

1 回答 1

0

您还需要保存名称,以便在移动到新数据组之前显示它。只需要对您的代码稍作调整:

Listbox1.DeleteAllRows

ListBox1.AddRow("001", "Orange", "1.00", "Arief")
ListBox1.AddRow("001", "Apple", "1.00", "Arief")
ListBox1.AddRow("001", "Banana", "1.00", "Arief")
ListBox1.AddRow("004", "Orange", "1.00", "Arief")
ListBox1.AddRow("005", "Apple", "1.00", "Brandon")
ListBox1.AddRow("006", "Banana", "1.00", "Brenda")

Dim f As FolderItem
Dim tisx As TextOutputStream
f = SpecialFolder.Desktop.Child("item.txt")
tisx = f.CreateTextFile
Dim Last_first_word As String
Dim lastName As String
Dim maxRow As Integer = Listbox1.ListCount - 1
For row As Integer =  0 To maxRow
  If Listbox1.Cell(row, 0) <> Last_first_word Then
    If lastName <> "" Then tisx.WriteLine(lastName)

    tisx.WriteLine("")
    tisx.WriteLine(ListBox1.Cell(row, 0))
    tisx.WriteLine(ListBox1.Cell(row, 1) + " " + ListBox1.Cell(row, 2))
    Last_first_word = ListBox1.Cell(row, 0)
    lastName = ListBox1.Cell(row, 3)
  Else
    tisx.WriteLine(ListBox1.Cell(row, 1) + " " + ListBox1.Cell(row, 2))
  End If
Next

If lastName <> "" Then tisx.WriteLine(lastName)

tisx.Close

数据必须按该组号排序才能正常工作。

于 2018-05-15T16:24:07.153 回答