我的第一个比较实用的GO语言程序

前端之家收集整理的这篇文章主要介绍了我的第一个比较实用的GO语言程序前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我们的代码当中有很多很多如下的代码

UarrMain[0] := AsMainType(edLayer,myStr,'Layer','结构层名称');

UarrMain[1] := AsMainType(edKind,'Kind','稳定剂种类');

.......

UArrSub[0] := AsSubType(myInt,True,'seqnum','序号');

UArrSub[1] := AsSubType(myStr,False,'BoxNumber','试验盒号');

UArrSub[2] := AsSubType(myFloat,'BoxWeigth','盒的质量');

.....

我现在需要提取第三个,第四个参数。

放上来,下次电脑坏就不用重新写了。工作当中用到的,可以减轻工作量。

一边学一边写的,比较手生,翻了很多次文档才写出来。 关键是正则,当然没有考虑所有的情况。
这门语言对GUI支持的不好,因为是面向服务器的开发。就胡乱弄了个B/S的,代码如下:
      1. packagemain
      1. import
      1. (
      1. "io"
      1. "fmt"
      1. "regexp"
      1. "strings"
      1. "net/http"
      1. )
      1. const(
      1. sql="EXECsys.sp_addextendedproperty@name=N'MS_Description',@value=N'AAAA',@level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'CCCC',@level2type=N'COLUMN',@level2name=N'BBBB'"
      1. sql2="EXECsys.sp_addextendedproperty@name=N'MS_Description',@level1name=N'CCCC'"
      1. html=
      1. `<html>
      1. <head><title>提取<a/title></head>
      1. <body><formmethod='post'>
      1. TableName:<inputtype="text"name="tablename"></input>qs_Table中的TableName,比如TestRecordC21<br></br>
      1. 表格名称:<inputtype="text"name="tablename2"></input>比如石料试验记录<br></br>
      1. <textarearows="20"cols="120"name="target"></textarea><br></br>
      1. <inputtype="submit"value="Submit"></input>
      1. %s
      1. </form>
      1. </body>
      1. </html>`
      1. )
      1. funcmySearch(strstring)(resultstring){
      1. result=""
      1. regSub:=regexp.MustCompile(`(?i)AsSubType\s*\(\w+\s*\,\s*(True|False)\s*\,\s*\'\s*(\w+)\s*\'\s*\,\s*\'\s*(.*?)\s*\'`)
      1. regMain:=regexp.MustCompile(`(?i)AsMainType\s*\(\w+\s*\,\s*(\w+)\s*\,\s*\'\s*(.*?)\s*\'`)
      1. resultSub:=regSub.FindAllStringSubmatch(str,-1)
      1. resultMain:=regMain.FindAllStringSubmatch(str,-1)
      1. for_,V:=rangeresultSub{
      1. result=result+strings.Replace(strings.Replace(sql,"AAAA",V[3],-1),"BBBB",V[2],-1)+
      1. "<br></br>"+"GO"+"<br></br>"
      1. }
      1. for_,V:=rangeresultMain{
      1. result=result+strings.Replace(strings.Replace(sql,-1)+
      1. "<br></br>"+"GO"+"<br></br>"
      1. }
      1. return
      1. }
      1. funcAnalyze(whttp.ResponseWriter,r*http.Request){
      1. ifr.Method=="GET"{
      1. io.WriteString(w,strings.Replace(html,"%s","",-1))
      1. return
      1. }
      1. ifr.Method=="POST"{
      1. str:=r.FormValue("target")
      1. tablename:=r.FormValue("tablename")
      1. tablename2:=r.FormValue("tablename2")
      1. iftablename==""{
      1. io.WriteString(w,"<divborder='1'>"+
      1. "TableName没有填写"+"</div>",-1))
      1. return
      1. }
      1. iftablename2==""{
      1. io.WriteString(w,"<divborder='1'>"+
      1. "表格名称没有填写"+"</div>",-1))
      1. return
      1. }
      1. ifstr==""{
      1. io.WriteString(w,"<divborder='1'>"+
      1. "查找内容没有填写"+"</div>",-1))
      1. return
      1. }
      1. sqlCMD:=strings.Replace(html,"<divborder='1'>"+
      1. strings.Replace(mySearch(str),"CCCC",tablename,-1)+"</div>",-1)
      1. sqlCMD=sqlCMD+strings.Replace(strings.Replace(sql2,tablename2,"CCCC",-1)
      1. io.WriteString(w,sqlCMD)
      1. }
      1. }
      1. funcmain(){
      1. fmt.Println("Openhttp://localhost:8888/extract")
      1. http.HandleFunc("/extract",Analyze)
      1. err:=http.ListenAndServe(":8888",nil)
      1. iferr!=nil{
      1. fmt.Println(err.Error())
      1. }
      1. }

    猜你在找的正则表达式相关文章