이거 몰라! ~
매년 전국 일반고등학교 입학 신청 과정에서 수험생들은 모두 등록정보카드를 작성해야 하고, 전체 학생들은 자신의 이름 중 한자에 해당하는 국제위치코드를 긴장하게 검열하며, 종종 카드 작성 시간이 빠듯해서 반 전체가 위치코드 수첩을 한 권 뺏는다. (윌리엄 셰익스피어, 윈스턴, 공부명언) (윌리엄 셰익스피어, 템플릿, 독서, 독서, 독서, 독서) 필자는 VFP 애플릿을 작성하여 학교의 학생 정보 데이터베이스 테이블 G97.DBF, 새로 추가된 위치 코드 필드 (문자, 16 비트), 프로그램을 실행하여 즉시 새로 추가된 위치 코드 필드가 이미 채워져 있는 것을 보고 학번, 이름, 위치 코드 세 필드를 함께 인쇄하면 매우 편리하다. (데이비드 아셀, Northern Exposure (미국 TV 드라마), Northern Exposure (미국 TV 드라마), 학교명언)
각 한자 인코딩 체계에는 한자변환 프로그램이 있어 이를 통일된 기계 내부 코드 (ASC 코드) 로 변환하고, 받은 2 바이트 (국가 코드) 를 최고자리에' 1' 을 더하면 내부 코드를 얻을 수 있다.
국제 위치 코드+2020h = 국가 코드, 국가 코드+8080h = 내부 코드, 따라서 국제 위치 코드 = 내부 코드--A0A0H.
각 한자는 2 바이트로 구성되어 있으며, 국제 지역 코드의 지역 코드는 함수 substr () 를 통해 한자의 이전 바이트 (즉, 전반부 한자) 의 ASC 코드에서 160(A0H) 을 빼서 얻을 수 있으며, 비트코드는 한자 다음 바이트의 ASC 코드에서 160(A0H) 을 빼서 얻을 수 있습니다. 예를 들면 다음과 같습니다
프로그램은 G97.DBF 파일에서 레코드별로 외부 루프로 구성된 2 층 루프로 구성되며 위치 코드 필드를 replace with 대체 명령으로 채웁니다. 내부 루프는 이름 필드의 위치 코드를 축 어적으로 평가하고 if-endif 판단문에 의해 이름 필드에서 1 바이트를 제거합니다 이 프로그램은 VFP6.0 이 작성하며 적절한 수정을 하면 FoxBASE++프로그램이 될 수 있습니다.
* 위치 코드 변환 프로그램 목록
* 정보 프롬프트 인터페이스로 단일 문서 창 wn1 생성 및 정의
Define window win1 from 1, 1 ~ 30,90 font' 이탤릭체', 14;
Style 'B'title' 정보 창' panel close nofloat grow no minimize zoom color b/gr+
* 사용자 지정 창 표시 wn1
창 win1 보기
* 사용자 지정 창 활성화 wn1
Activate window win1
* 데이터베이스 열기 ... 창 wn1 에 프롬프트 표시
If! Dbused ('g97')
Set talk off
@ 4,4 say now, the G97.DBF is being changed! 〈냬
@ 8,5 say changed
@8, 14say ...... 꿩
Use d: \ fox \ g97.dbf
& & 데이터베이스 이름과 위치는 스스로 조정할 수 있습니다
ENDIF
* 현재 데이터베이스 테이블의 총 레코드 수 통계
N=reccount()
I = 1&&변수 I 는 테이블 레코드 루프의 루프 변수
입니다Do while I < = n
@ 8,22 say I
Qwma = 꿩
&&레코드 I 의' 이름' 필드에 대한 위치 코드 변수 qwma 초기화
Go I
Xm=TRIM (이름)
이름 필드의 후행 공백 제거
Sl = len (XM)&&계산' 이름' 필드의 길이
J=1
Do while j < = sl
* 1 바이트 하위 문자열 B1, B2
B1=substr(xm, j, 1)
B2=substr(xm, j+1,1)
* 서브 문자열 B1, B2 의 기계 내부 코드 (예: ASC 코드) 가져오기
Num1=asc(b1)
Num2=asc(b2)
* 전각 문자 (한자) 인지, 구코드 qum 과 비트코드 weim
인지 판단한다If (num 1) 160) 및 (num 2) 160) 및 (j < sl)
Qum = num1-160
Weim = num2-160
* qwma < 10 (we
Im < 10) 상황
* 숫자 앞에 0 을 추가합니다. 예를 들어' 8' 은' 08' 로 변경됩니다
Do case
케이스 (qum) 9) 및 (weim) 9)
Qwma = qwma+꿩+str (qum, 2)+str (weim, 2)
케이스 (qum) 9) 및 (weim < = 9)
Qwma = qwma+'시+str (qum, 2)+'0 시+str (weim, 1)
케이스 (qum < = 9) 및 (weim) 9)
Qwma = qwma+'꿩+'0 꿩+str (qum, 1)+str (weim, 2)
케이스 (qum < = 9) 및 (weim < = 9)
Qwma = qwma+'꿩+'0 꿩+str (qum, 1)+'0 꿩+str (weim, 1)
Endcase
J = j+1&&바이트 루프 변수 증가 1
Endif
J = j+1&&바이트 루프 변수 증가 1
Enddo
Replace 위치 코드 with qwma
레코드' 위치 코드' 필드를 위치 코드 qwma
로 대체합니다I = I+1&&다음 레코드
Enddo
Wait〃' 아무 키나 누르십시오 ... 다음 데이터 탐색 또는 수정' window at 30, 10 timeout 15
Zoom window win1max &&창 wn1 최대화
Browse & & 데이터베이스 테이블 보기
릴리즈 창 win1
Use
리턴
장근석 주연의 사랑비는 언제 개봉합니까
정주중원구 성세 와룡성북은 어느 동네에 속해 있습니까