急!
struts2获取数据, 要为成员变量加get、set方法public void setInputPath(String value) {inputPath = value;}public String getInputPath() {return this.inputPath ;}getInputPath()写错了,第二个字母大写
如何用VB获取屏幕信息
在有些软件里当鼠标移到某单词上,其注释就会显示单词的中文解释.这样的软件是如何制作的呢?下面我就介绍以下获取鼠标所在单词的方法,至于中文结实要关系到数据库及字库问题在此我不做解释.首先建立新工程,在FORM上添加一个TEXT文本框.声明SendMessage函数.Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As LongConst EM_CHARFORMPOS=&HD7注释:在API浏览器里无此值请自己加上. 自定义过程:Private Sub Text1_MouseDown(Button As Intege,Shift As Integer,x As Single, y As Single)注释:获取鼠标所点的是第几行第几个字符Dim pos As Long,Lc As LongDim Line As Integer,CharPos As Integerx=x/Screen.TwipsPerPixelXy=y/Screen.TwipsperPixelYpos=x+y*65536Lc=SendMessage(Text1.hwnd,EM_CHARFROMPOS,0,ByVal pos)Line=Lc65536 注释:第几行CharPos=Lc MOD 65536 注释:第几个字符End Sub注释:接下来才是真正的读取函数Function GetWord(txt As TextBox,pos As Integer) As StringDim bArr()As Byte,pos1 As Integer,pos2 As Integer, i As IntegerbArr=StrConv(txt.Text,vbFromUnicode)注释:转换成Byte数组pos1=0:pos2=UBound(bArr)注释:向前搜索分格符的位置For i=pos-1 To 0 Step -1If IsDelimiter(bArr(i)) Thenpos1=i+1Exit ForEnd IfNext注释:向后搜寻分隔符字符的位置For i=pos To UBound(bArr)If IsDelimiter(bArr(i)) Thenpos2=i-1Exit ForEnd IfNext注释:截取pos1-pos2之间的字符,以构成一个单词If pos2>pos1 ThenReDim bArr2(pos2-pos1) As ByteFor i=pos1 To Pos2bArr2(i-pos1)=bArr(i)NextGetWord=StrConv(bArr2,vbUnicode)ElseGetWord=""End IfEnd Function注释:IsDelimiter函数Functon IsDelimiter(ByVal Char As Byte) As BooleanDim S As StringS=Chr(Char)IsDelimiter=FalseIf S=" " Or S="," Or S="." Or S="?" Or S="vbCr Or S=vbLf ThenIsDelimiter=TrueEnd IfEnd Function
asp做网页
假设传给getword函数的实参是一个char c[10]数组。
先看下面这个循环:while ((ch = getchar()) != EOF && !isspace(ch))*str++ = ch;*str = '\0';作用是每次读入一个字符,依次写入数组c,直到读入空格('')、制表符('\t')、回车('\r')、换行('\n')、垂直制表符('\v')或翻页('\f')时停止。
然后在读入数组c的字符后面加一个结束符('\0')。
此时str指向的字符就是'\0'。
如果getchar返回错误,就return NULL。
if (ch == EOF)return NULL;else{否则执行以下循环:如果刚才ch最后读入的停止符不是换行,就继续读下去,直至读到换行为止。
这个循环用来清空输入缓冲区,因为之前输入的字符全部保存在缓冲区内,如果不清空,会影响后续输入的正常读取。
while (ch != '\n')ch = getchar();而这时str没有变化过,一直指向'\0'字符。
所以getword的返回值永远是一个指向'\0'的字符指针。
return str;}}最后,不要改成while((ch=getchar())!='\n')。
很明显,原代码是先判断ch是否为回车,再读取。
而改过的代码是不管ch当前是什么,先读下一个,再判断是否是回车。
当ch当前值是回车时,这两个语句会产生不同的效果。
DLL中定义了一个类,PB中如何调用
Private Sub Command1_Click()CheckPassword ("饭店")End SubSub CheckPassword(getWord As String)PassWord = "毛家饭店"Static errNum As IntegerIf getWord PassWord ThenerrNum = errNum + 1Print "Sorry,输入错误 " & errNum & " 次"ElsePrint "今晚8点,毛家饭店!"' call KaLaOK()End IfIf errNum >2 Thenn = 13PrintPrint "Sorry,帐号被冻结" & Chr(10)PrintCommand1.Enabled = flaset1 = TimerDo: DoEventsLabel1.Caption = Int(Abs(n + t1 - Timer)) & "秒后退出系统..."Loop Until Abs(t1 - Timer) >nEndEnd IfEnd Sub/////////////////////////////////////////////////////////////Private Sub Command1_Click()Dim hTime As IntegerhTime = 0: h = -10DohTime = hTime + 1h = h + 3hTime = hTime + 1h = h - 2Loop Until h >0Print hTime & "小时后,蜗牛爬出来了!"End Sub
boa下动态网页实现cgi(c语言编写)
没用过boa。
只谈网页原理。
从data.txt读入温度,湿度等数据。
用printf()输出 HTML 文件。
#define LF 10 #define CR 13 int wendu,shidu; char shijian[20]; FILE *fin; // 打开data.txt,读入 wendu,shidu,shijian,关文件 // 下来输出 printf("%c",LF); printf("web界面%c",LF); printf("); printf("%c",LF); printf("温度:%d 湿度:%d 时间:%s%c",LF,wendu,shidu,shijian); printf("%c",LF); ===============================================网上留言获取,变量名字与网页定义有关。
char *cl;char manydata[10240];void getword(char *word, char *line, char stop) {int x = 0,y;for(x=0;((line[x]) && (line[x] != stop));x++)word[x] = line[x];word[x] = '\0';if(line[x]) ++x;y=0;while(line[y++] = line[x++]);}void unescape_url(char *url) {register int x,y;for(x=0,y=0;url[y];++x,++y) {if((url[x] = url[y]) == '%') {url[x] = x2c(&url[y+1]);y+=2;}}url[x] = '\0';}void plustospace(char *str) {register int x;for(x=0;str[x];x++) if(str[x] == '+') str[x] = ' ';}返回信息长度:char_l = atoi(getenv("CONTENT_LENGTH"));cl = &manydata[0];分离变量名与值(即内容):for (i=0; i < char_l ;i++) {*( cl + i) = (char)fgetc(stdin) ;};*( cl + char_l) = '\0';查找需要的变量名与值:for(x=0;cl[0] != '\0'; x++) {m=x;getword(w,cl,'='); plustospace(w);unescape_url(w);if( strcmp(w,"name") == 0) {getword(w,cl,'&');plustospace(w);unescape_url(w);strcpy(name,w);}。
。
。
。
}---------------------------------
转载请注明出处51数据库 » getword 官网
一概而轮