먼저.. 소스를 열람하지 않았습니다. 지송~
네, 안녕하세요.
제품바코드(8801234123456)을 읽은 후 각각
제품바코드별로 리딩한 카운팅 화일로
생성하는 프로그램을 만들려고 합니다.
그런데 동일한 제품바코드를 계속 읽을 경우
카운팅을 해서 화일 생성이 가능한데요.
랜덤하게 제품바코드를 읽을 경우에는
총합으로 제품바코드를 집계하는 방법을 모르겠어요.
예를 들어서, 다음과 같이 총 6번 스캔했다면요.
첫번째로 8801234000001 읽고
두번째로 8801234000001 읽고
세번째로 8801234000001 읽고
네번째로 8801234000002 읽고
다섯째로 8801234000002 읽고
여섯째로 8801234000001 읽고
저장버튼을 클릭하면 제품바코드
현재의 프로그램은 스캔한 카운팅이 화일로 다음과 같이 생성이 됩니다
날짜, 바코드, 카운팅
20081116, 8801234000001, 3
20081116, 8801234000002, 2
20081116, 8801234000001, 1 이런식으로요.
그런데 이런식으로 화일이 생성되었으면 합니다.
20081116, 8801234000001, 4
20081116, 8801234000002, 2
고수님의 설명 부탁드립니다. 끝까지 읽어 주셔서 고맙습니다.
첫번째 필드는 앞에는 날짜가 생성되는군요.
두번째는 바코드 값 이구..
새번째는 바코드의 총 갯수네요.
정렬이 필요하신지는 이야기 하지 않으셔서.. 그냥 갑니다.
일단 바코드값이 중복되는지에 대한 검사를 먼저해야 합니다.
물건의 종류가 얼마나 많은지는 알수 없지만....
대략적으로 약 1000 개가 있다고 가정 합니다.
왜 약 1000개냐.. 지금 배열을 만들 것이기 때문입니다.
그럼 날짜는 생략하구요.
Type typCode
barcode as string * 13
cnt as integer
end type
Dim bcode(1 to 1000) as typCode
이런걸 생성합니다. 모듈에 하시면 좋겠지요.
이제~ 바코드를 읽어 값을 받아오는 부분이 있다고 가정하구요..
코드를 작성합니다.
sub Timer1()
dim value as string
dim ok as boolean
value = 바코드값수신함수 <-- 가정
if val(vlaue) > 0 and len(value) = 13 then
ok = false
for i = 1 to 1000
if bcode(i).barcode = value then
bcode(i).cnt = bcode(i).cnt + 1
ok = true
exit for
elseif bcode(i).barcode = "" then
exit for
end if
next i
'// 일치하는 바코드가 없으면...
if ok = false then
bcode(i).barcode = value '// 새 바코드 할당
bcode(i).cnt = 1
end if
end if
end sub
이렇게 하면 되겠지요?
파일 저장은~ ^^ 공부해보셔요~