liset.cpp

// Liset.cpp : implementation file
//

#include "stdafx.h"
#include "myapp.h"
#include "Liset.h"

#include "ReceivedataSet.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/
// CLiset dialog


CLiset::CLiset(CWnd* pParent /*=NULL*/)
 : CDialog(CLiset::IDD, pParent)
{
 //{{AFX_DATA_INIT(CLiset)
 //}}AFX_DATA_INIT
}


void CLiset::DoDataExchange(CDataExchange* pDX)
{
 CDialog::DoDataExchange(pDX);
 //{{AFX_DATA_MAP(CLiset)
 DDX_Control(pDX, IDC_TREE1, m_treectrl);
 DDX_Control(pDX, IDC_LIST1, m_listctrl);
 //}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CLiset, CDialog)
 //{{AFX_MSG_MAP(CLiset)
 ON_WM_PAINT()
 ON_WM_TIMER()
 ON_NOTIFY(TVN_SELCHANGED, IDC_TREE1, OnSelchangedTree1)
 //}}AFX_MSG_MAP
END_MESSAGE_MAP()

/
// CLiset message handlers

BOOL CLiset::OnInitDialog()
{
 CDialog::OnInitDialog();
 
 // TODO: Add extra initialization here
 
 CString strHeader[8] = {"ID","PID","COUNT","VAL1","VAL2","VAL3","VAL4","VAL5"};
 int nLong[8] ={60,60,75,70,70,70,70,70};
 for(int nCol = 0;nCol<8;nCol++)
  m_listctrl.InsertColumn(nCol,strHeader[nCol],LVCFMT_CENTER,nLong[nCol]);
 
  //  CHeaderCtrl   *   pHeader=m_listctrl.GetHeaderCtrl(); 
 
  //  pHeader->ModifyStyle(0, LVS_OWNERDRAWFIXED ,   TRUE);// CCS_NORESIZE

 SetTimer(5,30000,NULL);
// ListId();
 return TRUE;  // return TRUE unless you set the focus to a control
               // EXCEPTION: OCX Property Pages should return FALSE
}

HTREEITEM CLiset::FindTreeItem(HTREEITEM hParent, CString str)
{
 HTREEITEM  hNext;
 CString strItem;
 hNext = m_treectrl.GetChildItem(hParent);
 while(hNext != NULL)
 {
  strItem = m_treectrl.GetItemText(hNext);
  if(strItem == str)
   return hNext;
  else
   hNext = m_treectrl.GetNextItem(hNext,TVGN_NEXT);
 }
 return NULL;

}

void CLiset::DispList(CString strFilter,int id)
{
 m_listctrl.DeleteAllItems();  //删除所有表项
 CReceivedataSet dpSet;
 dpSet.m_strFilter = strFilter;
 dpSet.Open();
 int nItem = 0;
 CString dpstr;
 // dpSet.MoveFirst();
 int count = 0;
 dpSet.MoveLast();
 
 //while(!dpSet.IsEOF())
 while(!dpSet.IsBOF())
 {
  dpstr.Format("%d",dpSet.m_ID);
  m_listctrl.InsertItem(nItem,dpstr);

        dpstr.Format("%d",dpSet.m_PID);
  m_listctrl.SetItemText(nItem,1,dpstr);

  dpstr.Format("%d",dpSet.m_COUNTER);
  m_listctrl.SetItemText(nItem,2,dpstr);

  dpstr.Format("%d",dpSet.m_VALUE1);
  m_listctrl.SetItemText(nItem,3,dpstr);

  dpstr.Format("%d",dpSet.m_VALUE2);
  m_listctrl.SetItemText(nItem,4,dpstr);

  dpstr.Format("%d",dpSet.m_VALUE3);
  m_listctrl.SetItemText(nItem,5,dpstr);

  dpstr.Format("%d",dpSet.m_VALUE4);
  m_listctrl.SetItemText(nItem,6,dpstr);

  dpstr.Format("%d",dpSet.m_VALUE5);
  m_listctrl.SetItemText(nItem,7,dpstr);

  count++;
 // dpSet.MoveNext();
   dpSet.MovePrev();

 }
 dpSet.Close();
 dpstr.Format("节点%d记录一共%d条",id,count);
    GetDlgItem(IDC_STATIC_LIST)->SetWindowText(dpstr);
}

void CLiset::OnPaint()
{
 CPaintDC dc(this); // device context for painting
 
 // TODO: Add your message handler code here

 // Do not call CDialog::OnPaint() for painting messages
}

void CLiset::ListId()
{
 HTREEITEM hRoot,hChild;
 CString str;
 hRoot = m_treectrl.InsertItem("ID",0,1);
 CReceivedataSet lSet;
 lSet.Open();
 
 lSet.MoveFirst();
 
 while(!lSet.IsEOF())
 {
 // if(lSet.m_ID == 0)
 //  lSet.Delete();
 // else
//  {
  str.Format("%d",lSet.m_ID);
  hChild = FindTreeItem(hRoot,str);
  if(hChild == NULL)    
           hChild = m_treectrl.InsertItem(str,0,1,hRoot);
   
  lSet.MoveNext();
//  }
 }
 lSet.Close();
}

void CLiset::OnTimer(UINT nIDEvent)
{
 // TODO: Add your message handler code here and/or call default
 if(nIDEvent == 5)
 {
  m_treectrl.DeleteAllItems();
  ListId();
 }
  
 CDialog::OnTimer(nIDEvent);
}

void CLiset::OnSelchangedTree1(NMHDR* pNMHDR, LRESULT* pResult)
{
 NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
 // TODO: Add your control notification handler code here
 HTREEITEM hSelItem = pNMTreeView->itemNew.hItem;
 if(m_treectrl.GetChildItem(hSelItem) == NULL)
 {
  CString strSelItem,str;
  strSelItem =m_treectrl.GetItemText(hSelItem);
  int  temp;
  temp =atoi(strSelItem.GetBuffer(strSelItem.GetLength()));  //cstring转换成int型
  str.Format("ID LIKE %d",temp);
  DispList(str,temp);
 }
 *pResult = 0;
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在XML中,可以使用以下方法遍历列表: 1. 使用XPath表达式:使用XPath表达式可以选择XML文档中的节点集合。可以使用XPath表达式选择列表中的所有元素。 例如,假设我们有以下XML文档: ``` <root> <list> <item>Item 1</item> <item>Item 2</item> <item>Item 3</item> </list> </root> ``` 我们可以使用XPath表达式“/root/list/item”来选择所有的item元素,然后遍历它们。 2. 使用DOM解析器:DOM解析器可以将XML文档加载到内存中,并创建一个树形结构,使得我们可以遍历XML文档中的所有元素。 例如,假设我们有以下XML文档: ``` <root> <list> <item>Item 1</item> <item>Item 2</item> <item>Item 3</item> </list> </root> ``` 我们可以使用DOM解析器遍历所有的item元素: ``` import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.DocumentBuilder; import org.w3c.dom.Document; import org.w3c.dom.NodeList; import org.w3c.dom.Node; public class XMLParser { public static void main(String[] args) { try { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document doc = builder.parse("file.xml"); NodeList list = doc.getElementsByTagName("item"); for (int i = 0; i < list.getLength(); i++) { Node node = list.item(i); System.out.println(node.getTextContent()); } } catch (Exception e) { e.printStackTrace(); } } } ``` 运行上面的程序,将输出以下内容: ``` Item 1 Item 2 Item 3 ``` 这是遍历XML文档中所有item元素的结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值