공지

문자열 copy 이용 예 (특정 위치까지 자르고 나머지 개행)

고폴 2018. 7. 5. 10:55

해당 문자중 ,(콤마)를찾으려고 하는데요

-> sStr := 1,2,3,4,5

중 pos(',', sStr) => return = 2

이렇게 하는 방법은 알겠는데

만약 3번째 ,(콤마)를 찾이 copy로 끊어주고 싶은데

어떻게 해야될지 모르겠습니다.

ex )
1,2,3
,4,5

이렇게요

어떻게 어떤 함수를 사용해야 되는걸까요? T^T



무념
(조무영)

 
꼭 맞는 함수가 있는지 모르겠네요...
일단 대강 만들어보면...

procedure TForm1.Button1Click(Sender: TObject);
  function FindCharPos(SrcStr: string; Searching: Char; Order: Integer): Integer;
  var
    Count: Integer;
  begin
    Count := 0;
    for Result := 1 to Length(SrcStr)-1 do
    begin
      if SrcStr[Result] = Searching then
      begin
        Inc(Count);
        if Count >= Order then Exit;
      end;
    end;

    Result := -1;
  end;
const
  sStr = '1,2,3,4,5';
  CommaChar = ',';
  NumberOfCommasForSplitting = 3;
var
  Str1, Str2: string;
  CommaPos: Integer;
begin
  CommaPos := FindCharPos(sStr, CommaChar, NumberOfCommasForSplitting);
  if CommaPos>0 then
  begin
    Str1 := Copy(sStr, 1, CommaPos-1);
    Str2 := Copy(sStr, CommaPos+1, MaxInt);
    ShowMessage(Str1);
    ShowMessage(Str2);
  end
  else
  begin
    Str1 := sStr;
    Str2 := '';
  end;
end;   2018-07-05 오전 10:12:09