亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? unit1.pas

?? 用于數據格式的相互轉換,可以將txt、dbf轉換成excel。
?? PAS
?? 第 1 頁 / 共 3 頁
字號:
unit Unit1;

interface

uses
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    Dialogs, StdCtrls, Grids, DBGrids, DB, ADODB, DBTables, StrUtils, ComObj,
     OleServer, ExcelXP,WinSkinStore, WinSkinData;

type
    TForm1 = class(TForm)
    DataSource1: TDataSource;
    DBGrid1: TDBGrid;
    BtnE2OD: TButton;
    OpenDialog1: TOpenDialog;
    receive: TMemo;
    Database1: TDatabase;
    ADOQuery1: TADOQuery;
    ADOCommand1: TADOCommand;
    BtnExit: TButton;
    BtnE2ND: TButton;
    BtnE2Jc: TButton;
    BtnJcdnb2Txt: TButton;
    BtnE2Txt: TButton;
    BtnAllDone: TButton;
    ChkDxh: TCheckBox;
    EdBH: TEdit;
    Label1: TLabel;
    RBRb: TRadioButton;
    RBHg: TRadioButton;
    procedure BtnE2ODClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure BtnExitClick(Sender: TObject);
    procedure BtnE2JcClick(Sender: TObject);
    procedure BtnJcdnb2TxtClick(Sender: TObject);
    procedure BtnE2NDClick(Sender: TObject);
    procedure BtnE2TxtClick(Sender: TObject);
    procedure BtnAllDoneClick(Sender: TObject);
    private
        { Private declarations }
    public
        function PackDbf():Boolean;
        function CopyDbfFile(NewFileStr,OldFileTp: string):Boolean;
        function WriteFile(FileName,Buffer: string):Boolean;
        function OpenDialogFun(FileExt: string):Boolean;
        function Jcdnb2Txt(FileName: string):Boolean;
        function E2OD():Boolean;
        function E2Jc(Jc2Txt: Boolean;JcFlag: Byte):Boolean;
        function E2ND():Boolean;
        function E2Txt():Boolean;
        procedure EnableButton(BEnable: Boolean);
    end;

var
    Form1: TForm1;
    ConStr,JcdnbConStr,NewConStr: string;
    DbfTmp,DbfTemp: string;
implementation

{$R *.dfm}


{
//修改記錄:
//修改日期:2009.3.31
//修改內容:1、增加是否按段序排序功能;
            2、增加新抄表庫表號補充字符功能
            3、對數值型字段進行容錯處理
            4、形成版本1.10
}


//選擇Excel表
procedure TForm1.BtnE2ODClick(Sender: TObject);
begin
    if not OpenDialogFun('xls') then exit;
    EnableButton(false);
    E2OD();
    EnableButton(true);
end;

//拷貝文件(NewFileName,OldFileName)
function TForm1.CopyDbfFile(NewFileStr,OldFileTp: string):Boolean;
var
    NewFileName: string;
    OldFileName: string;
    NewFile: TFileStream;
    OldFile: TFileStream;
begin
    result := True;
    NewFileName := ExtractFilePath(application.ExeName) + NewFileStr;
    OldFileName := ExtractFilePath(application.ExeName) + OldFileTp;

    OldFile := TFileStream.Create(OldFileName, fmOpenRead or fmShareDenyWrite);
    try
        if FileExists(NewFileName) then DeleteFile(NewFileName);
        NewFile := TFileStream.Create(NewFileName, fmCreate {or fmShareDenyRead});
        try
            NewFile.CopyFrom(OldFile, OldFile.Size);
            FreeAndNil(NewFile);
        except
            result := false;
            FreeAndNil(NewFile);
            FreeAndNil(OldFile);
            exit;
        end;
        FreeAndNil(OldFile);
    except
        result := false;
        FreeAndNil(OldFile);
    end;
    
end;

//寫文件(NewFileName,OldFileName)
function TForm1.WriteFile(FileName,Buffer: string):Boolean;
var
    FileHandle: TFileStream;
    p: Array of Char;
begin
    result := true;
    FileName := ExtractFilePath(application.ExeName) + FileName;
    try
        FileHandle := TFileStream.Create(FileName, fmOpenReadWrite);
        FileHandle.Seek(0,soEnd);
        SetLength(p, length(Buffer));
        StrPCopy(PChar(p), Buffer);
        FileHandle.Write(p[0], length(p));
        FreeAndNil(FileHandle);
    except
        FreeAndNil(FileHandle);
        result := false;
    end;
end;

//對話框公用函數(FileExt)
function TForm1.OpenDialogFun(FileExt: string):Boolean;
begin
    result := false;

    OpenDialog1.Title := '選擇文件';
    OpenDialog1.Filter := '(*.*)|*.*';
    OpenDialog1.FileName := '';
    OpenDialog1.InitialDir := ExtractFilePath(application.ExeName);
    if AnsiUpperCase(FileExt) = 'XLS' then
    begin
        OpenDialog1.Title := '選擇Excel文件';
        OpenDialog1.Filter := 'Excel文件(*.xls)|*.xls';
    end;
    if AnsiUpperCase(FileExt) = 'DBF' then
    begin
        OpenDialog1.Title := '選擇抄表機調試庫文件';
        OpenDialog1.Filter := 'Foxpro自由表文件(*.dbf)|*.dbf';
    end;

    if not OpenDialog1.Execute then exit;
    if OpenDialog1.FileName = '' then exit;
    result := true;
end;

function TForm1.Jcdnb2Txt(FileName: string):Boolean;
var
    ExcelStr, dbfstr: string;
    FileNum : integer;
begin
    result := true;
    try
        receive.Lines.Add(OpenDialog1.Files.CommaText);
        self.Cursor := crhelp;
        for FileNum := 0 to (OpenDialog1.Files.Count-1) do
        begin
            dbfstr := ExtractFileName(OpenDialog1.Files.Strings[FileNum]);
            if FileName <> '' then dbfstr := FileName;
            if AnsiUpperCase(rightstr(dbfstr, 3)) = 'DBF' then
                receive.Lines.Add('正在處理' + dbfstr + ',請稍后...');
            ExcelStr := dbfstr;
            ExcelStr := ChangeFileExt(ExcelStr, '.txt'); //改后綴名
            ExcelStr := StringReplace(ExcelStr, ' ', '', [rfReplaceAll]); //'Abcd'  置換字符串
            if Pos('jcdnb', ExcelStr) = 1 then
                ExcelStr := rightbstr(ExcelStr, length(ExcelStr)-5);
            receive.Lines.Add('正在處理' + trim(ExcelStr));
            CopyDbfFile('Txt\' + trim(ExcelStr),'Temp.tx');

            ADOQuery1.ConnectionString := JcdnbConStr;
            ADOQuery1.SQL.Clear;
            if FileExists(ExtractFilePath(application.ExeName) + 'jcdnb\' + DbfTemp) then
                DeleteFile(ExtractFilePath(application.ExeName) + 'jcdnb\' + DbfTemp);
            RenameFile(ExtractFilePath(application.ExeName) + 'jcdnb\' + dbfstr,
                ExtractFilePath(application.ExeName) + 'jcdnb\' + DbfTemp);
            ADOQuery1.SQL.Add('select * from  ' + DbfTemp);
            ADOQuery1.Open;

            Application.ProcessMessages;
            while not ADOQuery1.Eof do
            begin
                receive.Lines.Add(ADOQuery1.Fields[7].AsString+ ' , '+
                    ADOQuery1.Fields[13].AsString);

                WriteFile('Txt\' + trim(ExcelStr),ADOQuery1.Fields[7].AsString +
                    ADOQuery1.Fields[13].AsString+#13#10);
                ADOQuery1.Next;
            end;
            ADOQuery1.Close;
            if FileExists(ExtractFilePath(application.ExeName) + 'jcdnb\' + dbfstr) then
                DeleteFile(ExtractFilePath(application.ExeName) + 'jcdnb\' + dbfstr);
            RenameFile(ExtractFilePath(application.ExeName) + 'jcdnb\' + DbfTemp,
                ExtractFilePath(application.ExeName) + 'jcdnb\' + dbfstr);
            
            receive.Lines.Add('處理' + OpenDialog1.Files.Strings[FileNum] + '完畢,進行下一個操作!');
            if FileName <> '' then exit;
        end;

        receive.Lines.Add(' 處理dbf文件完畢,謝謝使用??!');
        self.Cursor := crdefault;
    except
        ADOQuery1.Close;
        receive.Lines.Add('請檢查dbf文件,確認信息正確??!');
        self.Cursor := crdefault;
        result := false;
    end;
end;

function TForm1.E2Jc(Jc2Txt: Boolean;JcFlag: Byte) :Boolean;
var
    ExcelStr, dbfstr, tempstr: string;
    i, j, FileNum, RowStart: integer;
    BH,DZ,CLDH,CJZDCLDH,JZQH,CJQH: integer;
    ExcelApp, aSheet: Variant;
begin
    result := true;
    try
        receive.Lines.Add(OpenDialog1.Files.CommaText);
        self.Cursor := crAppStart;
        ExcelApp := CreateOLEObject('Excel.Application');
        for FileNum := 0 to (OpenDialog1.Files.Count-1) do
        begin
            dbfstr := ExtractFileName(OpenDialog1.Files.Strings[FileNum]);
            if AnsiUpperCase(rightstr(dbfstr, 3)) = 'XLS' then
                receive.Lines.Add('正在處理' + OpenDialog1.Files.Strings[FileNum] + ',請稍后...');
            ExcelStr := ExtractFileName(OpenDialog1.Files.Strings[FileNum]);
            ExcelStr := ChangeFileExt(ExcelStr, '.dbf'); //改后綴名
            if JcFlag = 0 then
                ExcelStr := 'Rbjcdnb' + StringReplace(ExcelStr, ' ', '', [rfReplaceAll]); //'Abcd'  置換字符串
            if JcFlag = 1 then
                ExcelStr := 'Hgjcdnb' + StringReplace(ExcelStr, ' ', '', [rfReplaceAll]); //'Abcd'  置換字符串
            receive.Lines.Add('正在處理' + trim(ExcelStr));
            CopyDbfFile('jcdnb\' + DbfTmp,'jcdnb.db');

            ADOQuery1.ConnectionString := JcdnbConStr;
            ADOQuery1.SQL.Clear;
            ADOQuery1.SQL.Add('select * from ' + DbfTmp);
            ADOQuery1.Open;

            ExcelApp.workBooks.Open(OpenDialog1.Files.Strings[FileNum]);
            aSheet := ExcelApp.Worksheets[1];
            ExcelApp.Worksheets[1].activate;
            //判斷起始行
            for RowStart := 1 to 10 do
            begin
                j := 0;
                for i := 1 to 10 do
                begin
                    if length(VarToStrDef(ExcelApp.Cells[RowStart, i].Value, '')) > 0 then
                        j := j + 1;
                end;

                if j >= 2 then break;
            end;

            if j < 2 then
            begin
                    //  showmessage('起始行!'+inttostr(RowStart));
                    // showmessage('此Excel文件錯誤!');
                    // exit;
            end;
            //判斷起始行


            //判斷  項目XMNUM  表號BHNUM 地址DZNUM 段號DHNUM  段序號DXHNUM
            for i := 1 to 50 do
            begin //i is column

                if Pos('表號', VarToStrDef(ExcelApp.Cells[RowStart, i].Value, '')) > 0 then
                    BH := i;

                if Pos('地址', VarToStrDef(ExcelApp.Cells[RowStart, i].Value, '')) > 0 then
                    DZ := i;

                if Pos('集中器', VarToStrDef(ExcelApp.Cells[RowStart, i].Value, '')) > 0 then
                    JZQH := i;

                if Pos('采集器', VarToStrDef(ExcelApp.Cells[RowStart, i].Value, '')) > 0 then
                    CJQH := i;
            end;

{    ExcelWorksheet1.UsedRange.Sort();
            aSheet.UsedRange.sort(A2,xlAscending,B2,
                xlSortValues,xlAscending,C2,xlDescending,xlYes,1,
                False,xlSortRows,xlPinYin,xlSortNormal,xlSortNormal,xlSortNormal);
}
            Application.ProcessMessages;
            tempstr := FormatDateTime('yyyy-mm-dd hh:mm:ss', now);
            CLDH := 1;
            CJZDCLDH := 1;
            for i := RowStart + 1 to aSheet.UsedRange.Rows.Count do
            begin //  aSheet.UsedRange.Rows.Count
                if VarToStrDef(ExcelApp.Cells[i, BH].Value, '') = '' then continue; //遇到總戶號為空跳過
                if dbfstr = rightstr('000000000' +
                    VarToStrDef(ExcelApp.Cells[i, BH].Value, ''), 9) then continue;//表號相同跳過

                receive.Lines.Add(rightstr('000000000' + VarToStrDef(ExcelApp.Cells[i, BH].Value, ''), 9)+ ' , '+
                    rightstr('000000000000' + VarToStrDef(ExcelApp.Cells[i, JZQH].Value, ''), 12));

                ADOQuery1.Append;
                ADOQuery1.Fields[0].AsString := rightstr('000000000000' + VarToStrDef(ExcelApp.Cells[i, JZQH].Value, ''), 12); //JZQH
                ADOQuery1.Fields[1].AsString := rightstr('000000000' + VarToStrDef(ExcelApp.Cells[i, BH].Value, ''), 9);  //BH
                ADOQuery1.Fields[2].AsString := VarToStrDef(ExcelApp.Cells[i, DZ].Value, ''); //DZ
                ADOQuery1.Fields[3].AsString := inttostr(CLDH); //CLDH
                ADOQuery1.Fields[4].AsString := '3'; //DKH
                ADOQuery1.Fields[5].AsString := '1'; //TXGY
                if JcFlag = 0 then
                    ADOQuery1.Fields[6].AsString := '1'; //DBLX
                if JcFlag = 1 then
                    ADOQuery1.Fields[6].AsString := '0'; //DBLX
                ADOQuery1.Fields[7].AsString := rightstr('000000000000' + VarToStrDef(ExcelApp.Cells[i, BH].Value, ''), 12); //TXDZ
                if JcFlag = 0 then
                    ADOQuery1.Fields[8].AsString := '0000'; //TXMM
                if JcFlag = 1 then
                    ADOQuery1.Fields[8].AsString := '123456'; //TXMM
                if JcFlag = 0 then

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品美女久久久久久久网站| 韩日av一区二区| 欧美96一区二区免费视频| 成人精品小蝌蚪| 日韩欧美一级在线播放| 亚洲免费观看高清完整版在线观看| 老司机精品视频导航| 欧美伊人精品成人久久综合97| 国产亚洲精品bt天堂精选| 亚洲第一精品在线| 91色乱码一区二区三区| 久久久久九九视频| 久久91精品久久久久久秒播| 欧美日韩在线亚洲一区蜜芽| 成人欧美一区二区三区1314 | 成人av影院在线| 日韩免费观看高清完整版 | 美女爽到高潮91| 欧美午夜影院一区| 亚洲男同1069视频| av在线不卡观看免费观看| 国产欧美日韩久久| 国产不卡视频在线观看| 26uuu久久天堂性欧美| 久久精品999| 日韩免费性生活视频播放| 日韩成人免费电影| 欧美日韩精品一区视频| 亚洲最新视频在线观看| 欧美在线小视频| 亚洲在线观看免费视频| 欧美日韩精品一二三区| 亚洲国产成人av网| 欧美人牲a欧美精品| 日韩成人一区二区| 日韩欧美国产一区在线观看| 捆绑调教一区二区三区| 久久久夜色精品亚洲| 国产乱国产乱300精品| 国产丝袜欧美中文另类| av成人老司机| 亚洲精品免费视频| 欧美一a一片一级一片| 偷拍日韩校园综合在线| 日韩欧美一级片| 国产91精品精华液一区二区三区 | 亚洲激情在线激情| 欧美偷拍一区二区| 蜜臀久久久99精品久久久久久| www国产精品av| 成人精品免费看| 亚洲蜜桃精久久久久久久| 欧美美女黄视频| 国模娜娜一区二区三区| 国产精品理论在线观看| 在线影视一区二区三区| 日韩影院精彩在线| 欧美国产精品中文字幕| 日本高清不卡aⅴ免费网站| 亚洲另类春色校园小说| 欧美电影一区二区三区| 国产一区二区91| 亚洲人成精品久久久久久| 91 com成人网| 国产xxx精品视频大全| 日韩一区欧美小说| 91精品一区二区三区久久久久久 | 日本不卡在线视频| 中文字幕不卡在线| 欧美精品在线一区二区| 成人午夜在线免费| 亚洲va欧美va天堂v国产综合| 久久久久久麻豆| 欧美人与z0zoxxxx视频| 国产成人综合视频| 亚洲成人免费影院| 国产欧美视频一区二区| 欧美日韩精品福利| 99视频一区二区| 久久99热99| 亚洲午夜羞羞片| 国产亚洲婷婷免费| 91精品国产麻豆国产自产在线| 成人一区二区三区| 久久99蜜桃精品| 午夜精品福利一区二区三区av | 亚洲一区成人在线| 国产欧美综合色| 日韩午夜中文字幕| 欧美综合色免费| 99久久精品久久久久久清纯| 精品中文字幕一区二区| 天天影视涩香欲综合网| 亚洲精品国久久99热| 国产精品无人区| 精品成人一区二区| 日韩一区二区视频在线观看| 欧美亚洲综合色| 日本韩国精品一区二区在线观看| 国产成人综合亚洲91猫咪| 国内精品久久久久影院一蜜桃| 香蕉加勒比综合久久| 亚洲综合视频在线| 亚洲精品乱码久久久久| 中文字幕一区二区三区四区不卡| 中文字幕国产精品一区二区| 精品福利一区二区三区| 欧美www视频| 日韩欧美国产电影| 欧美大片在线观看| 精品人伦一区二区色婷婷| 日韩欧美国产午夜精品| 日韩美女天天操| 精品免费日韩av| 精品国产91久久久久久久妲己| 91精品国产高清一区二区三区蜜臀 | 蜜桃av噜噜一区二区三区小说| 亚洲国产一区二区三区| 香蕉久久夜色精品国产使用方法| 亚洲国产精品久久久久婷婷884| 亚洲一区在线播放| 亚洲成人激情自拍| 蜜臀久久99精品久久久久宅男 | 午夜视频一区在线观看| 亚洲成人动漫一区| 乱中年女人伦av一区二区| 国产一区二区三区在线观看免费| 国产a精品视频| 91最新地址在线播放| 在线亚洲+欧美+日本专区| 欧美日韩亚洲另类| 欧美电影免费观看高清完整版在线| 欧美本精品男人aⅴ天堂| 亚洲国产精品av| 亚洲午夜精品网| 精品写真视频在线观看| 国产不卡免费视频| 欧美吻胸吃奶大尺度电影| 日韩精品中午字幕| 国产精品久久三| 亚洲v日本v欧美v久久精品| 激情国产一区二区| 一本色道久久综合亚洲91| 欧美美女直播网站| 国产精品视频看| 亚洲国产aⅴ天堂久久| 久久99精品久久久久婷婷| 91美女视频网站| 欧美不卡一区二区| 一区二区三区视频在线看| 美女网站视频久久| 色欲综合视频天天天| 精品久久久久久久久久久久包黑料| 国产精品女同一区二区三区| 日韩精品成人一区二区三区| 国产一区 二区| 欧美综合天天夜夜久久| 国产日本欧美一区二区| 午夜影院久久久| 成人丝袜高跟foot| 日韩欧美美女一区二区三区| 亚洲女厕所小便bbb| 国产一区二区不卡| 日韩一区二区三区视频| 国产精品素人视频| 另类人妖一区二区av| 欧美日韩综合在线免费观看| 中文字幕av在线一区二区三区| 免费三级欧美电影| 日本韩国欧美一区二区三区| 国产亲近乱来精品视频| 日韩中文字幕区一区有砖一区 | 日本美女一区二区| 97se亚洲国产综合自在线不卡| 精品va天堂亚洲国产| 亚洲成人激情自拍| 91国偷自产一区二区开放时间| 国产日韩欧美制服另类| 狠狠色丁香婷综合久久| 欧美精品国产精品| 亚洲国产乱码最新视频| 97se狠狠狠综合亚洲狠狠| 久久精品免视看| 国产美女视频91| 日韩色视频在线观看| 午夜视频一区二区三区| 欧美天堂亚洲电影院在线播放| 亚洲色图.com| av一二三不卡影片| 国产精品久久久久aaaa樱花| 国产精一品亚洲二区在线视频| 欧美草草影院在线视频| 美女视频网站黄色亚洲| 精品乱人伦一区二区三区| 奇米精品一区二区三区四区 | 欧美日韩精品一区二区三区四区 | 成人免费毛片a| 国产欧美一区二区三区沐欲| 九九九久久久精品| 2021中文字幕一区亚洲|