亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

Visual FoxPro3.0經驗14條

2019-11-17 05:51:03
字體:
來源:轉載
供稿:網友
 1.怎樣解決不可視類庫操作中庫容量的“惡性膨漲”

  程序員用面向對象編程都會涉及到類庫,但當對象的繼續關系達到兩層以上時(這是很平常的現象),只要一修改兩層以上某個對象中的內容,就會驚異地發現:盡管修改量極小(有時只是簡單的刪除),但每一次的存盤操作都會使類庫的容量(即用DIR看到的字節數)增加很多,有時一次存盤操作可使其“容量”增加幾十K!筆者有一個實際內容只有50K的類庫,當調試完成后,發現該類庫的“容量”是800多K。筆者曾在多臺機器的多個版本上做過試驗,問題依舊。在排除了病毒騷擾的因素后,可以肯定:這是Visual FoXPRo自身固有的缺陷。
  顯然,這個問題給程序開發帶來了不小的麻煩。怎樣解決呢?筆者查過不少資料,做過多次試驗,都不得要領。后來在一次偶然的操作中,卻發現了一個簡單而有效的“類庫消腫”方法:
  ①.打開這個待處理的類庫,進入其中的一個繼續關系最復雜且最高層的對象(即最上層的父類);
 ?、?修改一下該對象中的任一個方法或屬性(即增加一個字符,然后再刪除該字符);
  ③.保存并退出;
  ④.用Close all和Clear all徹底關閉類庫。
  此時再觀察該類庫的字節數,可以發現該類庫的“容量”已恢復正常。

  2.怎樣為備注型字段建索引

  Visual FoxPro3.0不支持長度變化的要害字,但筆者在實驗后發現,假如所建索引的備注型字段的長度在建完索引后不再變化,那么建立備注型字段的索引還是可行的。但在建索引時必須注重:索引的表達式不能直接用備注型的字段名,還要略加變通,如用TRIM()函數把備注型字段括起來,就能順利地為備注型字段建索引。

  3.建立索引的字符型字段答應的最大寬度

  資料中對此沒做說明,經試驗發現,此時索引答應的最大寬度為240個字符。

  4.當某個對象(中的)方法的形參過多時,最好用屬性數組來代替形參

  這種手段可以使主要處理過程的邏輯性更加清楚可讀。
  為了保證實質上的封閉性,屬性數組應該定義在主控方法所在的對象中;為了保證“視覺”上的封閉性(即增強程序代碼的可性),可以讓屬性數組與主控方法同名。
  為了進一步加強主控方法的可讀性,可為其專門增加一個附加方法只用于給做形參的屬性數組賦值。

  5.怎樣在對象中定義屬性數組

  在定義屬性時,直接用方括號給出行列值即可。如:A[5,9],即定義了一個5行9列的屬性數組。

  6.怎樣快速地建立Grid表格

  在程序中使用過Grid表格的程序員都覺得這種表格的建立方法有些麻煩,非凡是當表格的個數及表格項很多的時候,甚至會產生“懼怕感”。其實,只要能靈活地利用VFP的“表單生成器”,就能大大提高Grid表格的制作效率。
  這里假設需要以TTT.DBF為處理對象建立一個Grid表格,因為字段很多,Grid表格的表格項數也相應的多,所以只能采用“變通”的方法,步驟如下:
 ?、?建立一個只有兩個字段的自由表aa.dbf,并使其中的一個字段能與TTT.DBF中的某個字段相關;
 ?、?啟動“表單生成器”,選擇“向導方式”中的“一對多表單向導”;
  ③.在“一對多表單向導”的操作引導下,以aa.dbf為父表、TTT.DBF為子表的基本模式制作表單。在選擇子表字段時,以未來Grid表格的需要來進行TTT.DBF字段的選取。
  ④.打開由第③步制作的表單,剪切表單上的Grid表格,然后再退出該表單;
  ⑤.打開您程序中需要使用Grid表格的表單,把在第④步上剪切的Grid表格復制到當前表單上。
  至此,一個符合程序要求的Grid表格即制作完畢。無論Grid表格多么大,用本方法都能在兩分鐘內做出一個符合要求的Grid表格。而用“手工”制作一個僅50個字段的Grid表格一般需要半個小時(而且還可能出錯)。顯然,Grid表格越大,本方法的效率就越高。

  7.用“避開”的手段使對象中的方法“浮”起來

  所謂讓對象的方法“浮”起來,是指讓該方法運行時,能不受工作區、變量、已打開的數據表等的限制(即不受“現場”的限制),而且不干擾其它方法運行的一種手段。過去在教科書上學到的原則是:先保存“現場”,待處理工作完成后,再恢復“現場”。對VFP等數據庫系統來說,所謂“現場”多是指已經被占用的工作區、當前的磁盤目錄、已打開的數據表以及可能使用或正在使用的數據變量或對象的屬性等。
  因此,我們完全可以用“避開”的方式來達到目的,以下是“避開”法的基本步驟:
  ①.在本方法的起點先聲明變量私有化,記錄好本方法啟動前的工作區及磁盤目錄;
 ?、?尋找并返回一個還未被使用的工作區,在該工作打開一個需要的數據表;
  ③.做本方法的“本職工作”(包括調用其它方法);
 ?、?恢復本方法啟動前的工作區及工磁盤目錄;
 ?、?退出本方法。
  由以上步驟可以看出,“避開”方式的基本要點是“單進單出”,以數據表為例:同一方法打開的數據表必須在該方法退出時關閉。對于工作區、磁盤目錄亦有同樣思路。顯然,這種手段占用的內存要多一些,在DOS時代是不合適的,對于WINDOWS就不是什么問題了。

  8.必須“自造”的幾個通用的對象方法

  以下是幾個用得最多,但在VFP中卻沒有現成可用的方法:

 ?、?在盤上查找指定的數據庫
  LPARAMETERS file_dbc
  Private fff
  fff=trim(file_dbc)
  if len(fff)< 0.8
  &&假如沒指定數據庫,就說明后面要用的那些數據表都是自由表,所以不用打開數據庫

  return .t.
  endif
  IF .not.file('&fff')
  wait windows '在這個目錄下沒找到您指定的數據庫!'

  fff=.F.
  ELSE
  OPEN DATABASE &fff EXCLUSIVE
  fff=.T.
  ENDIF
  return fff

 ?、?在指定的(子)目錄中查找指定的文件

  LPARAMETERS file,Text &&即:文件名,提示信息
  Private All
  ****** Like f*
  fff=trim(file)
  fff1=.t.
  IF .not.file('&fff')
  IF Len(Trim(Text)) >0.5
  &&若提示信息的內容為空則不做暫停顯示
  wait windows Text
  ENDIF
  fff1=.f.
  ENDIF
  return fff1

  ③.尋找并返回一個還未被使用的工作區

  Private ALL
  for I=1 to 10
  aaa_m=alias(I)
  if len(trim(aaa_m))< 0.5
  return I
  endif
  endfor
  return 0

 ?、?建立一個指定的目錄

  LPARAMETERS dire &&待建的目錄名
  Private All Like f*
  fff='set Library to '+trim(This.path_FTS)
  +'/Foxtools.FLL Additive'
  &fff
  *set Library to Foxtools.FLL Additive
  fff1=.f.
  fff=trim(dire)
  if mkdir(fff)=0
  fff1=.t. &&建立成功
  endif
  set Library to
  return fff1

  9.快速查詢備注字段

  在對備往字段進行全文查找時,用ATC()函數比用AT-CLIEN()函數快數倍。

  10.最近匹配檢索

  在使用索引查找命令之前先設置“SET NEAR ON”有時極有用處,該設置的含義為:當查找失敗時,記錄號定位于最接近匹配的位置上,而不是在數據庫的末尾。比如對一個已打開日期字段索引的庫,想瀏覽3月5日之后的記錄,但事先只知道庫中有許多不連續的日期記錄,并不知道庫中是否確有3月5日的記錄。假如設置了“SET NEAR ON”,當庫中不存在3月5日的記錄時,就會定位在離3月5日最接近的3月6日或7日記錄處,從而達到查詢瀏覽目的。

  11.檢測某類文件

  函數FIEL()只能檢測某特定文件是否存在,不能檢測某類文件是否存在,而系統函數SYS(2000,<文件名>)則可搜尋某類文件,只要參數“文件名”中含有通配符“*?”即可。用這個方法還可以判定某子目錄是否為空,只要“文件名”用“路徑名”和“*.*”組成即可。

  12.保護屏幕畫面

  當在數據庫環境下調用DOS命令時,命令執行后輸出的信息往往會破壞數據庫環境已有的屏幕畫面。當然用保存屏幕再恢復的方法可以解決,但不如使用Dos的輸出重定向功能為好,這樣輸出的信息就不會向屏幕顯示。比如命令“RUN COPY ABC.* A:”可以改為:

  RUN COPY ABC.* A: >ttt.txt
  此時可將本來要輸出到屏幕的信息改道輸入到臨時文件ttt.Txt中去,保持屏幕不變。

  13.調用大尺寸外部程序

  在FoxPro環境下可以用RUN()命令直接調用外部Dos命令,但有時剩下的內存已不多,而外部程序又很大時就可能調用失敗。在FoxPro中有個內存治理程序FoxSWAP可以解決這個問題。調用WP5的命令可以寫為:

  RUN/120 wps

  14.用覆差法更新數據

  假如一個很大的數據庫需要經常進行數據更新,是好不要用刪除舊記錄再增加新記錄的方法,因為大數據庫的物理刪除PACK命令執行起來需要很長時間。此時最好用覆蓋的方法,即把新記錄的內容一一裝人舊記錄中。而這個過程最好用SCATTER命令和GATHER命令配合起來完成,前者的作用是把一條記錄的所有字段內容存人一個數組變量中,后者的作用則是把數組變量的內容存入一條記錄中。也就是說借用內存變量把新記錄的內容傳遞到舊記錄中,內存操作顯然比磁盤操作要快得多。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
18性欧美xxxⅹ性满足| 欧美精品videosex牲欧美| 国产精品吹潮在线观看| 国产不卡视频在线| 国产日韩av高清| 成人写真视频福利网| 亚洲免费电影一区| 欧美野外wwwxxx| 亚洲国产精品资源| 久久久久久亚洲精品不卡| 国产精品美女免费| 91久久国产婷婷一区二区| 日韩电影免费在线观看中文字幕| 中文字幕亚洲一区二区三区五十路| 亚洲欧洲成视频免费观看| 欧美电影免费观看电视剧大全| 亚洲人成电影网站色xx| 欧美激情图片区| 国产亚洲人成网站在线观看| 日韩色av导航| 亚洲精品一区二区久| www.国产精品一二区| 这里只有精品丝袜| 国产精品亚洲自拍| 九九久久精品一区| 精品福利免费观看| 国产精品久久久久久久av大片| 成人妇女免费播放久久久| 国产精品久久久久久av福利软件| 狠狠躁夜夜躁人人爽超碰91| 色综合伊人色综合网| 午夜精品国产精品大乳美女| 一区二区三区黄色| 久久久久久久久久久亚洲| 午夜精品久久久久久久男人的天堂| 97超视频免费观看| 国产精品欧美在线| 综合激情国产一区| 亚洲a级在线播放观看| 欧美裸身视频免费观看| 亚洲wwwav| 久久久国产精品亚洲一区| 俺也去精品视频在线观看| 中文字幕在线视频日韩| 日韩av一区二区在线观看| 91社影院在线观看| 亚洲色图色老头| 国产亚洲欧洲高清一区| 91九色视频导航| 黑丝美女久久久| 国产精品久久久久免费a∨| 日韩欧美精品免费在线| 亚洲午夜小视频| 在线视频欧美日韩| 国产综合在线看| 亚洲欧美日韩爽爽影院| 精品日本美女福利在线观看| 大伊人狠狠躁夜夜躁av一区| 国产成人精品一区二区三区| 精品一区二区电影| 精品福利免费观看| 精品久久久久久久久国产字幕| 日本精品在线视频| 91精品国产高清自在线| 中文字幕欧美精品日韩中文字幕| 一个人看的www欧美| 91手机视频在线观看| 俺去亚洲欧洲欧美日韩| 亚洲男人天堂久| 亚洲国产精彩中文乱码av| 精品香蕉在线观看视频一| 欧美成人全部免费| 久久亚洲春色中文字幕| 色综合男人天堂| 97在线看福利| 2020欧美日韩在线视频| 国产精品日韩欧美大师| 欧美日韩第一页| 亚洲性69xxxbbb| 亚洲一区二区三区在线免费观看| 久久的精品视频| 美女久久久久久久久久久| 91av免费观看91av精品在线| 欧美野外wwwxxx| 日韩电影免费观看在线| 韩国19禁主播vip福利视频| 亚洲成人999| 亚洲午夜精品久久久久久性色| 成人黄色在线播放| 精品伊人久久97| 国产在线视频欧美| 国产91色在线播放| 欧美一区亚洲一区| 韩国精品美女www爽爽爽视频| 国产日韩一区在线| 成人看片人aa| 久久影视免费观看| 欧美极品欧美精品欧美视频| 91精品国产自产在线老师啪| 精品久久久中文| 欧美国产日韩一区二区三区| 欧美国产精品va在线观看| 成人淫片在线看| 国产成人综合精品| 亚洲国产美女精品久久久久∴| 日韩中文字幕在线视频| 日韩高清中文字幕| 亚洲aⅴ日韩av电影在线观看| 午夜精品一区二区三区在线播放| 成人亚洲激情网| 欧美精品福利在线| 亚洲在线一区二区| 日本人成精品视频在线| 欧美日韩精品在线视频| 久久青草精品视频免费观看| 国产盗摄xxxx视频xxx69| 国产精品久久999| 91探花福利精品国产自产在线| 日韩av电影国产| 俺去亚洲欧洲欧美日韩| 欧美中文字幕在线观看| 57pao成人国产永久免费| 日韩女优人人人人射在线视频| 久久久久久久久久国产精品| 色综合久久中文字幕综合网小说| 亚洲午夜激情免费视频| 色噜噜狠狠色综合网图区| 91爱视频在线| 国产亚洲人成网站在线观看| 久久精品国产亚洲一区二区| 日韩在线中文字| 亚洲精品一区二区三区婷婷月| 伊人久久久久久久久久久| 精品国产91乱高清在线观看| 91免费精品国偷自产在线| 亚洲xxx视频| 成人av在线天堂| 国产精品久久久久久久9999| 亚洲成色777777女色窝| 色樱桃影院亚洲精品影院| 国产区精品视频| 国内精品400部情侣激情| 日韩中文字幕视频在线观看| 国产精品h片在线播放| 精品成人国产在线观看男人呻吟| 欧美亚洲第一页| 久久久久免费精品国产| 亚洲精品美女久久久久| 欧美性一区二区三区| 亚洲精品免费一区二区三区| 久久久精品国产一区二区| 日本一区二区在线免费播放| 7m第一福利500精品视频| 欧美性猛交xxxx免费看| 国产精品免费看久久久香蕉| 91最新国产视频| 精品国产一区二区三区久久久狼| 亚洲影视九九影院在线观看| 亚洲国产美女精品久久久久∴| 久久久精品免费| 日韩在线视频观看| 欧美在线欧美在线| 亚洲第五色综合网| 色哟哟亚洲精品一区二区|