2013-01-06 16 views
10

Ứng dụng bảng điều khiển này sẽ ghi các tệp .txt vào đĩa.Làm cách nào để chèn các thẻ vào các chuỗi cho ứng dụng bảng điều khiển C#?

Người dùng muốn nhập các tệp .txt này vào Excel sao cho chúng được định dạng đúng, vì vậy tôi định sử dụng tab.

tôi tiếp tục nhận được vô nghĩa này "Một số chuỗi/tmột số chuỗi khác/t/tmột số chuỗi khác". Không có Environment.Tab như có Environment.NewLine.

Làm cách nào để nhận các tab và không/vào chuỗi của tôi?

Tôi chắc chắn có một cách và nó có thể sẽ rất rõ ràng rằng tôi sẽ phải tự gọi mình là ngất xỉu cả ngày để trả lời.

(. Tôi mở cửa cho các giải pháp khác cũng tôi có thể phải sử dụng | hoặc một số delimiter khác/nhân vật.)

+1

Không có hằng số được xác định trước để sử dụng cho ký tự tab. Nhìn vào cùng một câu hỏi này [Lập trình bằng cách sử dụng ký tự tab trong .NET?] (Http://stackoverflow.com/questions/2686536/programmatically-using-tab-character-in-net) Theo cách nó là '\ t' không '/ t' – Steve

Trả lời

27

Tabs trong chuỗi thường được viết \t, không /t. Bạn đang thoát chuỗi của bạn một cách chính xác?

+10

Mức độ bối rối của tôi tại câu trả lời đúng này sẽ không được công bố. – Thomas

+0

@Thomas ... đừng quá khó với bản thân. Bất cứ ai cũng có thể có một sh ​​* ty Sunday :) –

3

Nếu mục đích là tạo tệp văn bản cuối cùng sẽ được nhập int, thì tại sao bạn không sử dụng giá trị được phân tách bằng dấu phẩy. Thông tin thêm http://en.wikipedia.org/wiki/Comma-separated_values

+0

Các chuỗi có rất nhiều dấu phẩy, vì vậy tôi kết thúc với câu ví dụ này "Sử dụng 10 gram nước, 20 gram bột ..." như: Cột A "Sử dụng 10 gram nước" và Cột B "20 gram bột" khi những gì tôi muốn là toàn bộ câu trong Cột A. – Thomas

+1

http://stackoverflow.com/questions/769621/dealing-with-commas-in-a-csv-file http: // tools .ietf.org/html/rfc4180 Mã mẫu để xử lý các giá trị CSV. Nội dung của bạn được phân tách thành các cột vì dấu phẩy thực sự cần phải được thoát. – JLRishe

+0

Thật vậy? Sau đó, tôi có thể sử dụng dấu phẩy thay vì, vì bây giờ vấn đề "/ t" được giải quyết bằng "\ t", tôi vẫn không nhận được phân tách cột. Sự biết ơn của tui. – Thomas

3

Về mặt kỹ thuật, có hằng số tab trong .NET. Nó nằm trong Microsoft.VisualBasic.dll.

var tab = Microsoft.VisualBasic.Constants.vbTab; 

Nhưng không có lý do gì để sử dụng vbTab, bạn chỉ có thể sử dụng \ t với cùng một kết quả.

+2

Bạn đã yêu cầu liên tục tab .NET. Và nó có trong Microsoft.VisualBasic.dll, mà là giống như \ t, nhưng chỉ MS liên tục. Bạn có thể tìm thấy nhiều hằng số ký tự trong Microsoft.VisualBasic.Constants nếu bạn cần. Ngoài ra Microsoft.VisualBasic.dll là một phần của .NET và nó không phải là cụ thể cho VisualBasic thậm chí nghĩ rằng nó nói VisualBasic nó có thể được sử dụng trong C# là tốt. –

2

Nếu bạn thực sự cảm thấy chán ghét bởi câu hỏi này \t, tại sao không viết một lớp tiện ích đơn giản

public static class MyUtility 
{ 
    public static string Tab 
    { 
     get{return "\t";} 
    } 
} 

bây giờ bạn có thể sử dụng trong mã của bạn để xây dựng tab tách chuỗi của bạn ....

string test = "MyFirstString" + MyUtility.Tab + "MySecondString" + MyUtility.Tab ....... 

nhưng, một lần nữa, TẠI SAO?, không có lý do gì để không sử dụng số được xác định trước standard escape sequence

+0

Điều này khá đáng yêu. Tôi sẽ ăn cắp nó và sử dụng nó một cách tham lam. – Thomas

+0

Và cảm ơn [Escape Sequences] (http://msdn.microsoft.com/en-us/library/h21280bw.aspx). Tôi jest thừa nhận rằng tôi đã luôn luôn muốn biết làm thế nào để đối phó với các ký tự ASCII trong ký hiệu thập lục phân. Và các tab dọc! Những gì trên trái đất. Đó là một điều tuyệt vời của những điều mới mẻ. – Thomas

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