Q&A

  • edit.text에서 공백부문을 ....


초보자가 글을 올립니다.

table의 주소필드(addr)는 40자리 입니다.

화면상에 주소입력은

edit1.text 의 20자리

edit2.text 의 20자리 이며



주소를 select 할 경우 substring으로 20자리씩 나누어

edit1.text, edit2.text 에 각각 보여집니다.



그러나 insert 할 경우

edit1.text := '서울시';

edit2.text := '송파구';





ParamByName('addr').asstring := edit1.text + edit2.Text;

처럼하여 저장하니

주소에는 '서울시 송파구'가 표시됩니다.



다시 주소를 select 하니

edit1.text 는 '서울시 송파구'

edit2.text 는 ''

처럼 보여집니다.



edit1.text의 나머지 공백부분도 저장할수 없나요.

edit1.text 는 '서울시'

edit2.text 는 '송파구' 처럼말이죠..







4  COMMENTS
  • Profile
    윤병익 2000.04.22 19:25
    초보1 wrote:

    >

    > 초보자가 글을 올립니다.

    > table의 주소필드(addr)는 40자리 입니다.

    > 화면상에 주소입력은

    > edit1.text 의 20자리

    > edit2.text 의 20자리 이며

    >

    > 주소를 select 할 경우 substring으로 20자리씩 나누어

    > edit1.text, edit2.text 에 각각 보여집니다.

    >

    > 그러나 insert 할 경우

    > edit1.text := '서울시';

    > edit2.text := '송파구';

    >

    >

    > ParamByName('addr').asstring := edit1.text + edit2.Text;

    > 처럼하여 저장하니

    > 주소에는 '서울시 송파구'가 표시됩니다.

    >

    > 다시 주소를 select 하니

    > edit1.text 는 '서울시 송파구'

    > edit2.text 는 ''

    > 처럼 보여집니다.

    >

    > edit1.text의 나머지 공백부분도 저장할수 없나요.

    > edit1.text 는 '서울시'

    > edit2.text 는 '송파구' 처럼말이죠..

    >

    >

    >

    안녕하세요.. 델초 입니다...

    몇가지 방밥이 있어보입니다...

    일단 DB에서 Addr Table을 두개로 나눠서 저장한다..

    쉽게 말해 Addr1,Addr2 이렇게

    그리고 Addr1에는 Edit1.Text를 Addr2에는 Edit2.Text를

    그럼 Select해서 불러올때도 SubStr을 사용할 필요가 없어지죠....

    그리고 꼭 위에 적으신 방법으로 하실려면 Addr(Field죠?)의 Tyep을 varchar2가 말고.

    char로 바꿔주세요...char은 공백까지 저장되는걸루 알고 있습니다...]

    그리고 위에 내용을 보면.. 그러니까... 이부분...

    edit1.text := '서울시';

    edit2.text := '송파구';





    ParamByName('addr').asstring := edit1.text + edit2.Text



    이렇게 되면 저장될때부터.. #서울시 송파구 #

    "#"은 공백을 보이게 하게위해서....

    그러므로 SubStr해도 앞에서 20개면.. 당연히 "서울시 송파구 "

    그리고 그다음 20개는 당연히 공백 20개 그래서 그런거 같습니다...

    이렇게 저장되는거 같군요...

    그러니까 Edit1.Text:='서울시 ';

    Edit2.Text:='송파구 ';



    제 설명이 이해가 않가시면 멜주세요..

    그럼 즐코딩하세요....



  • Profile
    하얀까마귀 2000.04.22 20:53
    안녕하세요 하얀까마귀 입니다...



    말씀 처럼 1개의 필드의 내용을 20자리씩 나누어서 사용한다면... 델초님의



    말씀대로 varchar는 안쓰는게 좋겠네요...



    하지만.. 저장하실때 나머지 자리에 공백을 넣어주는 루틴이 필요할것 같네요..



    Function fillSpace( s : String; FillLen : Integer ) :String;

    var

    i : Integer;

    begin

    Result := '';

    if Length(s) >= fillLen then

    begin

    Result := copy(s, 1, FillLen );

    Exit;

    end;

    for i := Length(s) to FillLen do

    s:= s + ' ';

    Result := s;

    end;



    라고 하시면 되겠네요... 음.. 코딩 맞죠??? 오타가 있을지 모르니 조심하세요..



    아!!.. 설명은 넘겨준 문자열에서 넘겨준 길이보다 작으면 나머지 만큼 공백을



    채워 줄겁니다...



    그럼.. 즐거운시간 되세요..



    - 하얀까마귀 -



  • Profile
    초보1 2000.04.22 20:34
    답변 감사합니다.

    그러나 다른 방법을 혹시 아시는지요..

    table은 DBF 파일이거든요.





  • Profile
    윤병익 2000.04.22 21:17
    초보1 wrote:

    > 답변 감사합니다.

    > 그러나 다른 방법을 혹시 아시는지요..

    > table은 DBF 파일이거든요.

    >

    >



    죄송합니다... 다른 방법은 제 머리속엔 없네요...

    암튼.. Addr 필드를 타입을 varchar 로 하면 않될거 같구요..

    char로 해야 할거 같군요...

    그런데.. DBF인거라 필드 타입이랑 무슨 관계죠...

    제가 DBF파일을 사용하는 DB를 써본적이 없어서...

    글구 하얀까마귀님 말씀데로 Edit1.Text에 XXXXX를 입력하면.. 나머지 15칸을 공백으로

    채워야 됩니다.. Edit2.Text도 마찬가지... 그러니까

    Edit1.Text의 Length를 구하고 20에서 Length(Edit1.Text)를 빼고 남은 숫자만큼

    Edit1.Text의 뒤에 공백으로 채워야합니다...

    그러니까.. "경기도"라는 String을 Edit1.Text에 입력했으면 17칸의 공백이 뒤에

    붙어야합니다...

    아니면 위의 답변에도 말씀드렸다시피 Field를 나누는거죠...

    보통.. 주소 테이블의 구조를

    시(도),구(군),동(면) 이런식으로 테이블을 만듭니다..

    그렇지 않고 하나의 Field로 주소를 만드면 지금과 같은 상황입 벌어지죠...

    현재 제 생각으로는 이 두가지 방법 밖에 없을듯...

    후자를 추천하고 싶군요.. Field를 나누는방법....

    별로 도움이 못되드린것 같군요... 죄송합니다...

    그럼 즐코딩하세요....

    • Mr.Q
      2000.04.23 12:09
      현명한용이 wrote: > 레포트로 계산기 프로그램에서 라디오 버튼을 누르면 2진수 8진수 16진수로 변환하는...
    • 초보자
    • 2000.04.23 07:10
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 어린왕자
      2000.04.23 07:38
      초보자 wrote: > combo box에 item이 10개가 있다고 가정해서요. > > 폼 초기화해서 10개의 item을 add...
    • 최용일
      2000.04.23 07:38
      ComboBox1.ItemIndex := 9; 초보자 wrote: > combo box에 item이 10개가 있다고 가정해서요. > > 폼...
    • 이정민
    • 2000.04.23 05:55
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2000.04.23 06:19
      안녕하세요. 최용일입니다. 또 보게 되는군요. 아!! 이름을 잊어버렸네요. 헐헐~~~ 아래 유닛의 에러...
    • nubigo
    • 2000.04.23 01:24
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 윤석천
      2000.04.26 01:20
      nubigo wrote: > string은 sql 문에 > sql.add('select * from "test.db" where name='''+up+''''); > ...
    • 정성훈
      2000.04.23 08:33
      nubigo wrote: > 고수님들 안녕하십니까? > 도움은 못 주고 항상 도움만 받아 미안합니다. > > 미안한...
    • 델Man
    • 2000.04.22 23:59
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 유니
    • 2000.04.22 22:41
    • 3 COMMENTS
    • /
    • 0 LIKES
    • seagod
      2000.04.23 00:40
      델파이 3.0, 4.0사용자를 위한 퀵리포트버젼이 있는걸로 아는데요 요걸 설치를하면 3.0 4.0에서 델파이 2....
    • 유니
      2000.04.24 19:01
      그런가여? 그럼 델파이4.0중에서 퀵레포트용을 구해야 한다는 말씀이신가여? 그럼 혹 그걸 어떻게 구해야...
    • 유니
      2000.04.24 19:01
      그런가여? 그럼 델파이4.0중에서 퀵레포트용을 구해야 한다는 말씀이신가여? 그럼 혹 그걸 어떻게 구해야...
    • kciron
    • 2000.04.22 21:57
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 윤병익
      2000.04.22 21:56
      kciron wrote: > 안녕하십니까? > > 델파이를 이용하여 출력 프로그램을 만들었는데. 최근에 나온 > ...
    • kciron
      2000.04.22 22:04
      윤병익 wrote: > kciron wrote: > > 안녕하십니까? > > > > 델파이를 이용하여 출력 프로그램을 만들...
    • DelChobo
      2000.04.22 22:21
      초보 델파이...백 wrote: > 한글을 유니코드로 바꾸려면 어찌해야 되나요? > > 별 함수도 없는것 같고,...
    • parkisu
      2000.04.23 00:42
      써니 wrote: > 안녕하세요. 델파이 QuickReport에 관해서 너무 급한게 있어서요. > 데이타를 입력하여 DB...
    • 써니
      2000.04.23 08:26
      답변은 감사드립니다. QRDBText를 이용한다는것은 알고 있습니다. 제가 궁금한것은 이 QuickReport하단에 ...
    • 하얀까마귀
      2000.04.22 20:28
      안녕하세요 하얀까마귀 입니다.. ... 문자열을 회전시키는건 안됩니다.... 이건 폰트의 문제니까.......
    • 최정원
      2000.04.22 21:31
      답변 감사합니다. 그런데, 답변하여주신 내용중에서 그래픽으로 처리해야 한다고 하셨는데 어떤식으로 처...
    • 최용일
      2000.04.23 07:55
      안녕하세요. 최용일입니다. 책을 찾아보시는 것이 더 나으실것 같은데요. 대학교재로 쓰이는 그래픽 프...
    • 궁금녀
    • 2000.04.22 19:40
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 강인규
      2000.04.22 23:43
      다중 사용자 환경이라면 디비를 이용하는것이 바람직하고 단일사용자 환경이라면 ini화일을 이용할 수도 있...
    • 윤티
      2000.04.23 09:30
      델코의 자료실에 가면 있을걸요. 패스워드창이라고 .... http://www.delphikorea.com
    • 초보1
    • 2000.04.22 19:00
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 윤병익
      2000.04.22 19:25
      초보1 wrote: > > 초보자가 글을 올립니다. > table의 주소필드(addr)는 40자리 입니다. > 화면상에...
    • 하얀까마귀
      2000.04.22 20:53
      안녕하세요 하얀까마귀 입니다... 말씀 처럼 1개의 필드의 내용을 20자리씩 나누어서 사용한다면... 델...
    • 초보1
      2000.04.22 20:34
      답변 감사합니다. 그러나 다른 방법을 혹시 아시는지요.. table은 DBF 파일이거든요.
    • 윤병익
      2000.04.22 21:17
      초보1 wrote: > 답변 감사합니다. > 그러나 다른 방법을 혹시 아시는지요.. > table은 DBF 파일이거든요...
    • 안경잡이
      2000.04.22 19:41
      SQL문장을 Parsing하시는게 어떤지요? (저같은경우엔 간이 SQL Parser를 제작하여 해결했습니다.)
    • 박용준
      2000.04.22 20:30
      직접 제작하신 SQL Parser의 소스를 볼 수 있을까요. 답변에 갑사드립니다. 행복하세요.