제 첫 번 째 실 용적 인 GO 언어 프로그램 입 니 다.
우리 의 코드 에는 다음 과 같은 코드 가 매우 많다.
UarrMain [0]: = AsMainType (edLayer, myStr, 'Layer', '구조 층 이름');
UarrMain [1]: = AsMainType (edKind, myStr, 'Kind', '안정 제 종류');
.......
UArrSub [0]: = AsSubType (myInt, True, 'seqnum', '번호');
UArrSub [1]: = AsSubType (myStr, False, 'BoxNumber', '테스트 박스 번호');
UArrSub [2]: = AsSubType (my Float, False, 'BoxWeigth', '상자 의 품질');
.....
나 는 지금 세 번 째, 네 번 째 인 자 를 추출 해 야 한다.
올 려 놓 아 라, 다음 에 컴퓨터 가 고장 나 면 다시 쓸 필요 가 없다.일 에 쓰 이 는 것 은 작업량 을 줄 일 수 있다.
배우 면서 쓴 것 이 비교적 서투르다. 문 서 를 여러 번 뒤 져 서 야 썼 다.
관건 은 정칙 이다. 물론 모든 상황 을 고려 하지 않 았 다.
이 언어 는 서버 를 위 한 개발 이기 때문에 GUI 에 좋 지 않 습 니 다.B / S 코드 를 함부로 만 들 었 습 니 다. 코드 는 다음 과 같 습 니 다.
- package main
- import
- (
- "io"
- "fmt"
- "regexp"
- "strings"
- "net/http"
- )
-
- const(
- SQL = "EXEC sys.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'"
- SQL2 = "EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'AAAA', @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CCCC'"
- html =
- `<html>
- <head><title> <a/title></head>
- <body><form method = 'post'>
- TableName : <input type = "text" name = "tablename"></input> qs_Table TableName, TestRecordC21 <br></br>
- : <input type = "text" name = "tablename2"></input> <br></br>
- <textarea rows="20" cols="120" name = "target"></textarea><br></br>
- <input type = "submit" value = "Submit"></input>
- %s
- </form>
- </body>
- </html>`
- )
-
- func mySearch(str string) (result string) {
- result = ""
- regSub := regexp.MustCompile(`(?i)AsSubType\s*\(\w+\s*\,\s*(True|False)\s*\,\s*\'\s*(\w+)\s*\'\s*\,\s*\'\s*(.*?)\s*\'`)
- regMain := regexp.MustCompile(`(?i)AsMainType\s*\(\w+\s*\,\s*(\w+)\s*\,\s*\'\s*(\w+)\s*\'\s*\,\s*\'\s*(.*?)\s*\'`)
-
- resultSub := regSub.FindAllStringSubmatch(str, -1)
- resultMain := regMain.FindAllStringSubmatch(str, -1)
-
- for _, V := range resultSub {
- result = result + strings.Replace(strings.Replace(SQL, "AAAA", V[3],-1), "BBBB", V[2], -1) +
- "<br></br>" + " GO " + "<br></br>"
- }
-
- for _, V := range resultMain {
- result = result + strings.Replace(strings.Replace(SQL, "AAAA", V[3],-1), "BBBB", V[2], -1) +
- "<br></br>" + " GO " + "<br></br>"
- }
-
- return
- }
-
- func Analyze(w http.ResponseWriter, r *http.Request) {
- if r.Method == "GET" {
- io.WriteString(w, strings.Replace(html, "%s", "", -1))
- return
- }
-
- if r.Method == "POST"{
- str := r.FormValue("target")
- tablename := r.FormValue("tablename")
- tablename2 := r.FormValue("tablename2")
- if tablename == "" {
- io.WriteString(w, strings.Replace(html, "%s", "<div border = '1'>" +
- "TableName " +"</div>", -1))
- return
- }
- if tablename2 == "" {
- io.WriteString(w, strings.Replace(html, "%s", "<div border = '1'>" +
- " " +"</div>", -1))
- return
- }
- if str == "" {
- io.WriteString(w, strings.Replace(html, "%s", "<div border = '1'>" +
- " " +"</div>", -1))
- return
- }
-
- SQLCMD := strings.Replace(html, "%s", "<div border = '1'>" +
- strings.Replace(mySearch(str), "CCCC", tablename, -1) +"</div>", -1)
- SQLCMD = SQLCMD + strings.Replace(strings.Replace(SQL2, "AAAA", tablename2, -1), "CCCC", tablename, -1)
- io.WriteString(w, SQLCMD)
- }
- }
-
- func main(){
- fmt.Println("Open http://localhost:8888/extract")
- http.HandleFunc("/extract", Analyze)
- err := http.ListenAndServe(":8888", nil)
- if err != nil {
- fmt.Println(err.Error())
- }
- }
-
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
빠른 팁: SingleStoreDB의 데이터 API 사용SingleStoreDB는 HTTP 연결을 통해 SQL 문을 실행하는 데 사용할 수 있는 을 제공합니다. 이 짧은 문서에서는 이 데이터 API를 사용하는 방법에 대한 예를 보여줍니다. A는 무료 SingleStore...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.