464-704경기광주군광주읍 태전리 성원아파트1차(101-108동)
464-704경기남양주시태전리 성원아파트1차(101-108동)
이런 문자열이 있을때 제가 copy를 써서
우편번호
도
시
나머지주소~~~~
이렇게 나누어서 디비에 저장하려구하는데 문제가 있습니다,.
우편번호랑도까지는 각각 7,4 이렇게 길이가 정해저 있는데
시에가면
예를들어서
광주군 6
남양주시 8
이라서 copy 로는 어케 해야할지 모르겠습니다.길이를 6으로 잡으면 남양주시가 짤리고
8로 잡으면 광주군광 까지 나와 버리니 미치겠습니다.
다른 방법이 있을거 같은데,,,워낙 초보라 어제 머리깨지게 찾아봤는데두 해결을 못해
이렇게 도움을 청합니다, 그럼 고수님들 부탁드립니다...그럼...
> 464-704경기광주군광주읍 태전리 성원아파트1차(101-108동)
> 464-704경기남양주시태전리 성원아파트1차(101-108동)
> 이런 문자열이 있을때 제가 copy를 써서
> 우편번호
> 도
> 시
> 나머지주소~~~~
> 이렇게 나누어서 디비에 저장하려구하는데 문제가 있습니다,.
> 우편번호랑도까지는 각각 7,4 이렇게 길이가 정해저 있는데
> 시에가면
> 예를들어서
> 광주군 6
> 남양주시 8
> 이라서 copy 로는 어케 해야할지 모르겠습니다.길이를 6으로 잡으면 남양주시가 짤리고
> 8로 잡으면 광주군광 까지 나와 버리니 미치겠습니다.
> 다른 방법이 있을거 같은데,,,워낙 초보라 어제 머리깨지게 찾아봤는데두 해결을 못해
> 이렇게 도움을 청합니다, 그럼 고수님들 부탁드립니다...그럼...
안녕하세요. 까마귀입니다.
먼저 조건을 설정을 해주는게 좋을것 같군요.
그게 아니라면 위같은 경우는 좀 어려울것 같군요.
조건은 딴게 아니라, 우편번호, 도, 시, 나머지 주소의 구분으로 반드시 한자의 공백을
주는 겁니다. 그러면 쉽게 분리를 할수가 있지요.
이 조건이 성립되지 않은 데이터는 없다는 가정하에 작업을 해야 합니다.
개략적인 설명으로...
폼에 TEditBox가 4개 놓여있고, TButton을 누르면 분리를 한다는 가정으로 설명을 하지요.
최적화는 아니니까 보시고 응용하세요.
procedure TForm1.Button1Click(Sender: TObject);
var
i : array[0..2] of Integer;
j,k : Integer;
s : String;
begin
s := Edit1.Text;
k := 0;
for j := 0 to Length(Edit1.Text) do
begin
if s[j] = ' ' then
begin
i[k] := j;
k := k + 1;
end;
if k = 3 then Break;
end;
Edit2.Text := Copy(Edit1.Text,1,i[0] - 1);
Edit3.Text := Copy(Edit1.Text,i[0] + 1,i[1] - i[0] - 1);
Edit4.Text := Copy(Edit1.Text,i[1] + 1,i[2] - i[1] - 1);
Edit5.Text := Copy(Edit1.Text,i[2] + 1,100);
end;
k가 3이면 빠져나가는 것은 나머지주소에도 ' '이 있을수가 있으니까 검사할 필요 없어요.
배열 i[0] +/- 1 하는것은 공백 ' '을 저장할 필요가 없을것 같아서 입니다.
도움이 될런지 모르겠네요.
위대한 단군혼이 살아있는 나라.... 대한민국.