1. Trang chủ
  2. » Giáo Dục - Đào Tạo

sáng kiến kinh nghiệm - ghép và chuyển tập tin

22 298 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 22
Dung lượng 210,81 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Sau khi có kết quả thi học kỳ, nhà trường có yêu cầu chọn ra các đối tượng học sinh như : học sinh giỏi hoặc yếu bộ môn nào đó … Để công việc được thực hiện nhanh chóng trên tập tin dữ l

Trang 1

GHÉP HAI TẬP TIN *.DBF THÀNH TẬP TIN THỨ BA *.DBF

A PHẦN MỞ ĐẦU

Để quản lý học sinh bằng máy tính, nhà trường chúng tôi sử dụng phần lớn trên FoxPro

Hai tập tin quản lý cơ bản là KHOI*.DBF và HK*.DBF ( Chẳng hạn : Ở Học kỳ 1 để quản lý học sinh Khối 10 có hai tập tin KHOI10.DBF và HK110.DBF ) : Trong đó tập tin KHOI*.DBF lưu trữ lý lịch học sinh và tập tin HK*.DBF lưu trữ điểm số của học sinh ở học kỳ 1 hoặc học

kỳ 2 của một khối Hai tập tin này có số records bằng nhau và liên kết với nhau qua MAHS Sau khi có kết quả thi học kỳ, nhà trường có yêu cầu chọn ra các đối tượng học sinh như : học sinh giỏi hoặc yếu bộ môn nào đó … Để công việc được thực hiện nhanh chóng trên tập tin dữ liệu, không phải lập trình, chúng tôi sử dụng chương trình “Ghép hai tập tin *.DBF “ vào việc ghép hai tập tin này lại với nhau để có được một tập tin thứ ba, tập tin này vừa lưu trữ

lý lịch học sinh vừa lưu trữ điểm số trong một học kỳ của học sinh

Chương trình “ Ghép hai tập tin *.DBF “ được chúng tôi viết vào cuối tháng 8 năm

1995, khi mà máy tính trường chúng tôi bị Virus, các dữ liệu Tuyển Sinh 10 trên ổ cứng máy

386 bị mất sạch, chỉ còn lưu trữ trên các đĩa dự phòng 1M4 và chỉ có thể đọc các dữ liệu này

trên Foxproln và trên các đĩa mềm Yêu cầu chia lớp Khối 10 vào đầu năm học gần kề, buộc

chúng tôi phải ghép hai tập tin THISINH.DBF và NHAPDIEM.DBF thành một tập tin để có cơ

sở dữ liệu quản lý Và từ đó chương trình “ Ghép hai tập tin *.DBF “ đã giúp chúng tôi vượt qua khó khăn đang gặp phải

Ngoài việc quản lý học sinh trên FoxPro, một số dữ liệu còn được nhập trên Excel, việc

quản lý dữ liệu trên bảng tính Excel giúp chúng tôi dễ sửa chữa, dễ copy hoặc cắt, dán các mẫu

tin Excel hỗ trợ chúng tôi trong việc Sort dữ liệu để có thể chọn ra các đối tượng học sinh theo

yêu cầu của nhà trường Vào tháng 7 năm 1998, chúng tôi nhập dữ liệu xét tuyển học sinh 10

bằng Excel Đến tháng 8 năm 1998 chúng tôi cần chuyển dữ liệu này sang sử dụng các chương trình quản lý học sinh đã được viết sẵn từ nhiều năm trước đó trên Foxpro Khó khăn mà

Trang 2

chúng tôi vướng phải là khi Save tập tin *.XLS với kiểu *.DBF thì các Fonts 2 bytes của VNI không được giữ nguyên mà bị chuyển sang một số ký tự lạ Để khắc phục tình trạng này chúng tôi phải Save tập tin *.XLS sang tập tin *.TXT , rồi từ tập tin *.TXT chúng tôi dùng chương trình “Chuyển tập tin *.XLS thành tập tin *.DBF “ để tạo tập tin *.DBF và từ đó chương trình này ra đời

Sau nhiều năm sử dụng không gặp lỗi, chúng tôi xin hân hạnh được giới thiệu hai

chương trình này, với hy vọng rằng, có thể hỗ trợ phần nhỏ việc quản lý học sinh bằng Foxpro

mà một số trường đang sử dụng

Trang 3

 Khi yêu cầu mở tập tin *.DBF thứ nhất bạn phải mở tập tin chủ trước, sau đó bạn

mở tập tin *.DBF thứ hai

 Khi yêu cầu cho tên tập tin xuất, bạn nhập tên tập tin thứ ba là tập tin ghép của hai tập tin đã được chọn trước đó

II.Sơ lược thuật toán của chương trình ghép hai tập tin *.DBF thành tập tin thứ ba *.DBF:

 Mở tập tin *.DBF (TT1.DBF) thứ nhất ở SELE 1 và mở tập tin *.DBF (TT2.DBF) thứ hai ở SELE 2

 COPY STRUCTURE EXTENDED tập tin TT1.DBF đến TAM1.DBF ở SELE 1

và tập tin TT2.DBF đến TAM2.DBF ở SELE 2

 Mở TAM1.DBF, mang dữ liệu từ TAM2.DBF vào TAM1.DBF và tìm hai records giống nhau để xóa record thứ hai ( như MAHS chẳng hạn ) Khi đó các records

Trang 4

trong TAM1.DBF theo thứ tự là tên các fields của TT1.DBF và TT2.DBF ( không có 2 records có FIELD_NAME trùng nhau )

 Mở tập tin *.DBF (TT1.DBF) thứ nhất ở SELE 1 và mở tập tin *.DBF (TT2.DBF) thứ hai ở SELE 2 và sắp xếp 2 tập tin này theo Field có tên chung ( như MAHS chẳng hạn ) Sau đó chép TT1.DBF (có sắp xếp theo mã chung) đến TAM3.DBF và chép TT2.DBF (có sắp xếp theo mã chung) đến TAM4.DBF

 Tạo tập tin xuất ( tập tin &KQ) từ tập tin có cấu trúc đặc biệt TAM1.DBF và

mở tập tin &KQ, chép dữ liệu từ tập tin TAM3.DBF vào &KQ

 Ở SELE 1 mở &KQ và ở SELE 2 mở TAM4.DBF Sau đó lấy tuần tự các records của TAM4.DBF chép vào &KQ

 Mở &KQ và cho bạn kiểm tra bằng lệnh Brow

III Chương trình ghép hai tập tin *.DBF thành tập tin thứ ba *.DBF :

* PROGRAM : GHEP2DBF.PRG (GHÉP 2 FILES *.DBF)

* NGUOI VIET : PHAM VAN LUAT

* NGAY VIET : 24 & 25/08/1995

* DON VI : DOC BINH KIEU

* -

Trang 5

SET TALK OFF

SET SAFE OFF

SET CONS OFF

CLEA

SELE 1

@10,12 SAY "HAY MO TAP TIN THU NHAT DE KET NOI "

WAIT WIND" AN PHIM BAT KY DE TIEP TUC"

@12,12 SAY "HAY MO TAP TIN THU HAI DE KET NOI "

WAIT WIND" AN PHIM BAT KY DE TIEP TUC"

Trang 6

SET DEFA TO LEFT(DBF(),RAT("\",DBF()))

* BUOC 1 : CHUAN BI DOC CAC FIELDS FILE THU 2 :

Trang 7

ENDFOR

* BUOC 2 : DOC CAC FIELDS FILE THU 2 RA FILE TAM2:

STORE LEFT(DBF(),RAT("\",DBF()))+"TAM2.DBF" TO TAM2

COPY STRU EXTE TO &TAM2

* BUOC 3 : DOC CAC FIELDS FILE THU 1 RA FILE TAM1:

SELE 1

USE &FILE1

STORE LEFT(DBF(),RAT("\",DBF()))+"TAM1.DBF" TO TAM1

COPY STRU EXTE TO &TAM1

USE &TAM1

SOFA=RECC()

* BUOC 4 : CHEP CAC RECORDS FILE TAM2 VAO TAM1 :

APPE FROM &TAM2

Trang 8

* BUOC 5 : KIEM TRA HAI RECORDS GIONG NHAU DE XOA 1 RECORD O TAM2 :

FOR KIEMTRA=1 TO SOFA

* BUOC 6 : SAP XEP FILE1 VÀ FIEL2 THEO MA CHUNG VÀ CHEP DU LIEU

DA SAP XEP DEN TAM3.DBF VA TAM4.DBF

Trang 9

SELE 2

USE &FILE2

STORE LEFT(DBF(),RAT("\",DBF()))+"SX2.IDX" TO SX2

INDE ON &KTHK TO &SX2

STORE LEFT(DBF(),RAT("\",DBF()))+"TAM4.DBF" TO TAM4

INDE ON &KTHK TO &SX1

STORE LEFT(DBF(),RAT("\",DBF()))+"TAM3.DBF" TO TAM3

COPY TO &TAM3

* BUOC 7 : TAO FILE GHEP :

Trang 10

CREA &KQ FROM &TAM1

USE &KQ

* BUOC 8 : CHEP CAC RECORDS O FILE1 VAO FILE XUAT :

APPE FROM &TAM3

* BUOC 9 : CHEP CAC RECORDS O FILE2 VAO FILE XUAT :

FOR I=1 TO SOFI

Trang 11

REPL &LUAT WITH TAM

Trang 12

ERASE &SX2

SET TALK ON

SET SAFE ON

RETURN

Trang 13

B Chương trình 2 :

Chuyển tập tin *.XLS thành tập tin *.DBF

(XLSTODBF.PRG)

I Hướng dẫn sử dụng :

 Tập tin *.XLS trước hết bạn Save As dưới dạng *.TXT và bạn phải nhớ tên các

Fields trong tập tin này để nhập trong lúc chạy chương trình Chuyển tập tin *.XLS thành

 Tập tin hỗ trợ chương trình này có tên THU.DBF có cấu trúc :

Trang 14

Field Field Name Type Width Dec Index Collate

1 TACH Character 254

** Total ** 255

Nếu bạn muốn chạy chương trình XLSTODBF.PRG bạn hãy tạo trước tập tin THU.DBF trong thư mục của bạn và sửa lại đường dẫn ( đường dẫn của chương trình là C:\SKKN) của chương trình XLSTODBF.PRG

II Sơ lược thuật toán của chương trình XLSTODBF.PRG:

 Mở tập tin THU.DBF

 Chép dữ liệu đến THU.DBF từ tập tin *.TXT bởi lệnh APPEND FROM *.TXT

DELIMITED

 Đếm số ký tự TAB ( mã 9 bên bảng ASCII ) + 1 là số fields của tập tin *.DBF

 Tạo tập tin TAM1.DBF bởi lệnh COPY STRUCTURE EXTENDED, xóa các records cũ, chép tên các records mới vừa được nhập từ bàn phím, kiểu các fields (Field_Type) mặc định là “C” độ rộng các field ( Fiel_Len) mặc định là 40

 Tạo tập tin TAM2.DBF từ tập tin TAM1.DBF và mở tập tin TAM2.DBF

Trang 15

 Sele 1 mở tập tin THU.DBF, cắt mỗi records theo từng Field của THU.DBF và chép vào tập tin TAM2.DBF ở SELE 2 ở record tương ứng sau lệnh APPEND BLANK Quá trình lặp lại cho đến khi con trỏ đi đến record cuối cùng của THU.DBF và chép các fields của record này vào record cuối cùng của tập tin TAM2.DBF

*.DBF mà bạn đặt tên lúc đầu tiên chạy chương trình XLSTODBF.PRG bởi lệnh COPY

TO

III Chương trình XLSTODBF.PRG:

* PROGRAM : XLSTODBF.PRG (Chuyển tập tin *.XLS thành tập tin *.DBF)

* NGUOI VIET : PHAM VAN LUAT

* NGAY VIET : Tháng 08/1998

* DON VI : DOC BINH KIEU

* -

SET SAFE OFF

SET TALK OFF

SET CONS OFF

Trang 16

STOR ALLT(FILENGUON) TO FIELNGUON

STOR ALLT(FILEXUAT) TO FIELXUAT

USE C:\SKKN\THU

ZAP

APPE FROM &FIELNGUON DELI

DEM=0

Trang 17

FOR I=1 TO LEN(ALLT(TACH))

IF SUBS(ALLT(TACH),I,1)=" " && ASC(" ") = 9 ( Phím Tab )

STOR SPAC(10) TO TENFIEL

FOR I=1 TO DEM+1

@1,5 SAY " CHO TEN FIELD "+ ALLT(STR(I)) GET TENFIEL(I)

READ

ENDFOR

* BUOC 3 : TAO TAP TIN CHO NGUOI SU DUNG :

COPY STRU EXTE TO C:\SKKN\TAM1.DBF

Trang 18

USE C:\SKKN\TAM1.DBF

ZAP

FOR I=1 TO DEM+1

APPE BLANK

REPL FIELD_NAME WITH TENFIEL(I)

REPL FIELD_TYPE WITH "C"

REPL FIELD_LEN WITH 40

ENDFOR

CREA C:\SKKN\TAM2 FROM C:\SKKN\TAM1

* CHEP TU FILE *.TXT SANG *.DBF :

SELE 1

USE C:\SKKN\THU

SELE 2

USE C:\SKKN\TAM2

Trang 20

CHUOI=A

SELE 2

STOR FIEL(SOLAN) TO TEN

REPL &TEN WITH CHUOI

A=""

ENDIF

SELE 2

STOR FIEL(SOLAN+1) TO TEN

REPL &TEN WITH CHUOI

Trang 22

C XÁC MINH CỦA CÁC GIÁO VIÊN CÓ SỬ DỤNG CÁC CHƯƠNG TRÌNH TRÊN :

Kiều ,

Hỗ trợ công tác dạy và học cho BGH

Ngày đăng: 14/03/2014, 09:07

HÌNH ẢNH LIÊN QUAN

 Đếm số ký tự TAB ( mã 9 bên bảng ASCII ) +1 là số fields của tập tin *.DBF - sáng kiến kinh nghiệm - ghép và chuyển tập tin
m số ký tự TAB ( mã 9 bên bảng ASCII ) +1 là số fields của tập tin *.DBF (Trang 14)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w