2014-12-01 13 views
26

tôi đã sử dụng các hằng số như vbLf, vbCrLf & vbCr trong một MsgBox; nó tạo ra cùng một sản lượng trong một MsgBox (Text "Hải" xuất hiện trong một đoạn văn đầu tiên và một chữ "Chào mừng" xuất hiện trong một đoạn tiếp theo)Sự khác nhau giữa vbLf, vbCrLf & vbCr Constants

MsgBox("Hai" & vbLf & "Welcome") 
MsgBox ("Hai" & vbCrLf & "Welcome") 
MsgBox("Hai" & vbCr & "Welcome") 

Tôi biết vbLf, vbCrLf & vbCr được sử dụng cho các chức năng in ấn và hiển thị .

Tôi muốn biết sự khác biệt giữa các số vbLf, vbCrLf & vbCr hằng số.

Trả lời

33
Constant Value    Description 
---------------------------------------------------------------- 
vbCr  Chr(13)    Carriage return 
vbCrLf  Chr(13) & Chr(10) Carriage return–linefeed combination 
vbLf  Chr(10)    Line feed 
  • vbCr: - trở lại dòng bắt đầu
    Đại diện cho một vận chuyển-trở ký tự cho chức năng in ấn và hiển thị.

  • vbCrLf: - tương tự như nhấn Enter
    Đại diện cho một vận chuyển-trở nhân vật kết hợp với một nhân vật linefeed cho in ấn và hiển thị chức năng.

  • vbLf: - đi đến dòng tiếp theo
    Đại diện cho một nhân vật linefeed cho các chức năng in ấn và hiển thị.


Đọc thêm từ Constants Class

21

Ba hằng có chức năng tương tự như ngày nay, nhưng nguồn gốc lịch sử khác nhau, và rất thỉnh thoảng bạn có thể phải sử dụng một hay khác.

Bạn cần phải suy nghĩ lại những ngày của máy đánh chữ thủ công cũ để có được nguồn gốc của điều này. Có hai hành động riêng biệt cần thiết để bắt đầu một dòng văn bản mới:

  1. di chuyển đầu gõ về phía bên trái. Trong thực tế trong một máy đánh chữ này được thực hiện bằng cách di chuyển cuộn mang giấy ("vận chuyển") tất cả các cách trở lại bên phải - đầu đánh máy được cố định. Đây là phí vận chuyển trả lại.
  2. di chuyển giấy lên theo chiều rộng của một dòng. Đây là nguồn cấp dữ liệu dòng.

Trong máy tính, hai hành động này được thể hiện bởi hai nhân vật khác nhau - vận chuyển trở lại là CR, ký tự ASCII 13, vbCr; nguồn cấp dữ liệu dòng là LF, ký tự ASCII 10, vbLf. Trong những ngày cũ của máy in và máy in dòng, máy in cần phải được gửi hai ký tự này - theo truyền thống trong dãy CRLF - để bắt đầu một dòng mới và do đó kết hợp CRLF - vbCrLf - trở thành chuỗi kết thúc dòng truyền thống , trong một số môi trường tính toán.

Vấn đề là tất nhiên chỉ sử dụng một ký tự để đánh dấu dòng kết thúc và có thiết bị đầu cuối hoặc máy in thực hiện tự động cả thao tác trả về dòng và dòng. Và vì vậy trước khi bạn biết, chúng tôi có 3 dòng kết thúc hợp lệ khác nhau: LF một mình (được sử dụng trong Unix và Macintosh), CR một mình (được sử dụng trong Mac OS cũ) và kết hợp CRLF (được sử dụng trong DOS và do đó trong Windows). Điều này dẫn đến các biến chứng của các chương trình DOS/Windows có tùy chọn mở các tệp trong text mode, trong đó bất kỳ cặp CRLF nào được đọc từ tệp đã được chuyển đổi thành một đơn CR (và ngược lại khi viết).

Vì vậy, để cắt ngắn (nhiều) câu chuyện dài - có những lý do lịch sử cho sự tồn tại của ba dấu tách dòng riêng biệt, mà hiện nay thường không liên quan: và có lẽ hành động tốt nhất trong .NET là sử dụng Environment.NewLine có nghĩa là người khác đã quyết định cho bạn sử dụng nào và các vấn đề về tính di động trong tương lai sẽ bị giảm.

+3

Một bổ sung cho điều đó ... từ những ngày cũ ... nó thường được sử dụng trở lại vận chuyển trên đó là của riêng bạn, do đó bạn có thể OVER-TYPE văn bản bạn đã in. Điều này thường được sử dụng để thêm đánh dấu hoặc các dấu hiệu khác, ví dụ: ---- ký tự được ghi đè để chỉ ra một từ bị gạch chéo. Khi máy chữ "Ball" có thể thay đổi được, bạn thậm chí có thể thay đổi phông chữ của các từ cụ thể trong câu như vậy. –

+3

Điều đó cũng mang đến một sự khác biệt lịch sử. Backspace VS Xóa. Trên máy tính. Phím xóa lùi trên máy tính di chuyển con trỏ trở lại một vị trí và xóa ký tự trước đó. Điều này khác với vai trò truyền thống để di chuyển trở lại một không gian và KHÔNG xóa, nhưng quá loại. –

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