2008-09-05 42 views

Trả lời

7

Hope bài viết này sẽ giúp bạn:

How To Save a File from Visual C++ in UNIX Format

Đáng tiếc là nó có vẻ là cách duy nhất để lưu file ở định dạng Unix theo mặc định.

Cá nhân tôi sử dụng tùy chọn Lưu trước trong hộp thoại Lưu tệp. Nhưng để được hones tôi không bao giờ có một nhu cầu để làm việc với số lượng lớn các tập tin trong định dạng Unix từ MSVS.

+2

Thực sự không có cách nào dễ dàng hơn? Bạn phải viết công cụ giao diện điều khiển của riêng bạn, thêm nó vào menu công cụ người dùng tùy chỉnh, và một VBScript để móc sau khi lưu, mà lấy một chỉ số hardcoded từ trình đơn công cụ mà hy vọng phù hợp với công cụ của bạn để gọi nó? Điều đó thật điên rồ. – Albert

+1

Ah, xem bên dưới để biết plugin bổ trợ Strip'em. Vẫn còn hơi ngu ngốc để giải quyết sự hạn chế của MSVC, nhưng ít nhất là hơi đơn giản và sạch hơn. – Albert

1

Visual Studio 2008 không giữ lại tùy chọn lưu nâng cao sau khi giải pháp được đóng lại. Tôi sẽ sẵn sàng để chỉnh sửa rất nhiều tập tin nếu điều đó sẽ làm cho nó hoạt động nhất quán, nhưng tôi không sẵn sàng thay đổi tất cả các thiết lập mỗi khi tôi mở VS.

Điều này quá tệ. Vì VS không hỗ trợ buộc các dòng kết thúc vào bất kỳ thứ gì được mong muốn trong phần phụ trợ, nó chỉ không được nối đúng trong giao diện người dùng. Có lẽ Microsoft sẽ sửa lỗi này không phải là một gói dịch vụ.

72

Có một bổ trợ cho Visual Studio 2008 chuyển đổi kết thúc của định dạng đường khi tệp được lưu. Bạn có thể tải xuống tại đây: http://grebulon.com/software/stripem.php

+14

IMHO, đây phải là câu trả lời được chọn cho bài đăng này. – sivabudh

+0

@ ShaChris23 - đã đồng ý; đó chính xác là những gì chúng ta cần bây giờ. Nhưng câu trả lời được chọn đã được chọn 11 TRƯỚC KHI Strip'em thậm chí đã được phát hành. – nevelis

+0

Ngoài ra còn có một phiên bản VS2010 của nó, vì vậy đây vẫn là một câu trả lời hay. – CubanX

4

Có, luôn có cách để luôn có kết thúc dòng LF, ít nhất là trong Visual Studio 2010 Pro.

Đến Tools | Options... | Environment | Documents

Sau đó Kích hoạt tính năng Kiểm tra kết thúc dòng phù hợp trên tải tùy chọn.

Nó phù hợp với tôi.

+2

Không hiệu quả với tôi. Tôi đã có kiểm tra và nó nhấn mạnh vào việc lưu tệp với CRLF (ví dụ: tệp .sln). –

+3

Kết thúc dòng nhất quán không giống như kết thúc dòng LF. Chúng có thể là CRLF nhất quán. –

+0

"Kết thúc dòng nhất quán khi tải" có thể trợ giúp với các tệp hiện có, nhưng VS vẫn có vẻ muốn lưu các tệp mới có đuôi CR-LF (nhất quán). –

7

Bạn không phải cài đặt bất kỳ plugin nào. Như đã đề cập here bạn có thể cấu hình kết thúc dòng trong File -> Advanced Save options...

+15

Cái gì ?! Bạn có nghĩa là tôi phải làm điều đó cho mỗi tập tin duy nhất ?! Bạn không xem đây là câu trả lời đúng không? – mbx

+0

Trong VS 2008, cài đặt này bị mất khi bạn đóng và mở lại VS ngay cả khi bạn mở lại cùng một giải pháp. –

+1

Dựa trên câu hỏi OP, tôi không nghĩ đây là giải pháp mà họ đang tìm kiếm. – lordhog

0

Có một plugin để VS gọi Strip'Em nơi bạn có thể chọn loại loại dòng mới mà bạn muốn để tự động chuyển đổi tất cả các kết thúc dòng để khi lưu.

(Bạn có thể lựa chọn giữa LF, CRLF, CR.)

+0

Đây là câu trả lời chính xác @grebulon đã có từ 6 năm trước. – joce

0

tôi dường như đã tìm thấy một phương pháp một cách tình cờ và tìm thấy bài viết này cố gắng sửa chữa nó (Tôi muốn Windows CRLF EOL)! Thực hiện các kết quả sau trong kết thúc dòng UNIX (LF only) cho tôi.

SaveFileDialog^ dialog = gcnew SaveFileDialog(); 
System::Windows::Forms::DialogResult DR; 
dialog->Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*"; 
dialog->FilterIndex = 2; 
dialog->RestoreDirectory = true; 
dialog->DefaultExt = "txt"; 
DR = dialog->ShowDialog(this); 
if (DR == System::Windows::Forms::DialogResult::OK) 
{ 
    // Get the page (tab) we are currently on 
    System::Windows::Forms::TabPage ^selPage = this->tabControl1->SelectedTab; 

    // Note: technically the correct way to look for our control is to use Find and search by name 
    // System::Windows::Forms::RichTextBox ^selText = selPage->Controls->Find("rtb", false); 
    // I only add one control (rich text) so first control ([0]) must be it 
    System::Windows::Forms::RichTextBox ^selText = safe_cast<System::Windows::Forms::RichTextBox^>(selPage->Controls[0]); 

    // Just let a Windows forms method do all the work 
    File::WriteAllText(dialog->FileName, selText->Text); 
} 
+0

Mã này phải đi đâu? Cung cấp những gì có thể là một giải pháp, nhưng làm thế nào để áp dụng các giải pháp được bỏ qua. – lordhog

+1

Vâng, nó sẽ đi đâu đó bạn sẽ gọi một SaveFileDialog. Trong Visual Studio, bạn thường sẽ sử dụng trình tạo biểu mẫu để tạo một nút, ví dụ. Điều này sẽ dẫn đến một bộ khung của một trình xử lý được thêm vào và hàm sẽ được đặt tên như sau: private: System :: Void saveAsToolStripMenuItem_Click (Hệ thống :: Đối tượng^người gửi, Hệ thống :: EventArgs^e) – trindflo

+0

Cảm ơn, @trindflo, rằng giúp tôi một chút! – lordhog

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