这么点数据量,跟配置没有关系,算法问题而已。										
					
	
	
	
			
授人以渔,不授人以鱼。
 程序代码:
程序代码:**********************************************************
*  找出三个字段之间规律的算法:                          *
*  第一个字段,以“[”为界,用LEFT()函数取该界的左侧全部 *
*      当然,从第二条记录开始,该字段的左侧开始部位的取值*
*      应该以上一条记录的最后一个中文字为准;            *
*  第二个字段,很好分界,从“[”开始,到最近的第一个中文 *
*      字前面一个字符结束;                              *
*  第三个字段,从最近的第一个中文字开始,到最近的最后一个*
*      中文字结束。                                      *
**********************************************************
CLOSE ALL
SET DEFAULT TO C:\RR\Foxpro\
SET SAFETY OFF
Cstr=" how often[]肻多久一次 exercise['eks2saiz]v.&n.锻炼;运动 skateboard[]v.踩滑板;参加滑板运动 hardly['ha:dli]adv. 几乎不;几乎没有 ever['ev2]adv. 曾;曾经 shop[60p]v.购物 once[w3ns]adv. 一次 ABC"
IF !FILE("拆分字符串.DBF")
   CREATE TABLE 拆分字符串.DBF FREE ;
      (单词 C(15), 音标 C(20), 汉意 C(30))
ELSE
   USE 拆分字符串.DBF
   ZAP
ENDIF
STORE 1 TO 左边界, 右边界, 左中括号次数, 右中括号次数
字符串长度=LENC(Cstr)
右中括号个数=OCCURS("]",Cstr)
DO WHILE 右边界<字符串长度
   *********************
   *  取第一个字段内容  *
   *********************
   STORE "" TO 单词内容,音标内容,汉意内容
   左中括号位置=ATCC("[",Cstr,左中括号次数)
   右边界=左中括号位置-1
   FOR I=左边界 TO 右边界
      单词内容=单词内容+SUBSTRC(Cstr,I,1)
   NEXT
   *********************
   *  取第二个字段内容  *
   *********************
   左边界=左中括号位置
   右中括号位置=ATCC("]",Cstr,右中括号次数)
   右边界=右中括号位置+1
   DO WHILE 右边界<=字符串长度   &&查找汉字位置
      IF ASC(SUBSTRC(Cstr,右边界,1))>128
         右边界=右边界-1  &&第一个汉字的左边一位就是“音标”字段的结束
         EXIT
      ELSE
         右边界=右边界+1
      ENDIF
   ENDDO
   FOR I=左边界 TO 右边界
      音标内容=音标内容+SUBSTRC(Cstr,I,1)
   NEXT
   *********************
   *  取第三个字段内容  *
   *********************
   左边界=右边界+1
   右边界=左边界
   DO WHILE 右边界<=字符串长度   &&查找汉字位置
      IF ASC(SUBSTRC(Cstr,右边界,1))<129
         右边界=右边界-1  &&第一个非汉字的左边一位就是“汉意”字段的结束
         EXIT
      ELSE
         右边界=右边界+1
      ENDIF
   ENDDO
   FOR I=左边界 TO 右边界
      汉意内容=汉意内容+SUBSTRC(Cstr,I,1)
   NEXT
  
   *******************
   *  插入各字段内容  *
   *******************
   INSERT INTO 拆分字符串.DBF VALUES (LTRIM(单词内容),LTRIM(音标内容),LTRIM(汉意内容))
 
   ***************
   *  重置各位置  *
   ***************
   左边界=右边界+1
   左中括号次数=左中括号次数+1
   右中括号次数=右中括号次数+1
   IF 右中括号次数>右中括号个数
      EXIT
   ENDIF
ENDDO
CLOSE ALL
SET SAFETY OFF
RETURN 程序代码:
程序代码:CLEAR DECLARE LONG GetTickCount IN WIN32API SS=0 Start=GetTickCount() FOR I=1 TO 10000000 SS=SS+1 NEXT ?"FOR 循环1000万次的时间为:"+STR(GetTickCount()-Start,5)+"毫秒"+CHR(13)+CHR(13) FONT "微软雅黑", 12 SS=0 I=1 Start=GetTickCount() DO WHILE I<10000001 SS=SS+1 I=I+1 ENDDO ?"DO WHILE 循环1000万次的时间为:"+STR(GetTickCount()-Start,5)+"毫秒" FONT "微软雅黑", 12 CLEAR DLLS RETURN