Q&A

  • 문자열을 자르고 문자열추가하기
파람값에 "/rp [1.000000] [여러가지 내용들1] [여러가지 내용들2]"
이렇게 들어오는데요. 데이터는 바뀔수가 있습니다.
[number형식] [varchar2(256)] [varchar2(256)]

필요한건 첫번째 []이 괄호에서 정수만 가져오구요 2,3번째 괄호에서는
여러가지 내용들을 가지고 오는데 이것들이 고정된게 아닙니다.

첫번째에서 정수가져오고 _붙이고 2번째 괄호의 데이터를 가져오고 .file을 붙여서 가져올때
"1_여러가지 내용들.file" 이런 형식으로 가지고 오고 싶은데 어떻게 해야하나요?

예로 이렇게 왔을때
1.  /rp [10.00000] [가나다] [ABC]
2.  /rp [50.00000] [라마사] [DEF]
3.  /rp [100.00000] [아자차] [GHI]

값을 이렇게 가지고 와야 합니다.
1. 10_가나다.file
2. 50_라마사.file
3. 100_아자차.file

부탁드립니다.


4  COMMENTS
  • Profile
    구창민 2009.03.14 02:38
    안녕하세요..
    이런형태를 원하신 건가요..
    참고하세요..

    var
    st : TStringList;
    S : String;
    begin
    s := '1. /rp [10.00000] [가나다] [ABC]';
    st := TStringList.Create;
    s := StringReplace(s, '[', ' ', [rfReplaceAll]);
    s := StringReplace(s, ']', ' ', [rfReplaceAll]);
    st.CommaText := s;
    ShowMessage(st[0] + ' ' + FormatFloat('#0', StrToFloat(st[2])) + '_' + st[3] + '.file');
    st.Free;
    end;

    //결과 --> 1. 10_가나다.file
  • Profile
    날개 2009.03.14 02:51
    이렇게 되면 1번째 괄호에 넘버가 9999.000000식으로 왔을때나 2번째 괄호에 256바이트의 문자열이 오게되면
    값이 틀려지게 되지 않나요?
    괄호안에 어떠한 값이 올지는 모르는 상태입니다.
    그걸 어떻게 받아와야 하는지 몰라 질문드렸습니다.
  • Profile
    날개 2009.03.14 03:08
    아... 앞에 1.이 들어가야 하는 군요
    그럼 됩니다만.. 이거 어떻게 해서 이렇게 오는건가요?

    st := TStringList.Create; //스트링그리드 만들기
    s := StringReplace(s, '[', ' ', [rfReplaceAll]); // s의 값에서 '['을 ' '값으로 바꾸기
    s := StringReplace(s, ']', ' ', [rfReplaceAll]); // s의 값에서 ']'을 ' '값으로 바꾸기
    st.CommaText := s; //공백 없애주기...
    여기까지는 이해가되는데 다음 소스에서 이해가 잘 안되는데요.. 자세히 설명부탁드립니다.
    제가 초보라서...

    또1.이 안들어가면 오류는 왜 나는건가요?
  • Profile
    날개 2009.03.16 17:57
    그리고 첫번째나 두번째,세번째 괄호안에 값이 없어서 /rp [] [] [] [필요없는값1] [필요없는값2] 이렇게 들어온다면
    이것을 어떻게 비교해서 확인을 해야하나요?
    값이 없을때는 새로 열기를 실행시키려고 할때