PDA

View Full Version : Hỏi về chuyển đổi dạng dữ liệu từ TEXT sang DATABASE



tsuyoshi
12-10-2011, 13:47
Hỏi về chuyển đổi dạng dữ liệu từ TEXT sang DATABASE

Xin chào các bạn

Tôi muốn chuyển đổi dạng dữ liệu từ TEXT sang DATABASE (và ngược lại).
Cấu trúc dữ liệu dạng text của tôi là

từ 1|dạng thay thế của từ 1|$từ loại A|$phân loại theo ý nghĩa
định nghĩa từ 1

từ 2|dạng thay thế của từ 2|$từ loại B|$phân loại theo ý nghĩa
định nghĩa từ 2

từ 3|dạng thay thế của từ 3(1)|dạng thay thế của từ 3(2)|$từ loại A
định nghĩa từ 3

......
>>>>tại dòng đầu, số lượng dữ liệu cách nhau bằng dấu '|' và không cố định số lượng dữ liệu (tối đa là khoảng 7 dữ liệu)
>>>>tại dòng 2, định nghĩa chỉ có một hàng. Có thể rất dài và sử dụng tag HTML (<br>....)
>>>>các hàng cách nhau một dòng trắng thể hiện dòng dữ liệu mới.

Tôi muốn đổi sang dạng database (MySQL)...
Cấu trúc database:
cột 1="từ"(từ 1, từ 2....)
cột 2-7="dạng thay thế từ" (dạng thay thế từ 1, dạng thay thế từ 2, dạng thay thế từ 3......)
cột 8-12="phân loại" (những phân loại theo dạng có dấu $)
cột 13="định nghĩa" (nghĩa của các từ 1, 2, 3....)

>>>tới đây tôi như bị "tự mâu thuẫn" với những gì mình đang nghĩ.

Xin mọi người giúp đỡ.
Chủ đích của việc chuyển dữ liệu này là để dễ quản lý database (từ điển). Cụ thể như dễ cập nhật định nghĩa, dễ chiết xuất dữ liệu ra sử dụng cho những mục đích khác. Vì nếu như để dạng text không thì rất khó quản lí.

Xin cảm ơn.

NOB

wto.vman
13-10-2011, 11:38
Cái này bạn phải nhớ ai đó biết lập trình. Viết 1 hàm đọc file text, sau đó insert dữ liệu đọc được qua database MySQL (theo cấu trúc như bạn mong muốn). Việc này đối với 1 developer thì không có gì khó khăn cả.

megaownage
08-11-2011, 13:57
Mởi file txt ra, copy nguyên tất cả sang ms word (trong word dễ chỉnh sủa hơn notepad)
Mởi file word ra, chỉnh sửa như sau:

1- Mỗi một từ là một dòng
2- Chuẩn hóa lại mỗi dòng đều có 6 cột "$từ loại" và 5 cột "$phân loại theo ý nghĩa". Nếu dòng nào có dưới con số trên thì phải thêm cột trống vào cho đủ số
3- Đổi tất cả các dấu phẩy (,) thảnh một ký hiệu khó thể trùng hợp, vd như chuỗi xyz123xyz
4- Đổi tất cả | thành ra dấu phẩy
6- Chọn dòng dài nhất chuyển vị trí lên đầu. Các phần mềm chuyển dữ liệu dùng vài dòng đầu tiên để xác định độ dài của trường cho nên làm thế này sẽ tránh rắc rối về sau.
7- Ctrl+A (chọn tất cả text), Ctrl+C (copy)
8- MỞ một file txt mới trong notepad
9- Ctrl+V (paste clipboard)
10- Save file as myData.csv

Nếu trong file trên không có các ký hiệu xyz123xyz (tức là bạn không qua bước 3 vì data của bạn không có dấu phẩy từ đầu) thì bạn có thể import trưc tiếp file csv này vào mySQL

Nếu trong file có xyz123xyz thì cách dễ hơn cả mở file bằng Excel, save lại thành xls
Kế đó đổi tất cả các dấu hiệu xyz123xyz thành dấu phẩy trở lại
Import file excel sang mySQL

Việc chuẩn hóa thì tùy theo ý nghĩa data của bạn. Bạn không cho biết hết ý nghĩa của dữ liệu thì không ai có thể giúp bạn chuẩn hóa cả.

sonC0609k
27-11-2011, 21:43
Bạn có thể xem qua về cơ chế bulk insert và BCP của DBMS

http://msdn.microsoft.com/en-us/library/ms188365.aspx
hi vọng giúp được.

The Old Man
27-11-2011, 23:51
Mở một empty datbase.dbf mà field name phù hợp theo thứ tự với tin tức bạn có trong text file.
Dùng lệnh Append from (textfile.txt) dellimited with "|"


Trong Textfile đó mổi hàng đại diện cho một record.
Trong mổi hàng field name là hàng chữ được cách nhau bởi dấu "|".
Textfile có bao nhiêu hàng thì database của bạn có bấy nhiêu records.

Làm như trên là khi nào mình có sẳn có textfile do ai đó có sắn đưa cho mình, vì dụ tử một list của report in ra.
Database conversion là một job đòi hỏi rất nhiếu kiến thức căn bản "Cơ sở dữ liệu" cộng chung với sự thành thạo vể các code đạo hàm (module, function) chuyễn đổi DL (text) từ một form này qua form khác. Không đơn thuần là lệnh "append from" mà thôi.