txt정보를 comma로 구분해서 DB 각 필드로 입력하려고 합니다
그런데 string 길이가 일정치 않고 아래처럼
1번=>82000111,뉴코아 분당,,,,,ST,,,,,,,,,,,,뉴코아 분당 =>list[18]까지
2번=>82000222,신 림,,,,,ST,,,,,,,,,,,,신 림,,,,,02,999-1111 =>list[24]까지
List.commaText := S;
List.count 세어보면 1번이 18 , 2번이 24개입니다
그런데 실제로는 한글로 된 string 정보가
'신 림' 이 1개 필드로 잡히지 않고 '신' 과 '림' 두 list[] 로 잡혀집니다
'뉴코아 분당' 이 '뉴코아' 와 분당'이 아닌
하나로 통째로 들어가게 하고 싶습니다
[대략소스]
while not Eof(F) do
begin
Readln(F, S);
List := TStringList.Create;
List.commaText := S;
vdcd := List[0]; //코드
vdnm := List[1]; //이름
if list.Count > 20 then
tel := List[23]+'-'+List[24];
else
tel := ' ';
=> 이 부분에서 24번째가 온전한 24번째가 안된다는 얘기입니다
if copy(vdcd,1,3)='820' then //820은 table2로 그외는 table1
begin
table2.Insert; //shopfa
table2['ACD03_FACD'] := VDCD ;
table2['ACD03_FANM'] := VDNM;
table2.Post;
S :='';
end
else
begin
table1.Insert;
table1['ACD03_VDCD'] := VDCD ;
table1['ACD03_VDNM'] := VDNM;
table1.Post;
S :='';
end;
VDCD :='';
VDNM :='';
end; // while not eof do end
//====================================================================
function String2Strings(value: string; SEPARATOR : char ): TStrings;
//--------------------------------------------------------------------
var lSTRS : TStringList;
var i : integer;
var lSTR : string;
begin
value:=value+SEPARATOR;
lSTR :='';
lSTRS:=TStringList.Create;
for i:=1 to length(value) do
begin
if value[i]=SEPARATOR then
begin
lSTRS.ADD(lSTR);
lSTR:='';
end
else
begin
lSTR:=lSTR+value[i];
end;
end;
result:=lSTRS;
end;
//===================================================================
이렇게 쓰시면....
List:=String2Strings(S,','); <---------요거