お知らせ

電子会議

ライブラリ

パレット

Delphi FAQ検索

Delphi FAQ一覧

サンプル蔵





FDelphi FAQ
16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル

"プログラムを起動するときの引数を生成する"

この発言に対し以下のコメントが寄せられています
#01157 ぜえた さん RE:プログラムを起動するときの引数を生成

プログラムを起動するときの引数を生成する関数FArgGenです。 例) 「-d"%1" -Y%L」 と言う文字列を第一引数に渡し、 「1C:\Program Files」 「L20」 の様な文字列を入れたTStringListを第二引数に渡すと、 「-d"C:\Program Files" -Y20」 と言う文字を返します。 第二引数は、頭一文字が置きかえる文字で後に続く文字に置き換えます。 置き換る文字は%で始まる1文字です。 unit UArgGen; interface uses Classes,SysUtils; function FArgGen(Target:string;argList:TStringList):string; implementation function FArgGen(Target:string;argList:TStringList):string; var s,s1:string; i,j,l:integer; TS:TStringList; begin TS:=TStringList.Create; try //Target Cut s:=TarGet; l:=Length(Target); if l<2 then begin Ts.Add(Target); end else while true do begin i:=ansipos('%',s); if i = 0 then begin TS.Add(s); break; end else begin s1 := Copy(s,1,i - 1); TS.Add(s1); s := Copy(s,i,l); s1 := Copy(S,2,1); if s1 = '%' then begin TS.Add('%'); end else begin TS.Add('%'+s1); end; s:=Copy(S,3,l); end; end; //ListChange //IndexOfでやろうとしたけど、大文字小文字を区別しないからやめた for j:=0 to ts.count - 1 do begin if (copy(ts.strings[j],1,1)='%')and (length(ts.strings[j]) = 2 ) then begin for i:=0 to arglist.count - 1 do begin s:='%'+Copy(arglist.strings[i],1,1); if ts.strings[j] = s then begin s1:=Copy(arglist.strings[i],2,Length(arglist.strings[i])); ts.strings[j] := s1; end; end; end; end; //ResultSet Result := ''; for i:=0 to TS.Count - 1 do begin Result := Result + TS.Strings[i]; end; finally TS.Free; end; end; end. ー以上ー kench@nifty.ne.jp KENCH/平内健一  - FDELPHI MES(16):玉石混淆みんなで作るSample蔵【見本蓄積】 00/09/11 - Original document by KENCH 氏 ID:(GDH01352)



ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。

Copyright 1996-2002 Delphi Users' Forum