Q&A

  • 문자열을 잘랐는데 결과가 이상하네여 꼭좀여
문자열 한라인을 받아서 구분자가 '|' 로 되있거든여.. | 앞에 문자를 하나씩
잘라서 스트링 그리드에 넣는건데여.. 만약 공백이면 결과값으로 '' 으로 줄려고하는데 에러는 없는데 결과값이 '' 으로 나오네여 어떻게 해야하는지 고수님들 부탁합니다.
function Tform1.GetAValue (Loadfile : String) : String;
var
  sTemp, sResult : String;
begin
  sTemp := Loadfile;
  while length(sTemp)>0 do
  begin
   sResult := Copy(sTemp, 1, Pos('|', sTemp) -1);
   Delete(sTemp, 1, Pos('|', sTemp));
  end;
   if sResult = '' then
   begin
      Result := '';
   end;
   Result := sResult;
end;
1  COMMENTS
  • Profile
    나그네 2003.05.21 19:11
    안냐세요....
    ㅎㅎ 닉네임이 같네요........
    일단 밑에 로직이 조금 이상하네요....
    님이 만든 함수 대로 천천히 따라가보면....
    ab|cd|ef 이런값을 넣어도 당군 공백만 들갈껍니다..

    function ExtractOneMessage(dv: Char; var exmsg: String):String;
    begin
      if pos(dv, exmsg) <= 0 then Result := exmsg
      else begin
        Result := copy(exmsg, 1, pos(dv, exmsg)-1);
        delete(exmsg, 1, pos(dv, exmsg));
      end;
    end;

    이걸응용해서 하심 될거 같네요...
    참고로 파라메타중에 두번째껏은 Call By Reference로 포인터 개념이라 생각하심됩니다.
    var 이걸로 선언했으니 주의해서 사용하시길......개념은 알거라 생각하고 더이상 설명 안드리겠습니다..
    그럼 전코 하세욤...^^v