主頁 > 後端開發 > 用DELPHI 從固定格式文本檔案提取資料寫入到資料庫

用DELPHI 從固定格式文本檔案提取資料寫入到資料庫

2020-09-22 20:43:23 後端開發

最近在做一個股票分析系統,想把股票系統下載的F10 資料檔案內股東人數資料讀入SQL SERVER 表內
具體情況:
系統環境 :win7   SQL SERVER 2008 DELPHI

股東人數資料已經匯出,存在文本檔案內(.TXT檔案內)     如600100.TXT, 共有2000多個文本檔案
現考慮用Delphi批量讀入SQL SERVER,不知有無好的辦法,  也可考慮用SQL SERVER 直接讀入,

請教各位,謝謝!

uj5u.com熱心網友回復:

關鍵看文本內容的格式

uj5u.com熱心網友回復:

文本是.TXT格式,想取出“股東戶數”里的環比變化(%)里的數值,文本檔案的名字是股票代碼
文本檔案格式如下所示:
  ◆  大股東進出  ◆              ◇大智慧資料中心制作:更新時間:2014-05-06◇

  前十大股東                      股東人數:319109        截止日期:2014-03-31
     名稱                      持股數(萬股)  占總股數  增減情況  股本性質
  ─────────────────────────────────────
  1. 中國平安保險(集團)股份有限   477907.70    50.20%      未變  流通A股,限
     公司-集團本級-自有資金                                      售流通股
  2. 中國平安人壽保險股份有限公    60732.80     6.38%      未變  流通A股
     司-自有資金
  3. 中國平安人壽保險股份有限公    22554.16     2.37%      未變  流通A股
     司-傳統-普通保險產品
  4. 深圳中電投資股份有限公司      14858.78     1.56%      未變  流通A股
  5. 葛衛東                        10799.59     1.13%  -6094.16  流通A股
  6. 東方證券股份有限公司約定購     7510.00     0.79%      新進  流通A股
     回專用賬戶
  7. 中國民生銀行-銀華深證100指     4629.43     0.49%   -366.38  流通A股
     數分級證券投資基金
  8. 南方東英資產管理有限公司-      3873.62     0.41%   -112.82  流通A股
     南方富時中國A50ETF
  9. 中國工商銀行-融通深證100指     3524.97     0.37%    -90.79  流通A股
     數證券投資基金
  10.中國銀行-易方達深證100交易     3313.11     0.35%   -299.71  流通A股
     型開放式指數證券投資基金
     總    計                     609704.16    64.04%
  ─────────────────────────────────────

  前十名無限售條件股東            股東人數:319109        截止日期:2014-03-31
     名稱                      持股數(萬股)  占流通股  增減情況  股本性質
  ─────────────────────────────────────
  1. 中國平安保險(集團)股份有限    83435.34    14.96%      未變  流通A股
     公司-集團本級-自有資金
  2. 中國平安人壽保險股份有限公    60732.80    10.89%      未變  流通A股
     司-自有資金
  3. 中國平安人壽保險股份有限公    22554.16     4.04%      未變  流通A股
     司-傳統-普通保險產品
  4. 深圳中電投資股份有限公司      14858.78     2.66%      未變  流通A股
  5. 葛衛東                        10799.59     1.94%  -6094.17  流通A股
  6. 東方證券股份有限公司約定購     7510.00     1.35%      新進  流通A股
     回專用賬戶
  7. 中國民生銀行-銀華深證100指     4629.43     0.83%   -366.38  流通A股
     數分級證券投資基金
  8. 南方東英資產管理有限公司-      3873.62     0.69%   -112.82  流通A股
     南方富時中國A50ETF
  9. 中國工商銀行-融通深證100指     3524.97     0.63%    -90.79  流通A股
     數證券投資基金
  10.中國銀行-易方達深證100交易     3313.11     0.59%   -299.71  流通A股
     型開放式指數證券投資基金
     總    計                     215231.80    38.58%
  ─────────────────────────────────────

  前十大股東                                             截止日期:2014-01-08
     名稱                      持股數(萬股)  占總股數  增減情況  股本性質
  ─────────────────────────────────────
  1. 中國平安保險(集團)股份有限   477907.70    50.20%      未變  流通A股,限
     公司-集團本級-自有資金                                      售流通股
  2. 中國平安人壽保險股份有限公    60732.80     6.38%      未變  流通A股
     司-自有資金
  3. 中國平安人壽保險股份有限公    22554.16     2.37%      未變  流通A股
     司-傳統-普通保險產品
  4. 葛衛東                        16893.76     1.77%      未變  流通A股
  5. 深圳中電投資股份有限公司      14858.78     1.56%      未變  流通A股
  6. 中國民生銀行-銀華深證100指     4995.81     0.52%      未變  流通A股
     數分級證券投資基金
  7. 南方東英資產管理有限公司-      3986.44     0.42%      未變  流通A股
     南方富時中國A50ETF
  8. 中國工商銀行-融通深證100指     3615.76     0.38%      未變  流通A股
     數證券投資基金
  9. 中國銀行-易方達深證100交易     3612.82     0.38%      未變  流通A股
     型開放式指數證券投資基金
  10.興亞集團控股有限公司           3500.00     0.37%      未變  流通A股
     總    計                     612658.03    64.35%
  ─────────────────────────────────────

  前十大股東                      股東人數:298070        截止日期:2013-12-31
     名稱                      持股數(萬股)  占總股數  增減情況  股本性質
  ─────────────────────────────────────
  1. 中國平安保險(集團)股份有限   477907.70    50.20% 132338.00  流通A股,限
     公司-集團本級-自有資金                                      售流通股
  2. 中國平安人壽保險股份有限公    60732.80     6.38%      未變  流通A股
     司-自有資金
  3. 中國平安人壽保險股份有限公    22554.16     2.37%      未變  流通A股
     司-傳統-普通保險產品
  4. 葛衛東                        16893.76     1.77%      未變  流通A股
  5. 深圳中電投資股份有限公司      14858.78     1.56%      未變  流通A股
  6. 中國民生銀行-銀華深證100指     4995.81     0.52%      未變  流通A股
     數分級證券投資基金
  7. 南方東英資產管理有限公司-      3986.44     0.42%      未變  流通A股
     南方富時中國A50ETF
  8. 中國工商銀行-融通深證100指     3615.76     0.38%      未變  流通A股
     數證券投資基金
  9. 中國銀行-易方達深證100交易     3612.82     0.38%      未變  流通A股
     型開放式指數證券投資基金
  10.興亞集團控股有限公司           3500.00     0.37%      未變  流通A股
     總    計                     612658.03    64.35%
  ─────────────────────────────────────

 

  ◆控股股東和實際控制人◆                                                  

  一、控股股東                                                              
  名    稱: 中國平安保險(集團)股份有限公司
  法人代表: 馬明哲
  注冊資本: 791614.21萬元
  成立日期: 1988-03-21
  經營業務: 投資保險企業;監督管理控股投資企業的各種國內、國際業務;開展保險
            資金運用業務;經批準開展國內、國際保險業務;經中國保險監督管理委
            員會及國家有關部門批準的其他業務。
  企業型別: 中外合資企業

  二、實際控制人                                                            
  名    稱: 無
  說    明: -


  ◆股東戶數◆                                                              

  截止日期              股東戶數        環比增減   環比變化(%)      人均持股
  ─────────────────────────────────────
  2014-03-31              319109            8774          2.83         17473
  2014-02-28              310335           12265          4.11         17967
  2013-12-31              298070            7016          2.41         18707
  2013-09-30              291054            9235          3.28         17071
  2013-06-30              281819           24834          9.66         17630
  2013-03-31              256985           23468         10.05         12084
  2013-03-01              233517          -29960        -11.37         13298
  2012-12-31              263477          -18020         -6.40         11786
  2012-09-30              281497           -1880         -0.66         11032
  2012-06-30              283377            7708          2.80         10958
  2012-03-31              275669            6090          2.26         11265
  2012-02-29              269579           -3367         -1.23         11519
  2011-12-31              272946           -1257         -0.46         11377
  2011-09-30              274203          -11239         -3.94         11325
  2011-06-30              285442          -55874        -16.37         10879
  2011-03-31              341316          -11339         -3.22          9098
  2010-12-31              352655           13111          3.86          8806
  2010-09-30              339544           44284         15.00          9146
  2010-06-30              295260           42840         16.97         10517
  2010-03-31              252420           21849          9.48         11584
  2009-12-31              230571          -29669        -11.40         12682
  2009-09-30              260240           16278          6.67         11235
  2009-06-30              243962           -4735         -1.90         11984
  2009-03-31              248697          -46519        -15.76         11197
  2008-12-31              295216           46357         18.63          9432
  2008-09-30              248859          -15847         -5.99          8607
  2008-06-30              264706           -4762         -1.77          8092
  2008-03-31              269468           19042          7.60          6520
  2007-12-31              250426           65926         35.73          6801
  2007-09-30              184500          -87655        -32.21          8402
  2007-06-30              272155          -23489         -7.95          5696
  2007-03-31              295644         -110589        -27.22          4767
  2006-12-31              406233         -104435        -20.45          3469
  2006-09-30              510668          -32836         -6.04          2760
  2006-06-30              543504          -59494         -9.87          2593
  2006-03-31              602998          -18314         -2.95          2337
  2005-12-31              621312           -9677         -1.53          2268
  2005-09-30              630989          -14712         -2.28          2234
  2005-06-30              645701          -13154         -2.00          2183
  2005-03-31              658855           -7341         -1.10          2139
  2004-12-31              666196           -5992         -0.89          2116
  2004-09-30              672188           -4442         -0.66          2095
  2004-06-30              676630            3607          0.54          2082
  2004-03-31              673023          -29438         -4.19          2093
  2003-12-31              702461           -1696         -0.24          2005
  2003-09-30              704157            8182          1.18          2000
  2003-06-30              695975           15555          2.29          2024
  2003-03-31              680420            3909          0.58          2070
  2002-12-31              676511           34282          5.34          2082
  2002-09-30              642229          -46327         -6.73          2193
  2002-06-30              688556          -90012        -11.56          2045
  2001-12-31              778568          -31432         -3.88          1809
  2000-12-31              810000           45875          6.00          1719
  2000-06-30              764125           58682          8.32          1401
  1999-12-31              705443         -209135        -22.87          1518
  1998-12-31              914578           -3753         -0.41          1171
  1998-06-30              918331           84860         10.18          1166
  1997-12-31              833471          502971        152.18          1285
  1996-12-31              330500          150500         83.61          2160
  1995-12-31              180000               -             -          1985
  ─────────────────────────────────────

uj5u.com熱心網友回復:

procedure TFrmZDCDZP.BtnTransJianClick(Sender: TObject);
  var StrDate,StrZPH,StrJE,StrJD,fname1,fname2,s:string;
    f1,f2:textFile;
    ch:char;
    i,pp,j:integer;
    getdate:Boolean;
begin
  if (leftStr(ComboBoxCPH.Text,4)<>'建行')then
  begin
    showmessage('出票行有誤!');
    exit;
  end;
  AssignFile(f1,StxtFileName.Caption);
  Reset(f1);
    //readLn(f1);    //跳過一行
  while not eof(f1) do
  begin
    getDate:=True;
    StrDate:='';
    StrZPH:='';
    StrJD:='';
    StrJE:='';

    readLn(f1, s);
    if s='' then
      Continue;
    StrDate:=copy(s,3,10);
    StrZPH:=copy(s,48,16); //1050443024598670
    StrJD:=copy(s,67,4);
    StrJE:=copy(copy(s,75,length(s)-1),1,pos('"',copy(s,75,length(s)-1))-1);
{//   showmessage(s);

   read(f1,ch);
   if (ch<>'"') then
   begin
    readln(f1);
    continue;
   end;
   while ch<>',' do        //日期
   begin
    if ((ch>='0') and (ch <= '9')) or (ch='-') then StrDate:=StrDate+ch;
    read(f1,ch);
   end;
   read(f1,ch);
   while ch<>',' do read(f1,ch);     //跳過時間
   read(f1,ch);
   while ch<>',' do read(f1,ch);     //跳過憑證種類
   read(f1,ch);
   while ch<>',' do        //憑證號
   begin
    if (ch>='0') and (ch<='9') then StrZPH:=StrZPH+ch;
    read(f1,ch);
   end;
   read(f1,ch);
   while ch<>',' do        //借貸
   begin
    if (ch<>'"') then StrJD:=StrJD+ch;
    read(f1,ch);
   end;
   read(f1,ch);
   while ch<>',' do        //金額
   begin
    if ((ch>='0') and (ch<='9')) or (ch='.') then StrJE:=StrJE+ch;
    read(f1,ch);
   end;

   //readln(f1);
}
   if strJD='借方' then
    with ADOquery4 do
    begin
      Close;
      SQL.Clear;
      SQL.Add('select top 1 * from 支票兌現');
      open;
      append;
      FieldByName('支票號').AsString:=Rightstr(StrZPH,8);
      FieldByName('金額').AsFloat:=StrToFloat(Trim(StrJE));
      FieldByName('承兌日期').AsDateTime:=StrToDate(StrDate);
      FieldByName('出票銀行').AsString:=Trim(ComboBoxCPH.Text);
      Post;
    end;
//   showmessage(StrDate+' '+StrZPH+'  '+StrJE);

    ReadLn(f1);

  end;

  CloseFile(f1);
  PP:=Pos('未',StxtFileName.Caption);
  fname1:=StxtFileName.Caption;
  fname2:=Leftstr(fname1,pp-1)+'已'+Rightstr(fname1,length(fname1)-pp-1);
  CopyFile(PChar(fname1),PChar(fname2),False);
  DeleteFile(fname1);
  showmessage('轉換成功!');
  ADOQuery1.Close;
  ADOQuery1.Open;
  SumUp;
end;


這是我讀取支票明細的  你看看有沒有用.     檔案名如果是有序的.可以回圈..

uj5u.com熱心網友回復:

只要說是固定格式就好辦,按格式讀取就是了

uj5u.com熱心網友回復:

支持采用正則方法,提取資料,填入資料庫

uj5u.com熱心網友回復:

貌似auqfiudh的有參考價值,先謝謝

uj5u.com熱心網友回復:

要不用第三方控制元件試試吧。

uj5u.com熱心網友回復:

這樣的程式我做過
我是從 通達信 中匯入的
如果你用的也是通達信,我的那段程式可以直接使用

uj5u.com熱心網友回復:

哦 原來你用的是大智慧啊
應該也差不多

先定位到關鍵字串 如 ◆股東戶數◆  
然后采用詞法分析中的方法 一行行或一個個讀取就行

uj5u.com熱心網友回復:

@johnyale  您好!   能把代碼貼出?或發我郵箱  [email protected]   多謝啊

uj5u.com熱心網友回復:

這是我匯入股東人數等資料的函式 比較簡單。你可以和通達信的F10資料比較著看
procedure TfrmMain.ImportStockHolderCount(StockCode: string; Buf: pchar; BufLen: integer; FileProvider: integer);
const
    SearchStringVsatsh = '歷年人均持股情況';
    SearchStringGA = '【2.股東戶數】';
var
    p, p0, p1: pchar;
    str, SearchString: string;
    FormatSettings: TFormatSettings;
    SQL, SQLBASE: string;
    strDATE, strLTG, strGDRS, strRJCG: string;
    i: integer;

    procedure CheckColumnWidth(ColumnWidth: integer);
    begin
        if (ColumnWidth <= 0) or (ColumnWidth > 20) then
            raise Exception.Create('Not Valid width!');
    end;

var
    ColumnWidth: integer;

begin
    FormatSettings.DateSeparator := '-';
    FormatSettings.LongDateFormat := 'yyyy-mm-dd';
    FormatSettings.ShortDateFormat := 'yyyy-mm-dd';

    if FileProvider = Vsatsh then
        SearchString := SearchStringVsatsh
    else if FileProvider = GA then
        SearchString := SearchStringGA
    else
        ;
    SQLBASE := 'INSERT INTO STOCKOWNERCOUNT (CODE , DATE, LTG, GDRS, RJCG) VALUES '; //(:CODE ,  :DATE,  :LTG, :GDRS, :RJCG);';

    if FileProvider = Vsatsh then
    begin
        //查找'歷年人均持股情況'
        p0 := SearchBuf(Buf, BufLen, 0, Length(SearchString), SearchString, [SoDown]);
        if p0 = nil then
            exit;
        //跳過多余的行
        for I := 1 to 4 do
        begin
            p0 := SearchBuf(p0, BufLen - (p0 - buf), 0, 2, #$0D#$0A, [SoDown]);
            if p0 = nil then
                exit;
        end;
        while True do
        begin
            try
                //日期
                p0 := p0 + 2;
                p1 := SearchBuf(p0, BufLen - (p0 - buf), 0, 1, '│', [SoDown]);
                ColumnWidth := p1 - p0;
                CheckColumnWidth(ColumnWidth);
                SetLength(str, ColumnWidth);
                Move(p0[0], str[1], ColumnWidth);
                strDate := trim(str);
                StrToDate(strDate, FormatSettings); //檢查str的合法性
                //流通股
                p0 := p1 + Length('│');
                p1 := SearchBuf(p0, BufLen - (p0 - buf), 0, 1, '│', [SoDown]);
                ColumnWidth := p1 - p0;
                CheckColumnWidth(ColumnWidth);
                SetLength(str, ColumnWidth);
                Move(p0[0], str[1], ColumnWidth);
                str := trim(str);
                for i := Length(str) downto 1 do
                begin
                    if not (str[i] in ['1'..'9', '0', '.']) then
                    begin
                        str := RightStr(str, Length(str) - i);
                        break;
                    end;
                end;
                strLTG := str;
                strToFloat(strLTG); //檢查str的合法性
                //股東人數
                p0 := p1 + Length('│');
                p1 := SearchBuf(p0, BufLen - (p0 - buf), 0, 1, '│', [SoDown]);
                ColumnWidth := p1 - p0;
                CheckColumnWidth(ColumnWidth);
                SetLength(str, ColumnWidth);
                Move(p0[0], str[1], ColumnWidth);
                strGDRS := trim(str);
                StrToInt(strGDRS);
                //人均持股
                p0 := p1 + Length('│');
                p1 := SearchBuf(p0, BufLen - (p0 - buf), 0, 1, '│', [SoDown]);
                ColumnWidth := p1 - p0;
                CheckColumnWidth(ColumnWidth);
                SetLength(str, ColumnWidth);
                Move(p0[0], str[1], ColumnWidth);
                strRJCG := trim(str);
                StrToFloat(strRJCG);

                SQL := SQLBASE + '('
                    + '''' + StockCode + '''' + ', '
                    + '''' + strDate + '''' + ', '
                    + strLTG + ', '
                    + strGDRS + ', '
                    + strRJCG
                    + ');';
                try
                    dmmain.ZConnStockF10.ExecuteDirect(SQL);
                except
                end;

                p0 := SearchBuf(p0, BufLen - (p0 - buf), 0, 2, #$0D#$0A, [SoDown]);
                if p0 = nil then
                    exit;
            except
                Exit;
            end;
        end;
    end
    else if FileProvider = GA then
    begin
        p0 := buf;
        for I := 1 to 2 do
        begin
            p0 := SearchBuf(p0, BufLen, 0, Length(SearchString), SearchString, [SoDown]);
            if p0 = nil then
                exit;
        end;
        for I := 1 to 4 do
        begin
            p0 := SearchBuf(p0, BufLen - (p0 - buf), 0, 2, #$0D#$0A, [SoDown]);
            if p0 = nil then
                exit;
        end;
        while True do
        begin
            try
                //日期
                p0 := p0 + 2 + Length('|');
                p1 := SearchBuf(p0, BufLen - (p0 - buf), 0, Length('|'), '|', [SoDown]);
                ColumnWidth := p1 - p0;
                CheckColumnWidth(ColumnWidth);
                SetLength(str, ColumnWidth);
                Move(p0[0], str[1], ColumnWidth);
                strDate := trim(str);
                StrToDate(strDate, FormatSettings); //檢查str的合法性
                //股東戶數
                p0 := p1 + Length('|');
                p1 := SearchBuf(p0, BufLen - (p0 - buf), 0, Length('|'), '|', [SoDown]);
                ColumnWidth := p1 - p0;
                CheckColumnWidth(ColumnWidth);
                SetLength(str, ColumnWidth);
                Move(p0[0], str[1], ColumnWidth);
                strGDRS := trim(str);
                StrToInt(strGDRS);
                //人均持股
                p0 := p1 + Length('|');
                p1 := SearchBuf(p0, BufLen - (p0 - buf), 0, Length('|'), '|', [SoDown]);
                ColumnWidth := p1 - p0;
                CheckColumnWidth(ColumnWidth);
                SetLength(str, ColumnWidth);
                Move(p0[0], str[1], ColumnWidth);
                strRJCG := trim(str);
                StrToFloat(strRJCG);
                //流通股
                strLTG := IntToStr(RoundEx(StrToInt(strGDRS) * StrToFloat(strRJCG) / 10000));

                SQL := SQLBASE + '('
                    + '''' + StockCode + '''' + ', '
                    + '''' + strDate + '''' + ', '
                    + strLTG + ', '
                    + strGDRS + ', '
                    + strRJCG
                    + ');';
                try
                    dmmain.ZConnStockF10.ExecuteDirect(SQL);
                except
                end;
                for I := 1 to 2 do
                begin
                    p0 := SearchBuf(p0, BufLen - (p0 - buf), 0, 2, #$0D#$0A, [SoDown]);
                    if p0 = nil then
                        exit;
                end;
            except
                Exit;
            end;
        end;
    end
    else
    begin
    end;
end;

uj5u.com熱心網友回復:

還可以從一些網頁中讀取 這樣的話 就不用保存匯出F10檔案了。兩者的速度都能接受

uj5u.com熱心網友回復:

先謝謝,我好久沒有DELPHI了,不知各位現在在用哪個版本了?

uj5u.com熱心網友回復:

有資料除錯起來比較容易,就說說簡單的思路
1.取檔案名為股票代碼
2.打開檔案
3.從第一個‘————————————’下一行開始讀取資料 
4.取每行的前兩個字符是 '1.','2.','3.'.....的表示這是新的一條資料記錄,按照固定寬度(或特殊間隔符)截取資料保存的變數中。
5.去下一行資料,如果不是編號('1.','2.','3.'....)則說明是上一行資料的部分內容,按固定寬度(或特殊間隔符)截取并與對應的變數字串連接,生成完整的資料后保存到資料庫中。
6.回圈4~5步驟直至遇到‘總 計’一行停止,完成一個文本檔案數匯入。

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/107218.html

標籤:數據庫相關

上一篇:如何得到某個顏色的淺色?

下一篇:求助:如何使程式在不同解析度下正常顯示在螢屏右側。

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 【C++】Microsoft C++、C 和匯編程式檔案

    ......

    uj5u.com 2020-09-10 00:57:23 more
  • 例外宣告

    相比于斷言適用于排除邏輯上不可能存在的狀態,例外通常是用于邏輯上可能發生的錯誤。 例外宣告 Item 1:當函式不可能拋出例外或不能接受拋出例外時,使用noexcept 理由 如果不打算拋出例外的話,程式就會認為無法處理這種錯誤,并且應當盡早終止,如此可以有效地阻止例外的傳播與擴散。 示例 //不可 ......

    uj5u.com 2020-09-10 00:57:27 more
  • Codeforces 1400E Clear the Multiset(貪心 + 分治)

    鏈接:https://codeforces.com/problemset/problem/1400/E 來源:Codeforces 思路:給你一個陣列,現在你可以進行兩種操作,操作1:將一段沒有 0 的區間進行減一的操作,操作2:將 i 位置上的元素歸零。最終問:將這個陣列的全部元素歸零后操作的最少 ......

    uj5u.com 2020-09-10 00:57:30 more
  • UVA11610 【Reverse Prime】

    本人看到此題沒有翻譯,就附帶了一個自己的翻譯版本 思考 這一題,它的第一個要求是找出所有 $7$ 位反向質數及其質因數的個數。 我們應該需要質數篩篩選1~$10^{7}$的所有數,這里就不慢慢介紹了。但是,重讀題,我們突然發現反向質數都是 $7$ 位,而將它反過來后的數字卻是 $6$ 位數,這就說明 ......

    uj5u.com 2020-09-10 00:57:36 more
  • 統計區間素數數量

    1 #pragma GCC optimize(2) 2 #include <bits/stdc++.h> 3 using namespace std; 4 bool isprime[1000000010]; 5 vector<int> prime; 6 inline int getlist(int ......

    uj5u.com 2020-09-10 00:57:47 more
  • C/C++編程筆記:C++中的 const 變數詳解,教你正確認識const用法

    1、C中的const 1、區域const變數存放在堆疊區中,會分配記憶體(也就是說可以通過地址間接修改變數的值)。測驗代碼如下: 運行結果: 2、全域const變數存放在只讀資料段(不能通過地址修改,會發生寫入錯誤), 默認為外部聯編,可以給其他源檔案使用(需要用extern關鍵字修飾) 運行結果: ......

    uj5u.com 2020-09-10 00:58:04 more
  • 【C++犯錯記錄】VS2019 MFC添加資源不懂如何修改資源宏ID

    1. 首先在資源視圖中,添加資源 2. 點擊新添加的資源,復制自動生成的ID 3. 在解決方案資源管理器中找到Resource.h檔案,編輯,使用整個專案搜索和替換的方式快速替換 宏宣告 4. Ctrl+Shift+F 全域搜索,點擊查找全部,然后逐個替換 5. 為什么使用搜索替換而不使用屬性視窗直 ......

    uj5u.com 2020-09-10 00:59:11 more
  • 【C++犯錯記錄】VS2019 MFC不懂的批量添加資源

    1. 打開資源頭檔案Resource.h,在其中預先定義好宏 ID(不清楚其實ID值應該設定多少,可以先新建一個相同的資源項,再在這個資源的ID值的基礎上遞增即可) 2. 在資源視圖中選中專案資源,按F7編輯資源檔案,按 ID 型別 相對路徑的形式添加 資源。(別忘了先把檔案拷貝到專案中的res檔案 ......

    uj5u.com 2020-09-10 01:00:19 more
  • C/C++編程筆記:關于C++的參考型別,專供新手入門使用

    今天要講的是C++中我最喜歡的一個用法——參考,也叫別名。 參考就是給一個變數名取一個變數名,方便我們間接地使用這個變數。我們可以給一個變數創建N個參考,這N + 1個變數共享了同一塊記憶體區域。(參考型別的變數會占用記憶體空間,占用的記憶體空間的大小和指標型別的大小是相同的。雖然參考是一個物件的別名,但 ......

    uj5u.com 2020-09-10 01:00:22 more
  • 【C/C++編程筆記】從頭開始學習C ++:初學者完整指南

    眾所周知,C ++的學習曲線陡峭,但是花時間學習這種語言將為您的職業帶來奇跡,并使您與其他開發人員區分開。您會更輕松地學習新語言,形成真正的解決問題的技能,并在編程的基礎上打下堅實的基礎。 C ++將幫助您養成良好的編程習慣(即清晰一致的編碼風格,在撰寫代碼時注釋代碼,并限制類內部的可見性),并且由 ......

    uj5u.com 2020-09-10 01:00:41 more
最新发布
  • Rust中的智能指標:Box<T> Rc<T> Arc<T> Cell<T> RefCell<T> Weak

    Rust中的智能指標是什么 智能指標(smart pointers)是一類資料結構,是擁有資料所有權和額外功能的指標。是指標的進一步發展 指標(pointer)是一個包含記憶體地址的變數的通用概念。這個地址參考,或 ” 指向”(points at)一些其 他資料 。參考以 & 符號為標志并借用了他們所 ......

    uj5u.com 2023-04-20 07:24:10 more
  • Java的值傳遞和參考傳遞

    值傳遞不會改變本身,參考傳遞(如果傳遞的值需要實體化到堆里)如果發生修改了會改變本身。 1.基本資料型別都是值傳遞 package com.example.basic; public class Test { public static void main(String[] args) { int ......

    uj5u.com 2023-04-20 07:24:04 more
  • [2]SpinalHDL教程——Scala簡單入門

    第一個 Scala 程式 shell里面輸入 $ scala scala> 1 + 1 res0: Int = 2 scala> println("Hello World!") Hello World! 檔案形式 object HelloWorld { /* 這是我的第一個 Scala 程式 * 以 ......

    uj5u.com 2023-04-20 07:23:58 more
  • 理解函式指標和回呼函式

    理解 函式指標 指向函式的指標。比如: 理解函式指標的偽代碼 void (*p)(int type, char *data); // 定義一個函式指標p void func(int type, char *data); // 宣告一個函式func p = func; // 將指標p指向函式func ......

    uj5u.com 2023-04-20 07:23:52 more
  • Django筆記二十五之資料庫函式之日期函式

    本文首發于公眾號:Hunter后端 原文鏈接:Django筆記二十五之資料庫函式之日期函式 日期函式主要介紹兩個大類,Extract() 和 Trunc() Extract() 函式作用是提取日期,比如我們可以提取一個日期欄位的年份,月份,日等資料 Trunc() 的作用則是截取,比如 2022-0 ......

    uj5u.com 2023-04-20 07:23:45 more
  • 一天吃透JVM面試八股文

    什么是JVM? JVM,全稱Java Virtual Machine(Java虛擬機),是通過在實際的計算機上仿真模擬各種計算機功能來實作的。由一套位元組碼指令集、一組暫存器、一個堆疊、一個垃圾回收堆和一個存盤方法域等組成。JVM屏蔽了與作業系統平臺相關的資訊,使得Java程式只需要生成在Java虛擬機 ......

    uj5u.com 2023-04-20 07:23:31 more
  • 使用Java接入小程式訂閱訊息!

    更新完微信服務號的模板訊息之后,我又趕緊把微信小程式的訂閱訊息給實作了!之前我一直以為微信小程式也是要企業才能申請,沒想到小程式個人就能申請。 訊息推送平臺🔥推送下發【郵件】【短信】【微信服務號】【微信小程式】【企業微信】【釘釘】等訊息型別。 https://gitee.com/zhongfuch ......

    uj5u.com 2023-04-20 07:22:59 more
  • java -- 緩沖流、轉換流、序列化流

    緩沖流 緩沖流, 也叫高效流, 按照資料型別分類: 位元組緩沖流:BufferedInputStream,BufferedOutputStream 字符緩沖流:BufferedReader,BufferedWriter 緩沖流的基本原理,是在創建流物件時,會創建一個內置的默認大小的緩沖區陣列,通過緩沖 ......

    uj5u.com 2023-04-20 07:22:49 more
  • Java-SpringBoot-Range請求頭設定實作視頻分段傳輸

    老實說,人太懶了,現在基本都不喜歡寫筆記了,但是網上有關Range請求頭的文章都太水了 下面是抄的一段StackOverflow的代碼...自己大修改過的,寫的注釋挺全的,應該直接看得懂,就不解釋了 寫的不好...只是希望能給視頻網站開發的新手一點點幫助吧. 業務場景:視頻分段傳輸、視頻多段傳輸(理 ......

    uj5u.com 2023-04-20 07:22:42 more
  • Windows 10開發教程_編程入門自學教程_菜鳥教程-免費教程分享

    教程簡介 Windows 10開發入門教程 - 從簡單的步驟了解Windows 10開發,從基本到高級概念,包括簡介,UWP,第一個應用程式,商店,XAML控制元件,資料系結,XAML性能,自適應設計,自適應UI,自適應代碼,檔案管理,SQLite資料庫,應用程式到應用程式通信,應用程式本地化,應用程式 ......

    uj5u.com 2023-04-20 07:22:35 more