导出到xojo中的文本

时间:2018-04-23 08:07:18

标签: listbox xojo realstudio

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

  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

由于

此致

阿里耶夫

1 个答案:

答案 0 :(得分: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

必须按该组编号对数据进行排序才能使其正常工作。