Q&A

  • 문자열을 꺼꾸로 읽어들일수 있습니까?
'123' 이란 문자를 받아서 '321'로 변환하고 싶은데요.

혹시 내부함수가 있나요?

아니면 방법이라도 좀...



저는 일단 문자열을 받아서 길이를 체크하고 그길이만큼 루핑하면서 그 길이를 인덱스로 하여 다른 문자열의 첫번째 인덱스로 넣어줄려고 했습니다. 루핑은 downto looping입니다.



근데 에러가 뜨거든요..

함 봐주실래요?





procedure TForm1.Button1Click(Sender: TObject);

var

i, j, oddSum, evenSum: integer;

scancode: string;

begin

i := 0;

j := 0;

oddSum := 0;

evenSum := 0;

scancode:= edit1.text;

scancode := Convertstring(scancode);

end;



function TForm1.Convertstring(scancode: string): string;

var

i, j,k: integer;

temp: string;

begin

i := length(scancode);

j:= 0;

for i := length(scancode) downto 0 do

begin

j :=j+1;

temp[i] := scancode[j]; //이부분에서 에러가 납니다...

end;

result:= temp;

end;



3  COMMENTS
  • Profile
    견우2 2000.10.26 06:05
    답을 찾았어요.

    setlength를 안해줘서 그렇더군요.

    타락천사님이 맞추셨네요..

    관심 감사 드리고요.

    의외로 쉽게 해결되었습니다.

    임지희 님께도 감사드립니다.



    그럼 즐코하세요...



  • Profile
    타락천사 2000.10.26 03:05
    안녕하세여.. 타락임다..^^



    함, ..님식으로 함수를 맹글어 봤어여.. 비교해 보세여..



    function ConvertString(AStrSrc: string): string;

    var

    strBuf : string;

    i, nLen: integer;

    begin

    nLen := Length(AStrSrc);

    for i := nLen downto 1 do

    begin

    strBuf := strBuf + AStrSrc[i];

    SetLength(strBuf, nLen - i + 1);

    end;

    result := strBuf;

    end;



    즐푸하세여..



    타락천사...^^



  • Profile
    임지희 2000.10.26 02:15
    견우2 wrote:

    > '123' 이란 문자를 받아서 '321'로 변환하고 싶은데요.

    > 혹시 내부함수가 있나요?

    > 아니면 방법이라도 좀...

    >

    > 저는 일단 문자열을 받아서 길이를 체크하고 그길이만큼 루핑하면서 그 길이를 인덱스로 하여 다른 문자열의 첫번째 인덱스로 넣어줄려고 했습니다. 루핑은 downto looping입니다.

    >

    > 근데 에러가 뜨거든요..

    > 함 봐주실래요?

    >

    >

    > procedure TForm1.Button1Click(Sender: TObject);

    > var

    > i, j, oddSum, evenSum: integer;

    > scancode: string;

    > begin

    > i := 0;

    > j := 0;

    > oddSum := 0;

    > evenSum := 0;

    > scancode:= edit1.text;

    > scancode := Convertstring(scancode);

    > end;

    >

    > function TForm1.Convertstring(scancode: string): string;

    > var

    > i, j,k: integer;

    > temp: string;

    > begin

    > i := length(scancode);

    > j:= 0;

    > for i := length(scancode) downto 0 do

    > begin

    > j :=j+1;

    > temp[i] := scancode[j]; //이부분에서 에러가 납니다...

    > end;

    > result:= temp;

    > end;

    >



    안녕하세요

    제가 보기엔

    에러가날거같네여



    에러나는 부분에 Temp := Temp + scancode[i];



    이렇게 하심이 어떨런지



    실행은 안해바서 잘모름