こんにちは皆さんは最初の文字 ':'が会うまで文字列を停止してコピーしたいと思います。 は、以下の文字列「404:不正な要求」している私と私の出力が「404」:Delphi10。この文字までのキャラクタをコピーする機能 ':'
function CutOff(const s: string; n: integer):string;
var
i, k: integer;
begin
k := 0;
for i := 1 to n do
begin
k := Pos(s, ':', k+1);
if k = 1 then Exit;
end;
Result := Copy(s, 1, k);
end;
'n個の目的は何である:integer'パラメータ?あなたはそれについて何も言わなかった。 –
Pos()を使っているのであれば、なぜforループがchar-by-charという文字列を踏んでいるのでしょうか?あなたが文字列処理を理解しているなら、私には無意味です。 – MartynA
'TStrings'クラスの中で' ExtractName'メソッドの実装を見てみましょう:http://docwiki.embarcadero.com/Libraries/Berlin/en/System.Classes.TStrings.ExtractName区切り文字の前にその部分を返します。同様の関数が 'JCL' - メソッド' TJclWideStrings.ExtractName'でも使われています:https://github.com/magicmonty/delphi-code-coverage/blob/master/3rdParty/JCL/jcl-2.3.1.4197/source/ common/JclWideStrings.pas。しかし、どちらも 'n'パラメータを持っていません。 – quasoft