  | 
				VFP 愛用者社區 本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.   
				 | 
			 
		 
		 
	
		| 上一篇主題 :: 下一篇主題   | 
	 
	
	
		| 發表人 | 
		內容 | 
	 
	
		CPS0204
 
 
  註冊時間: 2014-08-24 文章: 482
 
  第 1 樓
  | 
		
			
				 發表於: 星期五 八月 31, 2018 11:22 am    文章主題: 請問在VFP9 中,可有方法快速查詢所有專案內的FORM,的某些字元 | 
				     | 
			 
			
				
  | 
			 
			
				例: 有用到涵數  my_chk()
 
 
我想有無方法可快速查所有的 form當中的所有字元 MY_CHK 的就列出 (不分大小寫)
 
此form名稱
 
THANKS | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		syntech
 
 
  註冊時間: 2003-05-16 文章: 4252 來自: Taipei,Taiwan
  第 2 樓
  | 
		
			
				 發表於: 星期五 八月 31, 2018 4:43 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				 	  | 代碼: | 	 		  
 
USE 專案.PJX ALIAS MYPROJECT IN 0 
 
SELECT MYPROJECT
 
SCAN FROM TYPE = 'K'
 
USE &MYPROJECT.KEY ALIAS MYFORM  IN 0 
 
SELECT OBJNAME FROM MYFORM INTO CURSOR MYCURSOR ;
 
WHERE UPPER(PROPERTIES+METHOD) LIKE '%MY_CHK%' 
 
SELECT MYCURSOR 
 
IF !EOF()
 
? MYPROJECT.KEY+'有字串'
 
ENDIF
 
USE IN MYCURSOR
 
USE IN MYFORM
 
ENDSCAN
 
USE IN MYPROJECT
 
 | 	  
 
 
 
               _________________ 如果公司有下列困擾:
 
1. 找不到便宜,快速,簡易的 生產排程軟體
 
2. 不知道如何快速排定 採購計劃
 
3. 成本抓不準,自己算比軟體算有用
 
4. 想學習系統規劃,想找系統架構的顧問
 
 
請聯絡我們,也許我們幫得上忙 | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		CPS0204
 
 
  註冊時間: 2014-08-24 文章: 482
 
  第 3 樓
  | 
		
			
				 發表於: 星期五 八月 31, 2018 10:19 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				| 謝謝! 方便多了 | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		syntech
 
 
  註冊時間: 2003-05-16 文章: 4252 來自: Taipei,Taiwan
  第 4 樓
  | 
		
			
				 發表於: 星期六 九月 01, 2018 5:25 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				我通常用 ULTRAEDIT 的多檔案搜尋 _________________ 如果公司有下列困擾:
 
1. 找不到便宜,快速,簡易的 生產排程軟體
 
2. 不知道如何快速排定 採購計劃
 
3. 成本抓不準,自己算比軟體算有用
 
4. 想學習系統規劃,想找系統架構的顧問
 
 
請聯絡我們,也許我們幫得上忙 | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		朱育興
 
 
  註冊時間: 2003-08-25 文章: 661 來自: 台中市大里區
  第 5 樓
  | 
		 | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		ezpos
 
 
  註冊時間: 2011-04-20 文章: 323
 
  第 6 樓
  | 
		 | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		朱育興
 
 
  註冊時間: 2003-08-25 文章: 661 來自: 台中市大里區
  第 7 樓
  | 
		
			
				 發表於: 星期一 九月 03, 2018 3:51 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				管你 FORM、REPORT ...,不都是檔案嗎?用記事本開啟也可以啊,因為只是要找特定字串,又不是要編輯它們,記事本太簡陋了,所以都會用自己慣用的文字編輯器做事:可以搜尋子資料夾下的檔案,查詢字串也可用正規正則式搜尋特定格式的字串等等,都看個人使用習慣 _________________ 希望有更多人來參與
 
 VFP wiki - 需要大家一起完成的VFP電子書與FAQ  | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		garfield Site Admin
  
  註冊時間: 2003-01-30 文章: 2160
 
  第 8 樓
  | 
		
			
				 發表於: 星期一 九月 03, 2018 5:16 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				LKK 都用dos 指令, 還可以結果轉到文字檔 findlist.txt
 
 
find "你要找的字串" * >findlist.txt _________________ 利用>>搜尋<<的功能會比問的還要快得到答案. | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		CPS0204
 
 
  註冊時間: 2014-08-24 文章: 482
 
  第 9 樓
  | 
		
			
				 發表於: 星期一 九月 03, 2018 6:09 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				 	  | garfield 寫到: | 	 		  LKK 都用dos 指令, 還可以結果轉到文字檔 findlist.txt
 
 
find "你要找的字串" * >findlist.txt | 	  
 
 
dos 的 find 也很好用,又快,謝謝 | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		syntech
 
 
  註冊時間: 2003-05-16 文章: 4252 來自: Taipei,Taiwan
  第 10 樓
  | 
		
			
				 發表於: 星期一 九月 03, 2018 10:06 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				 	  | ezpos 寫到: | 	 		  ULTRAEDIT/EmEditor 可用在foxpro??
 
 form內容搜尋??? | 	  
 
 
偏要用 FOXPRO 做文件搜尋才是最奇怪的.
 
   _________________ 如果公司有下列困擾:
 
1. 找不到便宜,快速,簡易的 生產排程軟體
 
2. 不知道如何快速排定 採購計劃
 
3. 成本抓不準,自己算比軟體算有用
 
4. 想學習系統規劃,想找系統架構的顧問
 
 
請聯絡我們,也許我們幫得上忙 | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		CPS0204
 
 
  註冊時間: 2014-08-24 文章: 482
 
  第 11 樓
  | 
		
			
				 發表於: 星期四 十一月 29, 2018 11:40 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				vfoxpro9 在tools->code refrence ->look up refrence
 
即可查詢所有的字元 | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		chilin
 
  
  註冊時間: 2003-10-01 文章: 79 來自: Taipei,Taiwan
  第 12 樓
  | 
		
			
				 發表於: 星期二 十二月 04, 2018 1:30 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				方法一:
 
1.將路徑切換到 FORM 與 REPORT 的資料夾下(通常是專案的目錄)
 
2.MODI COMM SEARCH_STR.PRG
 
3.將底下程式碼複製到 SEARCH_STR.PRG
 
4.修改程式碼中 =SEARCH_STR([*],[MY_CHK])
 
5.存檔
 
6.DO SEARCH_STR.PRG
 
 
 	  | 代碼: | 	 		  
 
CLEAR
 
CLEAR ALL
 
CLOSE DATABASES ALL
 
CLEAR PROGRAM
 
SET EXCLUSIVE OFF
 
DECLARE INTEGER ShellExecute IN shell32.dll ; 
 
      INTEGER hndWin, ; 
 
      STRING cAction, ; 
 
      STRING cFileName, ; 
 
      STRING cParams, ;  
 
      STRING cDir, ; 
 
      INTEGER nShowWin
 
 
=SEARCH_STR([*],[想搜尋的字串])
 
 
CLEAR ALL
 
CLOSE DATABASES ALL
 
 
********************************
 
*從所有的FORM及REPORT搜尋字串
 
FUNCTION SEARCH_STR(F_SOURCE,F_STR)
 
********************************
 
PRIVATE CRLF,LOGFILE
 
   CRLF=CHR(13)+CHR(10)
 
   LOGFILE=SYS(5)+SYS(2003)+[\_SEARCH.TXT]
 
   ERASE(LOGFILE)
 
   =PROC_MS(F_SOURCE+[.SCX],F_STR)
 
   =PROC_MS1(F_SOURCE+[.FRX],F_STR)   &&1000822C
 
   WAIT WINDOW [*** 搜尋完成 ***]
 
   IF FILE(LOGFILE)
 
      ShellExecute(0,"open",LOGFILE,"","",1)
 
   ENDIF
 
   RETURN
 
ENDFUNC
 
********************
 
FUNCTION PROC_MS
 
********************
 
PARAMETERS P_STRING,P_KEY
 
PRIVATE I,A
 
   WAIT WINDOW [表單搜尋中...] NOWAIT NOCLEAR
 
   CREATE CURSOR T1 (FNAME C(20))
 
   INDEX ON FNAME TAG FNAME
 
   A=ADIR(AA,P_STRING)
 
   FOR I=1 TO A
 
      APPEND BLANK
 
      REPLACE FNAME WITH ALLTRIM(AA[I,1])
 
   ENDFOR
 
   SCAN
 
      SELECT 0
 
      USE (ALLTRIM(T1.FNAME)) ALIAS T2
 
      SCAN
 
         IF UPPER(P_KEY)$UPPER(METHODS) OR UPPER(P_KEY)$UPPER(PROPERTIES)   &&971225C
 
            ?'      '+T1.FNAME
 
            IF NOT FILE(LOGFILE)
 
               STRTOFILE("查詢條件 ["+P_STRING+"] ["+P_KEY+"]"+CRLF,LOGFILE,1)
 
               STRTOFILE([***FORM***]+CRLF,LOGFILE,1)
 
            ENDIF
 
            STRTOFILE(ALLTRIM(T1.FNAME)+CRLF,LOGFILE,1)
 
            EXIT
 
         ENDIF
 
      ENDSCAN
 
      USE IN T2
 
   ENDSCAN
 
   WAIT CLEAR
 
   CLOSE DATABASE
 
   RETURN
 
ENDFUNC
 
********************
 
FUNCTION PROC_MS1
 
********************
 
PARAMETERS P_STRING,P_KEY
 
PRIVATE I,A
 
   WAIT WINDOW [報表搜尋中...] NOWAIT NOCLEAR
 
   CREATE CURSOR T1 (FNAME C(20))
 
   INDEX ON FNAME TAG FNAME
 
   A=ADIR(AA,P_STRING)
 
   FOR I=1 TO A
 
      APPEND BLANK
 
      REPLACE FNAME WITH ALLTRIM(AA[I,1])
 
   ENDFOR
 
   SCAN
 
      SELECT 0
 
      USE (ALLTRIM(T1.FNAME)) ALIAS T2
 
      SCAN
 
         IF UPPER(P_KEY)$UPPER(EXPR) OR UPPER(P_KEY)$UPPER(SUPEXPR)   &&971225C
 
            ?'      '+T1.FNAME
 
            IF NOT FILE(LOGFILE)
 
               STRTOFILE("查詢條件 ["+P_STRING+"] ["+P_KEY+"]"+CRLF,LOGFILE,1)
 
               STRTOFILE([***REPORT***]+CRLF,LOGFILE,1)
 
            ELSE
 
               IF NOT [***REPORT***]$FILETOSTR(LOGFILE)
 
                  STRTOFILE([***REPORT***]+CRLF,LOGFILE,1)
 
               ENDIF
 
            ENDIF
 
            STRTOFILE(ALLTRIM(T1.FNAME)+CRLF,LOGFILE,1)
 
            EXIT
 
         ENDIF
 
      ENDSCAN
 
      USE IN T2
 
   ENDSCAN
 
   CLOSE DATABASE
 
   WAIT CLEAR
 
   RETURN
 
ENDFUNC
 
 | 	  
 
 
方法二:
 
安裝 grep for windows
 
grep -i "my_chk" .\* > _search.txt
 
PS: grep 與 find 最大差別是 grep 可以使用正規表示式! _________________ 一個喜愛Latte的男人 | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		 | 
	 
 
  
  	 
	    
  	   | 
 	
您 無法 在這個版面發表文章 您 無法 在這個版面回覆文章 您 無法 在這個版面編輯文章 您 無法 在這個版面刪除文章 您 無法 在這個版面進行投票 您 無法 在這個版面附加檔案 您 無法 在這個版面下載檔案
  | 
   
  
		 |