2008-10-29 33 views
26

Tôi không phải là người của Visual Basic, nhưng tôi được giao nhiệm vụ duy trì một ứng dụng VB6 cũ. Bất cứ khi nào tôi kiểm tra một tập tin, trình soạn thảo sẽ thay thế một loạt các tên biến hoa với chữ thường tự động. Làm thế nào tôi có thể làm cho dừng lại này !? Tôi không muốn phải thay đổi tất cả trở lại, và nó là một nỗi đau để có những thay đổi này hiển thị trong SourceSafe "Sự khác biệt" khi tôi đang cố gắng để xác định vị trí sự khác biệt REAL.VB6 Editor thay đổi trường hợp tên biến!

Nó cũng đang tự động thay đổi trong định nghĩa: Dim C khi Điều khiển trở thành Dim c làm Kiểm soát. Dim X & trở thành Dim x &. Nhưng nó không làm mọi lúc; ví dụ: ba dòng xuống từ Dim x &, có một Dim Y &, chữ hoa, mà nó không thay đổi. Tại sao nó làm điều này với tôi?

+0

Được gắn thẻ lại dưới dạng 'vb6' + 'ide' –

+0

Có thể trùng lặp của [Dừng Visual Basic 6 khỏi thay đổi vỏ của tôi] (https://stackoverflow.com/questions/1064858/stop-visual-basic-6-from-changing -my-casing) – DaveInCaz

Trả lời

29

Tiếp tục từ DJ's answer ...

Và nó sẽ không chỉ thay đổi trường hợp của các biến trong phạm vi cùng một trong hai.

Nó sẽ thay đổi trường hợp của tất cả các biến có cùng tên trong toàn bộ dự án của bạn. Vì vậy, ngay cả khi chúng được khai báo bằng chữ hoa ở một nơi, một mô-đun khác có thể có các biến khác nhau bằng cách sử dụng cùng tên biến trong chữ thường, khiến tất cả các biến trong dự án của bạn thay đổi thành chữ thường, tùy thuộc vào khai báo nào (?) Hoặc đã chỉnh sửa lần cuối. Vì vậy, lý do các biến C và X của bạn thay đổi trường hợp, trong khi Y không phải là, có lẽ vì C và X được khai báo ở một nơi khác trong dự án của bạn, nhưng trong chữ thường, trong khi Y thì không.

Có một đề cập khác về nó here, nơi chúng hầu như có liên quan với các tên biến xung đột khi trường hợp đang được sử dụng để phân biệt địa phương với các biến toàn cục. Thay vào đó, chúng sẽ thay thế cho tiền tố.

Lựa chọn duy nhất tôi có thể nghĩ đến là sử dụng một số biên tập viên khác với khả năng VB6-làm nổi bật để làm chỉnh sửa của bạn ...

+0

Chỉ tìm thấy câu trả lời trong: https://stackoverflow.com/questions/1064858/stop-visual-basic-6-from-changing-my-casing Nhìn vào câu trả lời bắt đầu bằng "ĐƠN GIẢN" từ " UserX "... Tôi sẽ dán vào đây câu trả lời: CÁCH THAY ĐỔI: Giảm từng biến trong trường hợp bạn muốn. Nếu không, VBA sẽ thay đổi nó theo cách không thể hiểu được. 'Dim x, X1, X2, y, Yy dưới dạng biến thể ' trong chương trình con sẽ thay đổi TẤT CẢ các trường hợp thành câu lệnh Dim – sirboderafael

-1

Nó phải được xác định/khai báo trong trường hợp thấp hơn. Xác định vị trí tờ khai và sửa nó ở đó. IDE sẽ luôn thay đổi trường hợp để khớp với khai báo.

+4

-1 Không đúng. VB6 thay đổi tên vỏ như nó vui lòng, bất kể phạm vi và định nghĩa rõ ràng. Cũng như những người khác đã nói. Không có điểm nào định nghĩa và sửa nó ở đây. Nó sẽ chỉ phá vỡ một số định nghĩa khác trong phạm vi khác nhau. Nó khá ngẫu nhiên, tùy thuộc vào các tập tin đã được xúc động cuối cùng. –

+1

-1. Không phải lúc nào cũng đúng. Nếu bạn có một nhóm làm việc với phiên bản kiểm soát trên cùng một dự án, VB6 đôi khi thay đổi tên vỏ khi bạn kiểm tra. Nó thay đổi tuyên bố * và * tập quán vì lý do riêng của nó. Không bao giờ tìm ra những gì gây nên nó để làm điều đó. – MarkJ

-1

DJ là điểm trên ... VB luôn thay đổi trường hợp của các biến để khớp với khai báo ban đầu. Đó là một 'tính năng'.

+2

Nếu bạn có cùng một tên biến được khai báo trong nhiều phạm vi, nhưng với vỏ khác nhau, nó sẽ thay đổi * tất cả * của chúng trở lại và lực lượng tùy thuộc vào tập tin bạn chỉnh sửa cuối cùng. –

3

Để vượt qua những kinh nghiệm tập tin khác đau đớn, thiết lập các tùy chọn VSS trong hộp thoại khác để so sánh phân biệt dạng chữ. Bằng cách đó bạn sẽ chỉ thấy những thay đổi "thực".

5

Enums thậm chí còn tồi tệ hơn. Bắt trường hợp sai bất cứ nơi nào enum được sử dụng thay đổi trường hợp của định nghĩa.

+2

Không chỉ vậy, đó là bất kỳ biến nào có cùng tên với thành viên enum. Ugh, chỉ hút thôi. –

-1

Tiếp tục từ câu trả lời tuyệt vời Mercator ...

tôi khuyên bạn nên:

  1. Kiểm tra tất cả các file (tôi giả sử bạn đang sử dụng VSS cho một ứng dụng VB6)
  2. Thực hiện xây dựng lại của toàn bộ nhóm dự án
  3. Kiểm tra lại trở lại vào VSS

Bây giờ căn bạn là khác biệt thực sự nở sớm r so với thay đổi 'tự động' mà VB6 đã cố gắng áp dụng.

+0

Vì vậy, giải pháp của bạn là: Hãy để nó thay đổi tất cả mọi thứ như nó muốn (có nghĩa là: ngẫu nhiên) và sống với nó? Tuyệt quá! Lấy làm tiếc. Tôi chỉ đang làm việc với mã được sáp nhập từ một số dự án với các quy ước đặt tên khác nhau. Kiểm tra của tôi (nếu không nhỏ) chủ yếu là một tiếng ồn của những thay đổi ngẫu nhiên trong vỏ tên. Tôi đã có đủ! –

+1

có đó là đề nghị của tôi, VB đang cố gắng thay đổi trường hợp của các biến của bạn vì lý do (không phải 'ngẫu nhiên'), nếu bạn muốn chỉ xem những gì bạn đã thay đổi VÀ bạn muốn sử dụng Visual Studio để làm điều đó, hãy tạo đường cơ sở đầu tiên. –

+0

Hoặc sử dụng một trình soạn thảo khác, nhưng nếu bạn mở nó trong Visual Studio sau đó bạn đang ở trong cùng một vị trí. –

1

Đóng tất cả các dự án VB, mở tệp biểu mẫu bằng trình chỉnh sửa văn bản, thay đổi trường hợp của tất cả các tên rồi mở lại Dự án bằng VB IDE.

0

Ngăn chặn VB6 tự động đúng Đối với enum giá trị

Như quy luật chung của tôi, tôi tuyên bố hằng trong hoa. Vì enums về cơ bản là hằng số, tôi muốn khai báo các giá trị cho enums trong UPPERCASE. Tôi nhận thấy IDE VB6 cũng tự động sửa lỗi này.

Tôi đã tìm thấy IDE không sửa các giá trị này khi sử dụng số và dấu gạch dưới '_' trong tên giá trị.

Ví dụ:

Public Enum myEnum 
    VALUE  'Will be corrected to: Value 
    VALUE1  'Will not be corrected 
    VALUE_  'Will not be corrected 
End Enum 

Tôi không biết nếu điều này làm việc nói chung và nếu điều này kéo dài đến đặt tên/tự động sửa tên biến.

13

Vì tôi luôn luôn tìm thấy chủ đề này đầu tiên tìm kiếm một giải pháp để vỏ messed-up, đây là một trong Simon D đề xuất trong một related question:

Nếu bạn chỉ cần vỏ sửa chữa một biến của (ví dụ bạn vô tình tạo ra một biến cOrrectCAse và bây giờ họ đang ở khắp mọi nơi), bạn có thể sửa này cho tốt bằng cách thêm

#If False Then 
    Dim CorrectCase 
#End If 

đến đầu mô-đun của bạn. Nếu bạn lưu dự án và loại bỏ các tuyên bố sau này, vỏ vẫn chính xác.

Sử dụng Excel VBA Tôi thường vô tình thay đổi tất cả Range.Row-Range.row bởi bất cẩn mờ một biến row bên trong một số chức năng - với sự giúp đỡ của Simon D's giải pháp tôi có thể sửa lỗi này ngay bây giờ.

+0

Đây là giải pháp. – FuriousFolder

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