• <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        當(dāng)前位置:雨林木風(fēng)下載站 > 技術(shù)開發(fā)教程 > 詳細(xì)頁面

        文本數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫的辦法

        文本數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫的辦法

        更新時(shí)間:2022-05-13 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

        有一段人事檔案資料archive.txt,內(nèi)容如下:
          小許男21工程師
          小吳女23助理工程師
          小蔡男22助理工程師
          小牟女22工程師

          要將它轉(zhuǎn)入數(shù)據(jù)庫archive.dbf中,archive.dbf結(jié)構(gòu)如下:
          姓名,性別,年齡,職稱

          怎么辦呢?現(xiàn)在通過使用delphi編程,很好地解決了這個(gè)難題。Delphi提供了許多功能強(qiáng)大,豐富的字符處理函數(shù)和過程,常用的有:
          (1)function Length(S:String):Integer//返回串的長度
          (2)function Copy(S:String;Index,Count:Integer):String//給出一個(gè)字符串中串的拷貝
          (3)function Pos(Substr:String;S:String);Integer//查找子串在字符串中的位置
          (4)Procedure Delete(VarS:String;Index,Count:Integer);  //從一個(gè)字符串中去除子串

          利用Delphi提供的已有函數(shù)和過程基礎(chǔ)上編制自己的三個(gè)函數(shù),實(shí)現(xiàn)了純文本格式資料轉(zhuǎn)入數(shù)據(jù)庫功能。只要Delphi支持的數(shù)據(jù)庫都可以支持。

          archive.txt中每行數(shù)據(jù)為一個(gè)字符串,字符串中每個(gè)被分割的數(shù)據(jù)為一個(gè)字段,分割每個(gè)字段的字符為分割符,這里是空格,也可以是,、;、#等符號(hào)。具體思想是:先將字符串進(jìn)行調(diào)整,然后把串中每個(gè)字符同分割符比較,將不是分割符的字符追加到MyStr串中,最后得到一個(gè)字段的內(nèi)容。通過一個(gè)循環(huán),就可以將一個(gè)字符串分成幾個(gè)字段。

          Function Regulate(aString,Sepchar:string):string   //去掉多余的分割符,規(guī)范字符串
          Function GetSubStr(varsString:string;SepChar:String):String;  //得到字符串中一個(gè)子串,因要改變參數(shù)aString的值,所以將它用var定義。
          FunctionGetSubStrNum(aString,SepChar:String):Integer;  //計(jì)算一個(gè)字符串要被分割成幾個(gè)字段。
          參數(shù):aString是所需分割的一個(gè)字符串,SepChar是分割符。

          Function RegulateStr(aString:String;Sepchar:String):String;  
          var
            i,Num:Integer;
            Flag:Boolean;
            MyStr,TempStr:String;
          begin
            Flag:=False;//進(jìn)行標(biāo)志,去除多余的分割符
            Num:=Length(aString);//計(jì)算aString串的長度
            for i:=1 to Num do
            begin
              TempStr:=Copy(aString,i,1);//取aString串中的一字符
              if TempStr <> SepChar then
              begin
                MyStr:=MyStr+TempStr;
                Flag:=True;
              end
              else
                if(Flag = True)then
                begin
                  Mystr:=Mystr+TempSrt;
                  Flag:=False;
                end;
            end;
            if  MyStr[Length(MyStr)] <> SepChar then
             MyStr:=MyStr+SepChar;
            RegulateSrt:=MyStr;
          end;

          Function GetSubStr(var aString:String,SepChar:Strign):String;
          var
            Mysrt:String;
            StrLen:Integer;
            SepCharPso:Integer;
          begin
            StrLen:=Length(aString);
            SepCharPos:=Pos(SepChar,aString);//計(jì)算分割符在子串中的位置
            MyStr:=Copy(aString,1,SepCharPos-1); //將分割符前所有字符放到mystr串中
            Delete(aString,1,SepCharPos);//除去分割符和分割符前的子串
            GetSubStr:=MyStr;//返回一個(gè)字段
          end;

          FunctionTforml.GetSubStrNum(aString:String;SepChar:String):Integer;
          var
            i:Integer;
            StrLen:Integer;
             Num:Integer;
          begin
            StrLen:=Length(aString);
            Num:=0;
            for i:=1 to StrLen do
              if Copy(aString,i,1) = SepCharthen
                Num:=Num+1;
            GetSubSrtNum:=Num;
          end;

          有了上面三個(gè)函數(shù),現(xiàn)在介紹一下具體的應(yīng)用:
          1.首先建立一個(gè)窗體Forml,加入一個(gè)RichEditl(或Menol),一個(gè)按鈕Buttonl和一個(gè)Tablel,設(shè)置Tablel的屬性:
          Tablell.DataBase = 'c:\Archivs'
          Tablell.TableName ='Archive.dbf'

          2.分別加入以下程序:
          Const Space= ''
          ProcedureTForml.FormCreate(Sender:Tobject);
          begin
            RichRditl.Lines.LoadFromFile('Archive.txt');
          end;

          ProcedureTForml.Button1Click(Sender:Tobject);
          var
            i,j:Integer;
             MyLine:String;
          begin
            with Tablel do
            begin
               Open;
                for i:=0 to RichEditl.Lines.Count-1 do
                begin
                MyLine:=RegulateStr(Richeditl.Lines[i],Space);
                for j:=1 to Num do  
                begin
                  Append;
                  fileds[j-1].aString:=GetSubSrt(MyLine,Space));
                  post;
                end;
              end;
            end;
          end; 

        溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!

        本類教程下載

        系統(tǒng)下載排行

        主站蜘蛛池模板: 日本红怡院亚洲红怡院最新| 99精品一区二区免费视频| 免费观看男人吊女人视频| 日本高清色本免费现在观看| 久久久亚洲裙底偷窥综合| yy一级毛片免费视频| 国产a不卡片精品免费观看| 亚洲伦理中文字幕| 免费国产污网站在线观看15 | 色窝窝亚洲AV网在线观看| 91免费精品国自产拍在线不卡| 亚洲av无码国产精品色午夜字幕| 好吊色永久免费视频大全| 国产zzjjzzjj视频全免费| 亚洲熟妇无码av另类vr影视| 2021免费日韩视频网| 久久亚洲日韩精品一区二区三区| 午夜不卡久久精品无码免费| 亚洲无线码一区二区三区| 中文字幕高清免费不卡视频| 亚洲午夜精品第一区二区8050| 四虎精品成人免费视频| 免费在线观看亚洲| 高清免费久久午夜精品 | 国产久爱免费精品视频 | 亚洲国产成人久久综合一| 免费成人高清在线视频| 久久亚洲精品成人AV| 91成年人免费视频| 国产偷国产偷亚洲清高APP| 久久亚洲中文字幕精品一区四| 国产精品白浆在线观看免费| 亚洲综合偷自成人网第页色| 国产一区二区三区无码免费| A片在线免费观看| 在线观看亚洲AV日韩A∨| 久久久久无码专区亚洲av| 18国产精品白浆在线观看免费| 老司机午夜精品视频在线观看免费 | 国产成人综合亚洲AV第一页 | 五月天国产成人AV免费观看|