duallist踩锤的简单介绍
dual ports和two-ports的区别
分析一下epoll的工作过程:
(1) epoll_wait调用ep_poll,当rdlist为空(无就绪fd)时挂起当前进程,知道rdlist不空时进程才被唤醒。
(2) 文件fd状态改变(buffer由不可读变为可读或由不可写变为可写),导致相应fd上的回调函数ep_poll_callback()被调用。
(3) ep_poll_callback将相应fd对应epitem加入rdlist,导致rdlist不空,进程被唤醒,epoll_wait得以继续执行。
(4) ep_events_transfer函数将rdlist中的epitem拷贝到txlist中,并将rdlist清空。

VB如果将list表格中的一组文件(路径+文件名)拖放到资源管理器中?
'一、新建一个模块,复制下面代码到模块中
Option Explicit
Private Declare Function GetCursorPos Lib "User32" (lpPoint As POINTAPI) As Long
Private Declare Function WindowFromPoint Lib "User32" (ByVal xPoint As Long, ByVal yPoint As Long) As Long
Private Declare Function GetParent Lib "User32" (ByVal hWnd As Long) As Long
Private Type POINTAPI
X As Long
Y As Long
End Type
Function GetPath() As String
Dim lu_POINT As POINTAPI, Curwindow As Long, parentWnd As Long
Dim S As String, Hwd As Long, i As Integer
Dim oShellApp, oShellAppWindows, oWin
Call GetCursorPos(lu_POINT)
Curwindow = WindowFromPoint(lu_POINT.X, lu_POINT.Y)
parentWnd = GetParent(Curwindow)
Do While parentWnd 0
Curwindow = GetParent(parentWnd)
If Curwindow = 0 Then Exit Do
parentWnd = Curwindow
Loop
Hwd = parentWnd
Set oShellApp = CreateObject("Shell.Application")
Set oShellAppWindows = oShellApp.Windows
For Each oWin In oShellAppWindows
Debug.Print TypeName(oWin.Document)
If TypeName(oWin.Document) = "IShellFolderViewDual2" Then
If oWin.hWnd = Hwd Then
S = oWin.LocationURL
S = Replace(S, "", "", , , vbTextCompare)
S = Replace(S, "/", "\")
S = Replace(S, "%20", " ")
GetPath = S
Exit Function
End If
End If
Next
Set oWin = Nothing
Set oShellApp = Nothing
Set oShellAppWindows = Nothing
End Function
'二、当一个对象拖动到资源管理器后 ,调用下面函数即可完成复制文件工作:
Private Sub List1_OLECompleteDrag(Effect As Long)
Dim i As Integer, S As String
Dim Path As String
Path = GetPath
With List1
For i = 0 To .ListCount - 1
If .Selected(i) = True Then
S = .List(i)
FileCopy S, Path Path Mid(S, InStrRev(S, "\"))
End If
DoEvents
Next
End With
MsgBox "文件复制完毕!"
End Sub
dev gridcontrol 列怎么设置 treelist
1.隐藏最上面的GroupPanel
gridView1.OptionsView.ShowGroupPanel=false;
2.得到当前选定记录某字段的值
sValue=Table.Rows[gridView1.FocusedRowHandle][FieldName].ToString();
3.数据只读
gridView1.OptionsBehavior.Editable=false;
4.不显示MasterDetailView
gridView1.OptionsDetail.EnableMasterViewMode=false;
5.修改最上面的GroupPanel内容
gridView1.GroupPanelText="柳生飘絮";
6.设置数据源:
gridControl1.DataSource = dt;
绑定每一列的FiledName--属性
对于Oracle数据库,所有的在设计器里写的程序中的字段名必须大写,否则可能绑定不上字段,sqlserver没有这个限制.
7.读写拷贝权限设置
只读不可拷贝:
ColumnViewOptionsBehavior.Editable = False
只读可拷贝:
ColumnViewOptionsBehavior.Editable = True
OptionsColumn.AllowEdit = True
OptionsColumn.ReadOnly = True
可编辑:
ColumnViewOptionsBehavior.Editable = True
OptionsColumn.AllowEdit = True
OptionsColumn.ReadOnly = False
8.模板列的设置:
到Columns中,在他的属性中找到ColumnEdit.
以LookUpEdit为例:
首先从Designer左边菜单In-Place Editor Repository中添加LookUpEdit.取名为Re1.然后.在他的Columns属性中添加3列.Caption依次为:编号,姓名,性别.FieldName依次为:FID,FNAME,FSEX.然后将Re1的NullText设置成空.
AutoSearchColumnIndex属性设置为2.ImmediatePopup属性设置为True.
SearchMode设置为OnlyInPopup.
然后将这个模板列附加到我们上面提到的列1(也就是将列1的ColumnEdit属性设成Re1)
最后我们还要在代码里面给Re1绑定数据源和显示项.
Re1.DataSource = DALUse.Query("select fid,fname,fsex from dual").Tables[0];
Re1.DisplayMember = "FSEX";
Re1.ValueMember = "FNAME";
9.设某一列文字和标题局中显示
gridView1.Columns[0].AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
gridView1.Columns[0].AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
10.去掉某一列上面的自动筛选功能(Filter)
gridView1.Columns[0].OptionsFilter.AllowAutoFilter = false;
gridView1.Columns[0].OptionsFilter.AllowFilter = false;
gridView1.Columns[0].OptionsFilter.ImmediateUpdateAutoFilter = false;
11.设置冻结列(左冻结)
gridView1.Columns[0].Fixed= DevExpress.XtraGrid.Columns.FixedStyle.Left;
12.得到单元格数据(0行0列)
string ss=gridView1.GetRowCellDisplayText(0, gridView1.Columns[0]);
string ss = gridView1.GetRowCellValue(0, gridView1.Columns[0]);
13.设置单元格数据(将0行0列的单元格赋值123)
gridView1.SetRowCellValue(0, gridView1.Columns[0], "123");
13.手动添加dev的列
DevExpress.XtraGrid.Columns.GridColumn Col1=new DevExpress.XtraGrid.Columns.GridColumn ();
Col1.FieldName="FID";
Col1.Visible=true;
Col1.VisibleIndex=gridView1.Columns.Count;
gridView1.Columns.Add(Col1);
14.设置自动增加的行号,需要先添加给gridview添加事件CustomDrawRowIndicator
private void gridview_CustomDrawRowIndicator(object sender, DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventArgs e)
{
if (e.Info.IsRowIndicator e.RowHandle = 0)
e.Info.DisplayText = (e.RowHandle + 1).ToString();
}
15.删除: (修改了dgvdel里的datagridviewdel方法)
public static void datagridviewdel_Dev(DevExpress.XtraGrid.Views.Grid.GridView Mydgv)
{
if (MessageBox.Show("你确定要删除选中的记录吗?", "删除提示", MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2, 0, false) == DialogResult.Yes)
{
int iSelectRowCount = Mydgv.SelectedRowsCount;
if (iSelectRowCount 0)
{
Mydgv.DeleteSelectedRows();
}
}
}
16. 新增: (对于新增,其本身的AddNewRow方法就可以做到)
private void btn_add_Click(object sender, EventArgs e)
{
gridView1.AddNewRow();
}
具体如果对于新加行还有什么特别的设置,可以在它gridView1_InitNewRow事件中填写:
private void gridView1_InitNewRow(object sender, DevExpress.XtraGrid.Views.Grid.InitNewRowEventArgs e)
{
ColumnView View = sender as ColumnView;
View.SetRowCellValue(e.RowHandle, View.Columns[0], gridView1.GetRowCellValue(gridView1.GetRowHandle(gridView1.RowCount - 2), gridView1.Columns[0])); //复制最后一行的数据到新行
View.SetRowCellValue(e.RowHandle, View.Columns[1], gridView1.GetRowCellValue(gridView1.GetRowHandle(gridView1.RowCount - 2), gridView1.Columns[1])); //复制最后一行的数据到新行
}
17. 保存 (第三方控件提供的RefreshData和RefreshDataSource方法对于保存数据都不好使,最后还是使用了Dgvsave的datagridviewsave方法,用这个方法就可以)
18.特效:gridcontrol中有5种view 型式,普通的是gridview,然后分别为cardview、BandedView、Advanced BandedView、LayoutView;共5种。
1)、view组中把OptionView下的viewmode 设置成“Carousel”就达到这种“旋转木马”式的gridcontrol view 特效了
2)、layoutView1.OptionsCarouselMode.PitchAngle 这个属性决定“旋转木马”的pitch angle 螺距角; 螺旋角; 螺旋升角; 俯仰角; 倾角; 节锥半角
3)、Roll Angle 属性决定着 倾侧角度
4)、指定数据源,显示数据:
//显示数据
private void showData(ListEmployee list)
{
DataTable dt = new DataTable("OneEmployee");
dt.Columns.Add("Caption", System.Type.GetType("System.String"));
dt.Columns.Add("Department", System.Type.GetType("System.String"));
dt.Columns.Add("PhotoName", System.Type.GetType("System.Byte[]"));
for (int i = 0; i list.Count; i++)
{
DataRow dr = dt.NewRow();
dr["Caption"] = list[i].Name;
dr["Department"] = list[i].Department;
string imagePath = @"D:\C#\photos\" + list[i].PhotoPath;
dr["PhotoName"] = getImageByte(imagePath);
dt.Rows.Add(dr);
}
gridControl1.DataSource = dt;
}
//返回图片的字节流byte[]
private byte[] getImageByte(string imagePath)
{
FileStream files = new FileStream(imagePath, FileMode.Open);
byte[] imgByte = new byte [files.Length ];
files.Read(imgByte, 0, imgByte.Length);
files.Close();
return imgByte;
}
19.检查数据的有效性
在gridview的ValidateRow事件中加入检查代码:
#region 检查数据
private void gridView1_ValidateRow(object sender, ValidateRowEventArgs e)
{
GridView view = sender as GridView;
view.ClearColumnErrors();
if (view.GetRowCellValue(e.RowHandle, "ReceiveDate") == DBNull.Value)
{
e.Valid = false;
view.SetColumnError(view.Columns["ReceiveDate"], "必须指定日期");
}
}
#endregion
调用gridview.UpdateCurrentRow()方法执行检查
最常用的DevExpress Winform 4个代码片段:
一 、GridControl的删除操作
private void rILinkEditInfoDel_Click(object sender, EventArgs e)
{
if (XtraMessageBox.Show("请确定是否删除当前记录?", "警告", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes)
{
DataRow row = gvInfos.GetDataRow(gvInfos.FocusedRowHandle);
delByCode(row["Code"].ToString());
XtraMessageBox.Show("操作成功!");
}
}
使用SQL如何把用逗号等字符隔开的字符串转换成列表
如何把用逗号等字符隔开的字符串转换成列表,下面依逗号分隔符为例:
比如有一个字符串,其值为:香港,张家港,北京,上海
用SQL把这个字符串转换成列表的方法是:
1、方法一
WITH A AS (SELECT '香港,张家港,北京,上海' A FROM DUAL)
SELECT DECODE(B,0,SUBSTR(A,C),SUBSTR(A,C,B-C)) city FROM
(
SELECT A,B,(LAG(B,1,0) OVER(ORDER BY LV))+1 C
FROM(
SELECT A,INSTR(A,',',1,LEVEL) B,LEVEL LV FROM A
CONNECT BY LEVEL =(LENGTH(A) - LENGTH(REPLACE(A,',','')))+1
)
)
各位英语高手,帮忙翻译下问题补充的英语缩写,谢谢!
27 PrimeCo Unlock Code primeCo 解锁码
28 Verizon Unlock Code Verizon 解锁码
29 Secondary Unlock Code 二次解锁码
30 Service Passcode 服务密码
31 Lock 4 4号锁
32 Lock 5 5号锁
33 A-Key Random
34 A-Key Zero
35 MSN Microsoft Network
36 BT
37 WLAN Wireless Local Area Network
38 Base Processor ID 基本处理器地址
39 FASTT ID Freeflight Atmospheric Scramjet Test Technique ID
40 Location Type 位置类型
41 Packing List 打包列表
42 Fab Date 出场日期
43 Software Version 软件版本
44 Organization Code 源代码
45 Flex Option
46 ICC ID
47 SO Line Number
48 Direct Ship Region Code 直达船区域编码
49 Direct Ship SO Number 直达船SO号
50 Direct Ship PO Number 直达船订单号
51 Direct Ship Customer Number 直达船客户代码
52 Direct Ship Ship-to Address ID 直达船发往地址
53 Direct Ship Customer Country 直达船客户国家
54 Direct Ship Customer Name 直达船客户名称
55 Direct Ship Bill-to ID 直达船收票地址
56 Shipment Number 装船号
57 WIP DJ
58 Delete Flag
59 Ultimate Destination Country 最终目地国
60 Customer Specified Serial Number 客户指定序列号
61 MIN 最小值/量
62 Bill-to ID 售票地址
63 CURR_FLEX_VER
64 CURR_FLASH_NAME
65 CURR_PRI_VER
66 LANG_PKG_ID
67 KJAVA_VER
68 BOOTLOADER_VER
69 HARDWARE_VER
70 FOTA_ENABLED
71 DUAL_SERIAL_NO
72 DUAL_SERIAL_NO_TYPE
73 POP_IN_SYSDATE
74 POP_DATE
75 POP_IDENTIFIER
76 LAST_REPAIR_DATE
77 REPAIR_COUNT
78 WIMAX_MAC_ADDR
79 HSN
80 Dual Serial Number Master Unlock Code: Motorola Algorithm
81 Dual Serial Number Master Unlock Code: PrimeCo Algorithm
82 Dual Serial Number Master Unlock Code: Verizon Algorithm
83 Dual Serial Number One-time Unlock Code: Motorola Algorithm
84 Dual Serial Number Service Passcode
85 Dual Serial Number Lock 4
86 Dual Serial Number Lock 5
87 Dual Serial Number A-Key Random
88 Dual Serial Number A-Key Zero
89 Dual Serial Number A-Key2 Type
90 Dual Serial Number A-Key2