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

📄 creatcmd.dpr.~23~

📁 photo.163.com 相册下载器 多线程下载
💻 ~23~
字号:
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;
  fc,sc : char;
  wc : widechar;
  ii,ni,nx,ie,ne,i : integer;
  hup, fin : 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]);
  //srci := StringReplace(srci, ']];', ']],;', [rfReplaceAll]);
  if ii=ie then begin writeln(' Err : No Data ! '); halt(1);end;
  fc := srci[ii];
  while(fc<>']')do begin
    if ni=ne then begin writeln(' Err : Out of Range ! '); halt(2);end;
    for i:=0 to 15 do str_num[i] := '';
    fc := srci[ii];
    while((fc<>',')and(fc<>']'))do begin
      if(fc in['0'..'9'])then str_num[0] := str_num[0] + fc;
      inc(ii);
      fc := srci[ii];
    end;inc(ii);
    //Second Section
    nx := 1;
    sc := srci[ni];
    fin := false;
    while((nx<16)and(not fin)and(ni<ne))do begin
      hup := false;
      while((sc<>','){or(hup)})do begin
        if(hup and(sc in ['?','*','/','\','<','>','"','|',':',',','[',']']))then begin
          sc := '_';
          srci[ni] := sc;
        end;
        if(sc='"')then hup := not hup else begin
          if((sc=']')and(not hup))then fin := true else
            if((hup)or(sc<>'['))then str_num[nx] := str_num[nx] + sc;
        end;
        inc(ni);
        sc := srci[ni];
      end;
      inc(nx);
      inc(ni);
      sc := srci[ni];
    end;inc(ni,2);

    output := dest;
    for i:=0 to 15 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 + -