⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 creatcmd.dpr.~21~

📁 photo.163.com 相册下载器 多线程下载
💻 ~21~
字号:
program CreatCMD;

{$APPTYPE CONSOLE}

uses
  SysUtils, Classes, Unicode;
var
  str_nam,str_alb : string;
  str_num : array[0..15] of string;
  conf,src : TStringList;
  fn,srci,output,dest : string;
     srcn : widestring;
  c : char;
  wc : widechar;
  ii,ni,nx,ie,ne,i : integer;
  hup : boolean;
begin if(ParamCount>=3)then begin
  fn := ExtractFileDir(ParamStr(0))+'\';
  if ParamCount>3 then str_alb := ParamStr(4) else str_alb := '';
  src := TStringList.Create;
  conf := TStringList.Create;
  conf.LoadFromFile(fn+ParamStr(1));
  if(not fileexists(fn+ParamStr(2)))then begin halt(3);end;
  src.LoadFromFile(fn+ParamStr(2));
  srci := src.Text;
  srcn := src.Text;

  str_nam := ParamStr(3);
  ii := Pos('[',srci)+1;
  ni := Pos(' [[',srci)+2;// StrPosW(PWideChar(srcn),'[[');
  ie := Pos(']',srci);
  ne := Pos(']];',srci);//  StrPosW(PWideChar(srcn),']];');
  dest := StringReplace(conf.Text, '*n', str_nam, [rfReplaceAll]);
  dest := StringReplace(dest, '*a', str_alb, [rfReplaceAll]);
  dest := StringReplace(dest, '*f', fn, [rfReplaceAll]);
  if ii=ie then begin writeln(' Err : No Data ! '); halt(1);end;
  while((ie-ii)>6)do begin
    if ni=ne then begin writeln(' Err : Out of Range ! '); halt(2);end;
    for i:=0 to 15 do str_num[i] := '';

    //First Section
    c := srci[ii];
    while((c<>',')and(c<>']'))do begin
     if(c in['0'..'9'])then str_num[0] := str_num[0] + c;
     inc(ii);
     c := srci[ii];
    end;inc(ii);

    //Second Section
    nx := 1;
    c := srci[ni];
    writeln(inttostr(ni));
    writeln(srci[ni]);
    while((nx<16)and(c<>']'))do begin
      c := srci[ni];
      hup := false;
      while((c<>',')and(c<>']')and(not hup))do begin
        if(c='"')then hup := not hup else begin
          if(c<>'[')then str_num[nx] := str_num[nx] + c;
          c := srci[ni];
        end;
        inc(ni);
      end;
      inc(nx);
    end;inc(ni,2);
    {
    nx := 1;
    wc := srcn[ni];
    while((nx<=15)and(wc<>']'))do begin
      hup := false;
      while((wc<>',')and(wc<>']')and(not hup))do begin
        if(wc='"')then hup := not hup else
         str_num[nx] := str_num[nx] + wc;
        inc(ni);
        wc := srci[ni];
      end;
      inc(nx);
    end;inc(ni,2);
    }
    output := dest;
    str_num[5] := StringReplace(str_num[5], '?', '_', [rfReplaceAll]);
    for i:=0 to 16 do output :=
      StringReplace(output, '*'+inttostr(i), str_num[i], [rfReplaceAll]);
    writeln(output);
  end;
end;Halt(0);end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -