KetcauSoft


Đăng trả lời 
 
Đánh giá chủ đề:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
VB .NET - Đọc dữ liệu từ Etabs
10-17-2012, 09:20 AM (Bài viết đã được chỉnh sửa: 10-17-2012 09:22 AM bởi Ho Viet Hung.)
Bài viết: #1
VB .NET - Đọc dữ liệu từ Etabs
Đối với lập trình thiết kế kết cấu, việc đọc dữ liệu từ Etabs là một vấn đề tương đối cần thiết, bới chúng ta thường phải dựa vào Etabs để giải quyết các vấn đề sau:
  • Tính toán các tải trọng Gió và Động đất (dựa vào dữ liệu về các dạng dao động)
  • Tính toán móng (dựa vào phản lực chân cột)
  • Tính toán diện tích cốt thép Dầm, Cột (dựa vào nội lực)
  • Xuất bảng kiểm tra các điều kiện chuyển vị như chuyển vị đỉnh nhà, chuyển vị lệch tầng ...
Một phương thức chủ yếu để đọc dữ liệu từ Etabs là thông qua file *.mdb được xuất ra từ Etabs. Đây là một cơ sở dữ liệu chứa đựng hầu hết thông tin về mô hình của Etabs chỉ duy nhất trong 1 file.
Với tiền đề đó, mình tiến hành các bài viết hướng dẫn về việc đọc dữ liệu từ Etabs thông qua file *.mdb

Cơ cấu đọc dữ liệu tương đối đơn giản. Tuy nhiên với lượng dữ liệu khổng lồ, việc quản lý và sử dụng dữ liệu như thế nào mới là vấn đề cần đến kỹ thuật khéo léo của người lập trình.

Bài viết dựa trên ví dụ có thể download tại đây: link download

Hy vọng có thể giúp ích cho mọi người

Công ty TNHH Kết Cấu WEFLY - http://www.wefly-str.com

[Hình: p2015102801.png]
Tham quan website của thành viên này Tìm tất cả bài viết của thành viên này
Trích dẫn bài viết này trong bài trả lời
 Thanks given by: grfxcfwx85 , xfzybjan75
10-17-2012, 09:29 AM (Bài viết đã được chỉnh sửa: 10-17-2012 09:31 AM bởi Ho Viet Hung.)
Bài viết: #2
RE: VB .NET - Đọc dữ liệu từ Etabs
Phần 1: Các thiết lập cần thiết cho VB

Để hoạt động được với file *.mdb, VB .NET cần có các thiết lập như sau:

1. Chuyển phần mềm sang chế độ 32 bit, thiết lập được tiến hành trong mục Project > [tên project] Properties ... > Compile > Advanced Compile Options > Taget CPU

[Hình: 0101Setup-Pic1.png]


[Hình: 0102Setup-Pic2.png]


2. Tham chiếu đến thư viện System.Data.OleDb

[Hình: 0103Setup-Pic3.png]

Công ty TNHH Kết Cấu WEFLY - http://www.wefly-str.com

[Hình: p2015102801.png]
Tham quan website của thành viên này Tìm tất cả bài viết của thành viên này
Trích dẫn bài viết này trong bài trả lời
 Thanks given by: Doonydeadly , franyt1
10-17-2012, 09:49 AM
Bài viết: #3
RE: VB .NET - Đọc dữ liệu từ Etabs
Phần 2: Chuẩn bị về dữ liệu

Dữ liệu trong Etabs xuất ra dưới dạng file *.mdb, được lưu dưới tên vidu.mdb, có địa chỉ nằm trong thư mục Debug của phần mềm (cùng thư mục với file *.exe của chúng ta)

[Hình: 0201Get-Pic1.png]



Xin nói qua 1 chút về dữ liệu

[Hình: 0202Get-Pic2.png]


Mở file bằng phần mềm Microsoft Access để thấy cấu trúc của dữ liệu.
Dữ liệu được trình bày thành các bảng với tên tương ứng, chúng ta có thể thấy danh sách các bảng trong cột bên trái.
Truy cập bảng Story Data, chúng ta sẽ thấy bảng này gồm 4 cột với các nội dung sau: cột 1 - Story - chứa tên của tầng, cột 2 - Height - chứa thông tin về chiều cao tầng, cột 3 - Elevation - chứa thông tin về cao độ của tầng, cột 4 - similarTo - chứa thông tin về quan hệ giữa các tầng điển hình
Bảng Story Data có 18 dòng dữ liệu (không kể dòng trống cuối cùng) tương ứng với thông tin về 17 tầng và thông tin về tầng Base

Hãy hình dung về cách truy cập dữ liệu của chúng ta khi sử dụng VB .NET, chúng ta sẽ tuy cập dữ liệu theo trình tự sau:
  1. Mở file
  2. Truy cập vào bảng Story Data
  3. Truy cập vào các dòng (biến row), tương ứng là dữ liệu của 1 tầng. Chú ý là thứ tự các dòng bắt đầu từ 0
  4. Tại mỗi dòng, truy cập vào các cột để lấy thông tin của tầng. Chú ý là thứ tự các cột bắt đầu từ 0.

Ví dụ, muốn đọc thông tin về tên tầng của dòng thứ 5, chúng ta dùng cú pháp sau:

Code:
Ten_Tang = DS.Tables("Story Data").Rows(4).Item(0)

trong đoạn code trên,
  • DS.Tables("Story Data") là bảng Story Data
  • Rows(4) là dòng thứ 5 của bảng, dòng này có số thứ tự bằng 4
  • Item(0) là cột thứ 1 của dòng (cột Story), có số thứ tự bằng 0

Công ty TNHH Kết Cấu WEFLY - http://www.wefly-str.com

[Hình: p2015102801.png]
Tham quan website của thành viên này Tìm tất cả bài viết của thành viên này
Trích dẫn bài viết này trong bài trả lời
 Thanks given by: pay day loan , VaRd , rosemarieqg1 , judithyn16
10-17-2012, 09:54 AM
Bài viết: #4
RE: VB .NET - Đọc dữ liệu từ Etabs
Phần 3: Xây dựng giao diện và các modul

Chúng ta xây dựng phần mềm gồm có 1 form với tên frmMain và 1 modul với tên molMain

[Hình: 0203Get-Pic3.png]


Giao diện của frmMain như sau

[Hình: 0205Get-Pic5.png]


Giao diện bao gồm
  • 2 nút lệnh: Đọc 1 dòng có tên butDocMotDong, Đọc cả bảng có tên butDocCaBang
  • 1 Listbox có tên lstStory

Công ty TNHH Kết Cấu WEFLY - http://www.wefly-str.com

[Hình: p2015102801.png]
Tham quan website của thành viên này Tìm tất cả bài viết của thành viên này
Trích dẫn bài viết này trong bài trả lời
 Thanks given by: Doonydeadly , dwightem4
10-17-2012, 10:03 AM
Bài viết: #5
RE: VB .NET - Đọc dữ liệu từ Etabs
Phần 4: Nội dung của modul molMain

[Hình: 0204Get-Pic4.png]

Trong molMain, chúng ta xây dựng một kiểu dữ liệu mới chứa thông tin về các tầng, bằng cách sử dụng cấu trúc Structure tại dòng thứ 2. Kiểu dữ liệu các tầng sẽ có tên Story_Info, chứa đựng 2 thông tin là A_Lable để lưu tên tầng và B_Elevation để lưu cao độ của tầng.

Tại dòng số 7 chúng ta khai báo mảng 1 chiều Story_List chứa thông tin về các tầng, ban đầu chưa có số lượng phần tử, mảng có kiểu Story_Info

Tại dòng số 8 chúng ta khai báo biến Story_Num chứa thông tin về số lượng tầng

Từ dòng số 10 đến dòng 16, chúng ta chuẩn bị 1 hàm để lấy thông tin về đường dẫn tới file *.exe phần mềm của chúng ta, do file *.mdb cũng nằm trong thư mục này nên đấy cũng chính là đường dẫn của file *.mdb

Công ty TNHH Kết Cấu WEFLY - http://www.wefly-str.com

[Hình: p2015102801.png]
Tham quan website của thành viên này Tìm tất cả bài viết của thành viên này
Trích dẫn bài viết này trong bài trả lời
 Thanks given by: luan311 , trudyso2
10-17-2012, 10:13 AM (Bài viết đã được chỉnh sửa: 10-24-2012 08:30 AM bởi Ho Viet Hung.)
Bài viết: #6
RE: VB .NET - Đọc dữ liệu từ Etabs
Phần 5 - Đọc dữ liệu 1 dòng

Viết CODE cho nút lệnh butDocMotDong

[Hình: 0206Get-Pic6.png]

Dòng 4, 5, 6 có nhiệm vụ khai báo các biến liên quan đến đọc dữ liệu

Dòng 8 - khai báo biến chứa đường dẫn đầy đủ của file *.mdb

Dòng 10, 11 có nhiệm vụ mở file vidu.mdb

Dòng 12, 13 có nhiệm vụ truy cập vào bảng Story Data

Dòng 15 truy cập dữ liệu về tên tầng của dòng thứ 5 (có index là 4) của bảng Story Data và hiện lên thông báo thông qua cú pháp Msgbox()

Dòng 17 có nhiệm vụ đóng cơ sở dữ liệu


Chạy phần mềm và click vào nút lệnh Đọc 1 dòng, kết quả như sau:

[Hình: 0207Get-Pic7.png]

Công ty TNHH Kết Cấu WEFLY - http://www.wefly-str.com

[Hình: p2015102801.png]
Tham quan website của thành viên này Tìm tất cả bài viết của thành viên này
Trích dẫn bài viết này trong bài trả lời
 Thanks given by: luan311 , kuuferiu88 , short term loans san francisco , rosemarieqg1
10-17-2012, 10:25 AM (Bài viết đã được chỉnh sửa: 10-24-2012 08:31 AM bởi Ho Viet Hung.)
Bài viết: #7
RE: VB .NET - Đọc dữ liệu từ Etabs
Phần 6 - Đọc dữ liệu cả bảng

Viết CODE cho nút lệnh butDocCaBang

[Hình: 0208Get-Pic8.png]

Từ dòng 21 đến 30, các dòng lệnh tương tự như với phần Đọc 1 dòng

Dòng 32 - lấy số lượng tầng, tuy nhiên chúng ta sẽ bỏ đi dòng Base nên số lượng này bằng số dòng trong bảng trừ đi 1.

Dòng 34 - khai báo số lượng phần tử cho mảng Story_List

Dòng 35 đến 38 - thực hiện vòng lặp For - Next để lần lượt đọc các dòng trong bảng

Dòng 39 - đóng cơ sở dữ liệu

Dòng 41 đến 43 - thể hiện danh sách tên các tầng vào hộp danh sách lstStory


Chạy phần mềm và click vào nút lệnh Đọc cả bảng, kết quả như sau:

[Hình: 0209Get-Pic9.png]

Công ty TNHH Kết Cấu WEFLY - http://www.wefly-str.com

[Hình: p2015102801.png]
Tham quan website của thành viên này Tìm tất cả bài viết của thành viên này
Trích dẫn bài viết này trong bài trả lời
 Thanks given by: sonfa , kthoangviet , luan311 , allysonms3 , jeffpm60
10-23-2012, 07:33 PM
Bài viết: #8
RE: VB .NET - Đọc dữ liệu từ Etabs
Em lay duoc dữ liệu các cột trong mdb ra rồi, bây giờ xử lý số liệu thì cần tham khảo tài liệu nào để tiếp tục hả anh!
Tìm tất cả bài viết của thành viên này
Trích dẫn bài viết này trong bài trả lời
 Thanks given by: zickovichbumN
10-23-2012, 08:44 PM
Bài viết: #9
RE: VB .NET - Đọc dữ liệu từ Etabs
(10-23-2012 07:33 PM)sonfa Đã viết:  Em lay duoc dữ liệu các cột trong mdb ra rồi, bây giờ xử lý số liệu thì cần tham khảo tài liệu nào để tiếp tục hả anh!
.
Híc, mình cũng tự học lập trình và các phần mềm đều do mình tự thiết kế theo nhu cầu thực tế. Thật sự không biết về tài liệu nào liên quan để giới thiệu cho bạn.

Bạn có thể nêu phần mềm của mình có mục đích là gì, mọi người sẽ cùng nhau thảo luận để làm rõ các bước đi cho bạn

Công ty TNHH Kết Cấu WEFLY - http://www.wefly-str.com

[Hình: p2015102801.png]
Tham quan website của thành viên này Tìm tất cả bài viết của thành viên này
Trích dẫn bài viết này trong bài trả lời
 Thanks given by: luan311 , jodila18 , fernsv3
10-23-2012, 10:27 PM
Bài viết: #10
RE: VB .NET - Đọc dữ liệu từ Etabs
Em đang làm bảng tính Dầm.
Em lấy được các thông số trong bảng " Beam Force" như tên Tầng, Combo, Loc, N, M, Q.
bây giờ em chưa lấy được thông số hình học của tiết diện các dầm này.
Trong Excel thì em dùng cách này: load 2 bảng "Frame asignment summary" và bảng "Frame Section Property" sau đó dùng hàm Vlookup để tham chiếu tên Tầng ở bảng "Beam Forces", Tên dầm ở bảng "Frame asignment summary" và tên tiết diện ở bảng "Frame Section Property". điều này thì thực hiện đơn giản trong Excel rồi vì Excel có hàng, cột nên dể thao tác.
còn trong Dotnet thì em chưa biết xử lý ra sao? Em biết là phải thao tác trên file mdb và hình như phải có ít kiến thức về SQL nửa. nhưng chưa biết bắt đầu từ đâu.
Tìm tất cả bài viết của thành viên này
Trích dẫn bài viết này trong bài trả lời
 Thanks given by: deanneup18 , bladenightghostsbumN , mayhy69
Đăng trả lời 


Di chuyển nhanh:


Những người đang xem chủ đề này:
1 khách

Trở về đầu trangTrở lên trên