2016-12-08 13 views
7

Làm cách nào để tôi có thể lập danh mục, lập chỉ mục và/hoặc in mã nguồn VB6 với từng phụ hoặc chức năng trên trang của chính nó ..? Tôi muốn làm như vậy với miễn phí hoặc bao gồm Visual Studio Add-Ins nếu có thể, nhưng tôi không bất lợi khi viết một cái gì đó bản thân mình. Tôi quen thuộc với "Microsoft Office Visual Basic cho ứng dụng Extensibility", và có vẻ như VB6 có một mô-đun tương tự, có thể cho phép tôi chỉ đơn giản là "Đối với mỗi" thông qua việc thu thập mô-đun mã và ném các subs tại một máy in tại một thời gian. Nó có thể mất 10-15 dòng mã.Làm cách nào để tôi có thể lập danh mục, lập chỉ mục và/hoặc in mã nguồn VB6, với mỗi phụ/chức năng trên một trang ..?

Ưu tiên hàng đầu của tôi là in, tốt nhất là với mỗi chức năng phụ trên trang riêng của nó, nhưng với chức năng in bình thường của IDE, tất cả mã chạy cùng nhau trong một bản in dài. Tiếp theo sau đó, tôi muốn tạo một chỉ mục/toc tên của mỗi tiểu, hàm, biến và hằng số trong mỗi VBP. Chúng tôi có Visual Studio 6.0 Enterprise Edition, nhưng dường như không có bất kỳ thứ gì trong đó để làm bất kỳ thứ gì trong số những thứ này.

Bạn có thể cười và hỏi, "Tại sao VB6 .. ?? LOL !!". Đó là bởi vì tôi đã được giao nhiệm vụ nâng cấp và thay đổi mã nguồn VB6 của một hệ thống phần mềm lớn chạy một nhà máy. Đó là trên một mạng lưới cô lập không có kết nối với thế giới bên ngoài, và nó đã được chạy tốt trong 14 năm, nhưng bây giờ họ muốn bắt đầu nâng cấp một số thứ. Hệ thống bao gồm nhiều tệp VBP, mỗi tệp có nhiều mô-đun và biểu mẫu.

Chỉnh sửa: Tôi đã thử Googling để tìm câu trả lời cho điều này, nhưng điều đó đã chứng minh là không thể. Tất cả những gì tôi nhận được là các mẫu mã hóa về việc in từ các ứng dụng được viết bằng VB6, không in mã nguồn từ IDE.

+0

Có thể bắt đầu bằng cách xem các sản phẩm này: http://www.aivosto.com/ – Bob77

Trả lời

1

Viết bổ trợ. Nó là dễ dàng hơn nhiều so với bạn có thể nghi ngờ.

Lấy sách của cuốn sách "Phát triển Visual Basic Add-Ins" của Steven Roman (O'Really, 1999, ISBN 1-56592-527-0).

0

Bạn có thể xem xét sử dụng công cụ tìm kiếm mã phần mềm lập chỉ mục các yếu tố langauge để tra cứu và truy xuất nhanh. Điều này sẽ giúp bạn dễ dàng tìm thấy mã quan tâm hơn và thậm chí tránh in tất cả giấy đó vì bạn chỉ cần tìm mã thay thế.

Source Code Search Engine của chúng tôi biết các yếu tố từ vựng của nhiều ngôn ngữ, đặc biệt bao gồm VB6. Nó đọc cơ sở mã nguồn (hàng ngàn tệp) và xây dựng một chỉ mục để hỗ trợ các phần tử mã tìm kiếm của nó nhanh chóng. Sử dụng giao diện đồ họa của nó, bạn có thể viết các truy vấn về các yếu tố ngôn ngữ để tìm kiếm đoạn mã như:

 S=*Login* 

để tìm chuỗi (chỉ) có chứa dòng chữ "Đăng nhập" (sử dụng ký tự đại diện đơn giản), hoặc

 'SUB' I=/[Aa]ccount.*/ 

mà sẽ tìm thấy tất cả các chương trình con có tên bắt đầu với "tài khoản" bất kể viết hoa đầu chữ cái (đầy đủ biểu thức chính quy) hoặc

 'IF' ... N>17<35 

để tìm IF báo cáo rằng sử dụng một giá trị y từ 17 đến 35 (".." có nghĩa là "gần"). Phần tử truy vấn N cho phép bạn tìm thấy bất kỳ việc sử dụng một hằng số một cách nhanh chóng và dễ dàng.

Thuộc tính thực sự mạnh mẽ của ngôn ngữ truy vấn là "và không". Điều này cho phép bạn tạo một truy vấn cẩu thả tìm thấy "quá nhiều" và sau đó loại bỏ phần "quá nhiều":

 I '+' I - I=xyz 

tìm hai biến được thêm vào không bao gồm biến xyz.

Bạn có thể nhấp vào bất kỳ danh sách lần truy cập nào và văn bản của mã sẽ xuất hiện trong cửa sổ GUI. Không cần giấy tờ.

Vì nó biết cấu trúc từ vựng của mỗi ngôn ngữ, nó không bị nhầm lẫn bởi khoảng trắng, dấu ngắt dòng, nhận xét hoặc thậm chí chuỗi có chứa mã như văn bản.

+0

Ya biết tôi đã không coi là một cơ sở dữ liệu có thể tìm kiếm được. Tôi muốn một cái gì đó in, bởi vì tôi cần (và đã có) thực hiện rất nhiều ghi chú bút chì trên mã. Là phần mềm timebombware hoặc crippleware của bạn? Trang tải xuống gửi cho tôi một biểu mẫu thông tin lớn, nhưng không đề cập đến bất kỳ chi phí nào. – spinjector

+0

Khi bạn đang xem một tập tin, bạn có thể yêu cầu nó đưa bạn đến một trình soạn thảo; bạn có thể sử dụng điều này để chỉ cần nhập các ghi chú của mình làm nhận xét trong mã. Regard xxxware: Đây là một sản phẩm thương mại. Hỏi trang web về giá cả. Nó sẽ chạy trong chế độ đánh giá cho một cơ sở mã kích thước khiêm tốn. –

2

Bạn không cần phải phân tích cú pháp mã đúng cách để đáp ứng các yêu cầu của mình. Viết một cái gì đó cho mình. Bạn có thể xuất ra máy in hoặc tệp HTML. Tôi đã làm điều này một lần, nó hoạt động tốt.

Tệp mã nguồn chỉ là tệp văn bản. Đọc từng dòng một tập tin, in từng dòng. Bắt đầu một trang mới mỗi khi bạn nhìn thấy "phụ kết thúc" hoặc "hàm kết thúc" hoặc "thuộc tính kết thúc". Bằng cách đó, mỗi phương pháp sẽ bắt đầu trên một trang riêng biệt. Các tệp FRM có các định nghĩa điều khiển ở trên cùng, bạn có thể bỏ qua điều đó bằng cách chỉ tìm kiếm một dòng có chứa "kết thúc". Mã bắt đầu ở đó.

Nếu bạn đang thực hiện rất nhiều VB6, tôi cũng khuyên bạn nên thêm thông tin bổ sung vào số MZ Tools. Nó có các công cụ tìm kiếm tuyệt vời. Thật không may không còn miễn phí, nhưng đáng giá tiền IMHO. Tôi không có liên kết với nhà cung cấp.

+1

Mã phân tích * thân thiện * rất đơn giản (mặc dù bạn không đề cập đến việc bạn phải tìm kiếm các công cụ sửa đổi truy cập như 'Private',' Public', 'Friend' và' Static', và cũng cho 'Property Get/Let/Set'), nhưng sẽ rất thú vị khi có các dòng tiếp tục trong các chữ ký thủ tục của bạn, hoặc các chú thích tiếp tục có các dòng bắt đầu bằng 'End Sub' – ThunderFrame

+1

Trên thực tế, phiên bản MZ-Tools miễn phí không còn tồn tại nữa, và hiện chỉ có sẵn dưới dạng giấy phép thương mại. – ThunderFrame

1

Phân tích mô-đun cho các thủ tục và chức năng là cứng, tin me. Đặc biệt là với sự tiếp tục dòng như sau:

_ 
Public _ 
Sub _ 
Foo() ' _ 
End Sub 
_ 
End _ 
_ 
Sub _ 

Bên cạnh đó, một tài sản có thể được kết thúc với End Property, mà còn với End Function hoặc End Sub

May mắn thay, VBIDE cho VB6 có nhiều lớp học và phương pháp để làm việc với các dự án VB so với phiên bản VBA của VBIDE.

Một trong số đó là thuộc tính CodePane.Members trả về tập hợp tất cả số nhận dạng (mặc dù, tôi cho rằng nó bỏ sót các số nhận dạng TypeEnum, nhưng chúng vẫn được khai báo trong phần khai báo của mô-đun).

enter image description here

Và mỗi thành viên thấy nhiều thuộc tính khác nhau bao gồm cả vị trí của nó trong module: enter image description here

Nếu bạn quan tâm trong phân tích chi tiết hơn, và trong một add-in đầy đủ tính năng cho IDE, bạn nên xem Rubberduck-VBA trên GitHub (Tôi là cộng tác viên). Nó hiện đang làm việc với máy chủ VBA, nhưng VB6 là trên bản đồ đường. Nó có một trong những trình phân tích cú pháp VB mạnh mẽ nhất hiện có, và nó là mã nguồn mở.

Các vấn đề liên quan